257 references to DirectionClass
PresentationCore (257)
MS\Internal\TextFormatting\Bidi.cs (225)
65
CharProperty = new byte[6, (int)
DirectionClass
.ClassMax - 1]
76
ClassToState = new StateMachineState[(int)
DirectionClass
.ClassMax]
107
FastPathClass = new byte[(int)
DirectionClass
.ClassMax]
484
ref
DirectionClass
strongClass,
485
ref
DirectionClass
numberClass)
488
DirectionClass
currentClass;
506
if (currentClass ==
DirectionClass
.ParagraphSeparator)
513
if (numberClass ==
DirectionClass
.ClassInvalid )
518
if (currentClass !=
DirectionClass
.EuropeanNumber)
542
NumberClass =
DirectionClass
.Left;
543
StrongCharClass =
DirectionClass
.Left;
552
public virtual
DirectionClass
LastStrongClass
561
public virtual
DirectionClass
LastNumberClass
601
protected
DirectionClass
NumberClass;
605
protected
DirectionClass
StrongCharClass;
631
ref
DirectionClass
strongClass)
633
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
649
if (CharProperty[0, (int) currentClass]==1 || currentClass ==
DirectionClass
.ParagraphSeparator)
665
IList<
DirectionClass
> characterClass, // [IN / OUT]
668
DirectionClass
startClass, // [IN]
669
DirectionClass
endClass, // [IN]
673
DirectionClass
startType;
674
DirectionClass
endType;
675
DirectionClass
resolutionType;
684
Debug.Assert(CharProperty[1, (int) startClass]==1 || (startClass ==
DirectionClass
.ArabicLetter),
689
startType = ((startClass ==
DirectionClass
.EuropeanNumber) ||
690
(startClass ==
DirectionClass
.ArabicNumber) ||
691
(startClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : startClass;
693
endType = ((endClass ==
DirectionClass
.EuropeanNumber) ||
694
(endClass ==
DirectionClass
.ArabicNumber) ||
695
(endClass ==
DirectionClass
.ArabicLetter)) ?
DirectionClass
.Right : endClass;
703
resolutionType = Helper.IsOdd(runLevel) ?
DirectionClass
.Right :
DirectionClass
.Left;
720
IList<
DirectionClass
> characterClass, // [IN / OUT]
723
DirectionClass
newClass // [IN]
742
IList<
DirectionClass
> characterClass, // [IN / OUT]
745
DirectionClass
sor, // [IN]
746
DirectionClass
eor, // [IN]
756
DirectionClass
lastClass =
DirectionClass
.ClassInvalid;
757
DirectionClass
lastStrongClass =
DirectionClass
.ClassInvalid;
758
DirectionClass
lastNumericClass =
DirectionClass
.ClassInvalid;
759
DirectionClass
startingClass =
DirectionClass
.ClassInvalid;
760
DirectionClass
currentClass =
DirectionClass
.ClassInvalid;
775
if (stateIn.LastNumberClass !=
DirectionClass
.ClassInvalid)
788
startingClass =
DirectionClass
.ArabicLetter;
851
if (currentClass ==
DirectionClass
.ArabicLetter)
853
characterClass[counter + classIndex] =
DirectionClass
.Right;
863
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
870
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
871
((currentClass ==
DirectionClass
.ArabicNumber) &&
872
(lastStrongClass ==
DirectionClass
.Right)))
877
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
878
(lastStrongClass ==
DirectionClass
.Left))
901
if (currentClass ==
DirectionClass
.ArabicLetter)
903
characterClass[counter + classIndex] =
DirectionClass
.Right;
909
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
915
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
916
((currentClass ==
DirectionClass
.ArabicNumber) &&
917
(lastStrongClass ==
DirectionClass
.Right)))
922
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
923
(lastStrongClass ==
DirectionClass
.Left))
947
if (currentClass ==
DirectionClass
.ArabicLetter)
950
characterClass[counter + classIndex] =
DirectionClass
.Right;
953
if (((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic) &&
954
((currentClass ==
DirectionClass
.EuropeanNumber && (flags & Flags.OverrideEuropeanNumberResolution) == 0) ||
955
(currentClass ==
DirectionClass
.ArabicNumber)))
958
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
964
if (characterClass[i + classIndex] !=
DirectionClass
.CommonSeparator &&
965
characterClass[i + classIndex] !=
DirectionClass
.BoundaryNeutral)
971
if (characterClass[i + classIndex] ==
DirectionClass
.CommonSeparator )
988
else if ((lastStrongClass ==
DirectionClass
.Left) &&
989
(currentClass ==
DirectionClass
.EuropeanNumber))
992
characterClass[counter + classIndex] =
DirectionClass
.Left;
1002
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1009
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1010
((currentClass ==
DirectionClass
.ArabicNumber) &&
1011
(lastStrongClass ==
DirectionClass
.Right)))
1013
if (!(((lastStrongClass ==
DirectionClass
.Left) ||
1014
(lastStrongClass ==
DirectionClass
.ArabicLetter)) &&
1015
(currentClass ==
DirectionClass
.EuropeanNumber)))
1021
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1022
(lastStrongClass ==
DirectionClass
.Left))
1033
if (characterClass[counter + classIndex] ==
DirectionClass
.ArabicNumber)
1035
currentClass =
DirectionClass
.ArabicNumber;
1046
if (currentClass ==
DirectionClass
.ArabicLetter)
1048
characterClass[counter + classIndex] =
DirectionClass
.Right;
1054
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1060
if ((currentClass !=
DirectionClass
.ArabicNumber) ||
1061
((currentClass ==
DirectionClass
.ArabicNumber) &&
1062
(lastStrongClass ==
DirectionClass
.Right)))
1067
if ((currentClass ==
DirectionClass
.ArabicNumber) &&
1068
(lastStrongClass ==
DirectionClass
.Left))
1086
((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1091
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1092
currentClass =
DirectionClass
.ArabicNumber;
1094
else if (lastStrongClass ==
DirectionClass
.Left)
1097
characterClass[counter + classIndex] =
DirectionClass
.Left;
1103
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1154
lastClass =
DirectionClass
.GenericNeutral;
1170
lastClass =
DirectionClass
.GenericNeutral;
1197
lastClass =
DirectionClass
.GenericNeutral;
1205
Debug.Assert(lastClass ==
DirectionClass
.EuropeanTerminator,
1233
if (!((lastStrongClass ==
DirectionClass
.ArabicLetter) || previousClassIsArabic))
1235
if (lastStrongClass ==
DirectionClass
.Left)
1237
characterClass[counter + classIndex] =
DirectionClass
.Left;
1241
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1251
lastClass =
DirectionClass
.EuropeanNumber;
1257
(characterClass[counter + 1 + classIndex] ==
DirectionClass
.EuropeanSeparator||
1258
characterClass[counter + 1 + classIndex] ==
DirectionClass
.CommonSeparator))
1260
characterClass[counter + 1 + classIndex] =
DirectionClass
.GenericNeutral;
1290
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1295
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1298
else if (lastStrongClass ==
DirectionClass
.Left)
1300
characterClass[counter + classIndex] =
DirectionClass
.Left;
1322
if (lastStrongClass ==
DirectionClass
.Left)
1324
characterClass[counter + classIndex] =
DirectionClass
.Left;
1334
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1350
(lastStrongClass ==
DirectionClass
.ArabicLetter || previousClassIsArabic)
1354
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1355
currentClass =
DirectionClass
.ArabicNumber;
1357
else if (lastStrongClass ==
DirectionClass
.Left)
1359
characterClass[counter + classIndex] =
DirectionClass
.Left;
1369
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1376
if ( (currentClass ==
DirectionClass
.ArabicNumber) &&
1377
(lastStrongClass ==
DirectionClass
.Left))
1398
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1415
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1430
if ((lastStrongClass ==
DirectionClass
.ArabicLetter) ||
1436
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1437
currentClass =
DirectionClass
.ArabicNumber;
1445
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1454
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1459
else if (lastStrongClass ==
DirectionClass
.Left)
1461
characterClass[counter + classIndex] =
DirectionClass
.Left;
1473
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1484
DirectionClass
.EuropeanNumber);
1491
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1510
if ((lastStrongClass ==
DirectionClass
.ArabicLetter))
1512
if (lastClass ==
DirectionClass
.EuropeanNumber)
1519
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1524
characterClass[counter + classIndex] =
DirectionClass
.EuropeanNumber;
1527
else if (lastClass !=
DirectionClass
.ArabicNumber)
1530
characterClass[counter + classIndex] =
DirectionClass
.Right;
1535
characterClass[counter + classIndex] =
DirectionClass
.ArabicNumber;
1541
|| lastClass ==
DirectionClass
.ArabicNumber ?
1542
DirectionClass
.ArabicNumber :
1543
lastClass==
DirectionClass
.EuropeanNumber &&
1544
lastStrongClass !=
DirectionClass
.Left
1545
?
DirectionClass
.EuropeanNumber : lastStrongClass;
1633
ArabicNumberAfterLeft ?
DirectionClass
.ArabicNumber : lastStrongClass,
1642
IList<
DirectionClass
> characterClass, // [IN / OUT]
1674
DirectionClass
directionClass;
1677
if (directionClass ==
DirectionClass
.ParagraphSeparator ||
1678
directionClass ==
DirectionClass
.SegmentSeparator)
1714
DirectionClass
[] characterClass = new
DirectionClass
[cchText];
1726
new PartialArray<
DirectionClass
>(characterClass),
1739
IList<
DirectionClass
> characterClass, // [IN/OUT] direction class of each char
1743
DirectionClass
tempClass;
1855
if (
DirectionClass
.ParagraphSeparator != Classification.CharAttributeOf((int) Classification.GetUnicodeClass(codePoint)).BiDi)
1880
case
DirectionClass
.Left:
1881
case
DirectionClass
.Right:
1882
case
DirectionClass
.ArabicNumber:
1883
case
DirectionClass
.ArabicLetter:
1888
case
DirectionClass
.EuropeanNumber:
1925
DirectionClass
firstStrong =
DirectionClass
.ClassInvalid;
1929
if (firstStrong !=
DirectionClass
.Left)
1958
DirectionClass
lastStrongClass;
1968
lastStrongClass =
DirectionClass
.Right;
1978
lastStrongClass =
DirectionClass
.Left;
1995
DirectionClass
hiddenCharClass =
DirectionClass
.GenericNeutral;
2013
if ( hiddenCharClass ==
DirectionClass
.EuropeanNumber
2045
if (tempClass !=
DirectionClass
.EuropeanSeparator && tempClass !=
DirectionClass
.CommonSeparator)
2046
characterClass[counter] =
DirectionClass
.GenericNeutral;
2153
DirectionClass
currentClass;
2166
case
DirectionClass
.ParagraphSeparator:
2181
goto case
DirectionClass
.OtherNeutral;
2187
case
DirectionClass
.SegmentSeparator:
2188
case
DirectionClass
.WhiteSpace:
2189
case
DirectionClass
.OtherNeutral:
2190
characterClass[counter] =
DirectionClass
.GenericNeutral;
2192
if (counter>0 && characterClass[counter-1] ==
DirectionClass
.BoundaryNeutral)
2203
case
DirectionClass
.LeftToRightEmbedding:
2204
case
DirectionClass
.RightToLeftEmbedding:
2205
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2213
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightEmbedding ? true : false))
2232
case
DirectionClass
.LeftToRightOverride:
2233
case
DirectionClass
.RightToLeftOverride:
2234
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2239
if(!levelsStack.Push(currentClass ==
DirectionClass
.LeftToRightOverride ? true : false))
2249
overrideClass = (currentClass ==
DirectionClass
.LeftToRightOverride) ?
2262
case
DirectionClass
.PopDirectionalFormat:
2263
characterClass[counter] =
DirectionClass
.BoundaryNeutral;
2307
if ( currentClass ==
DirectionClass
.EuropeanNumber
2313
Invariant.Assert(characterClass[counter] ==
DirectionClass
.ArabicNumber || characterClass[counter] ==
DirectionClass
.EuropeanNumber);
2324
DirectionClass
.Left :
DirectionClass
.Right;
2327
if (counter>0 && characterClass[counter-1]==
DirectionClass
.BoundaryNeutral)
2374
DirectionClass
sor;
2375
DirectionClass
eor;
2405
DirectionClass
.Right :
DirectionClass
.Left;
2410
DirectionClass
.Right :
DirectionClass
.Left;
2420
DirectionClass
.Right :
DirectionClass
.Left;
2429
characterClass[runLimits[runNumber]] ==
DirectionClass
.BoundaryNeutral)
2435
DirectionClass
.Right :
DirectionClass
.Left;
2492
state.LastStrongClass =
DirectionClass
.Right;
2493
state.LastNumberClass =
DirectionClass
.Right;
2498
state.LastStrongClass =
DirectionClass
.Left;
2499
state.LastNumberClass =
DirectionClass
.Left;
MS\Internal\TextFormatting\SimpleTextLine.cs (1)
1943
return Classification.CharAttributeOf(charClass).BiDi ==
DirectionClass
.WhiteSpace;
MS\Internal\TextFormatting\TextStore.cs (30)
889
DirectionClass
[] directionClasses = new
DirectionClass
[stringLength];
916
DirectionClass
europeanNumberOverride = _bidiState.GetEuropeanNumberClassOverride(culture);
963
new PartialArray<
DirectionClass
>(directionClasses, resolvedLength, ich - resolvedLength),
2509
NumberClass =
DirectionClass
.ClassInvalid;
2510
StrongCharClass =
DirectionClass
.ClassInvalid;
2545
LastStrongClass =
DirectionClass
.Left;
2546
LastNumberClass =
DirectionClass
.Left;
2550
LastStrongClass =
DirectionClass
.ArabicLetter;
2551
LastNumberClass =
DirectionClass
.ArabicNumber;
2564
public override
DirectionClass
LastNumberClass
2568
if (this.NumberClass ==
DirectionClass
.ClassInvalid )
2583
public override
DirectionClass
LastStrongClass
2587
if (this.StrongCharClass ==
DirectionClass
.ClassInvalid)
2607
DirectionClass
strongClass =
DirectionClass
.ClassInvalid;
2608
DirectionClass
numberClass =
DirectionClass
.ClassInvalid;
2634
if (strongClass !=
DirectionClass
.ClassInvalid)
2638
if (this.NumberClass ==
DirectionClass
.ClassInvalid)
2640
if (numberClass ==
DirectionClass
.EuropeanNumber)
2665
if(strongClass ==
DirectionClass
.ClassInvalid)
2667
this.StrongCharClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicLetter;
2670
if(numberClass ==
DirectionClass
.ClassInvalid)
2672
this.NumberClass = ((CurrentLevel & 1) == 0) ?
DirectionClass
.Left :
DirectionClass
.ArabicNumber;
2718
internal
DirectionClass
GetEuropeanNumberClassOverride(CultureInfo cultureInfo)
2727
return
DirectionClass
.ArabicNumber;
2730
return
DirectionClass
.EuropeanNumber;
MS\Internal\UnicodeClasses.cs (1)
182
internal
DirectionClass
BiDi;