24 #ifndef __IMojikumiTable__ 25 #define __IMojikumiTable__ 28 #include "IPMUnknown.h" 29 #include "CTextEnum.h" 35 typedef int16 MojikumiClass;
42 enum { kNumOfMojikumiPriority = 10 };
44 MojikumiElement() : fMinimum(0.0), fDesired(0.0), fMaximum(0.0), fPriority(0), fAkiDoesntFloat(kFalse)
48 {
return (fMinimum == other.fMinimum && fDesired == other.fDesired &&
49 fMaximum == other.fMaximum && fPriority == other.fPriority &&
50 fAkiDoesntFloat == other.fAkiDoesntFloat); }
52 {
return !(*
this == other); }
55 { fMinimum *= scale; fMaximum *= scale; fDesired *= scale;
return *
this; }
57 { fMinimum += indent; fMaximum += indent; fDesired += indent;
return *
this; }
60 { fMinimum = 0.0, fDesired = 0.0, fMaximum = 0.0, fPriority = 0, fAkiDoesntFloat = kFalse; }
63 { fMinimum = min, fDesired = des, fMaximum = max, fPriority = pri, fAkiDoesntFloat = alt; }
65 PMReal Minimum()
const {
return fMinimum; }
66 PMReal Desired()
const {
return fDesired; }
67 PMReal Maximum()
const {
return fMaximum; }
68 int16 Priority()
const {
return fPriority; }
69 bool16 IsAkiDoesntFloat()
const {
return fAkiDoesntFloat; }
71 PMReal& Minimum() {
return fMinimum; }
72 PMReal& Desired() {
return fDesired; }
73 PMReal& Maximum() {
return fMaximum; }
75 int16& Priority() {
return fPriority; }
76 bool16& IsAkiDoesntFloat() {
return fAkiDoesntFloat; }
83 bool16 fAkiDoesntFloat;
94 MojikumiClass fMojikumiClass;
108 void Set(MojikumiClass base, MojikumiClass side, bool16 after,
110 { MojikumiElement::Set(min, des, max, pri, alt); fBaseClass = base; fSideClass = side; fIsAfter = after; }
112 MojikumiClass BaseClass()
const {
return fBaseClass; }
113 MojikumiClass SideClass()
const {
return fSideClass; }
114 bool16 IsAfter()
const {
return fIsAfter; }
116 MojikumiClass& BaseClass() {
return fBaseClass; }
117 MojikumiClass& SideClass() {
return fSideClass; }
118 bool16& IsAfter() {
return fIsAfter; }
121 MojikumiClass fBaseClass;
122 MojikumiClass fSideClass;
127 #define USE_KATAKANA_CLASS 139 enum { kJIS_Unknown = 0,
144 kJIS_EndPunctuation = 4,
145 kJIS_MiddlePunctuation = 5,
147 kJIS_NotSeparate = 7,
148 kJIS_BeforeNumber = 8,
149 kJIS_AfterNumber = 9,
153 kJIS_WithSubscript = 13,
157 kJIS_RomanSpace = 17,
159 kJIS_WarichuOpenParen = 19,
160 kJIS_WarichuCloseParen = 20,
165 kJIS_EdgeOfLine = 22,
166 kJIS_TopOfParagraph = 23,
169 kJIS_FullNumber = 24,
170 kJIS_RomanNumber = 25,
173 kJIS_CornerOpenBracket = 26,
174 kJIS_RoundOpenParen = 27,
175 kJIS_CornerCloseBracket = 28,
176 kJIS_RoundCloseParen = 29,
177 kJIS_RomanComma = 30,
178 kJIS_RomanPeriod = 31,
183 kJIS_RomanOpenParen = 34,
184 kJIS_RomanCloseParen = 35,
186 kJIS_NumOfClasses = 36
199 kDefaultMojikumiSet_None = 0,
200 kDefaultMojikumiSet_01,
201 kDefaultMojikumiSet_02,
202 kDefaultMojikumiSet_03,
203 kDefaultMojikumiSet_04,
204 kDefaultMojikumiSet_05,
205 kDefaultMojikumiSet_06,
206 kDefaultMojikumiSet_07,
207 kDefaultMojikumiSet_08,
208 kDefaultMojikumiSet_09,
209 kDefaultMojikumiSet_10,
210 kDefaultMojikumiSet_11,
211 kDefaultMojikumiSet_12,
212 kDefaultMojikumiSet_13,
213 kDefaultMojikumiSet_14,
214 kDefaultMojikumiSet_15,
215 kDefaultMojikumiSet_16,
217 kDefaultMojikumiSet_Nums
225 enum { kDefaultIID = IID_IMOJIKUMITABLE };
228 kYakumonoSpacing_None = 0,
230 kYakumonoSpacing_FixedHalf,
231 kYakumonoSpacing_HalfToFull,
232 kYakumonoSpacing_FullToHalf,
233 kYakumonoSpacing_FixedFull,
235 kYakumonoSpacing_HalfOrFull,
236 kYakumonoSpacing_FullOrHalf
237 } YakumonoSpacingSet;
251 bool16 isVertical)
const = 0;
257 bool16 isVertical)
const = 0;
279 virtual bool16 GetBaseClassSpacingRules(int32 index, MojikumiClass *target,
MojikumiBaseSpacing *element)
const = 0;
281 virtual int32 GetNumOfOverrideSpacingRules()
const = 0;
337 YakumonoSpacingSet lineEndPeriod = kYakumonoSpacing_None,
338 YakumonoSpacingSet lineEndParen = kYakumonoSpacing_None,
339 YakumonoSpacingSet lineEndMidPunc = kYakumonoSpacing_None,
340 YakumonoSpacingSet lineTopParen = kYakumonoSpacing_None,
341 YakumonoSpacingSet paraTopParen = kYakumonoSpacing_None,
342 int32 jisage = 0, bool16 ignoreParenJisage = kFalse ) = 0;
351 virtual int32 GetDefaultSingleByteClassIndex()
const = 0;
352 virtual int32 GetBeginParagraphClassIndex()
const = 0;
353 virtual int32 GetEdgeOfLineClassIndex()
const = 0;
355 virtual int16 GetBasedOn()
const = 0;
356 virtual void SetBasedOn(int16 which) = 0;