InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ICompositionStyle.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: EricM
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // This object holds information for composition.
24 // Attributes set this data, and composition reads it.
25 //
26 //========================================================================================
27 
28 #ifndef __ICompositionStyle__
29 #define __ICompositionStyle__
30 
31 
32 #include "IPMUnknown.h"
33 #include "CTextEnum.h"
34 #include "TextID.h"
35 
36 #include "IRunInStylesUtils.h"
37 
38 #define kCTOT_NoChoiceIndex -1
39 
40 const double kAutoKernMagicNumber = 1.0e8;
41 
42 class TabStop;
43 class TabStopTable;
44 class RunInStyleList;
45 class RunInGrepStyleList;
46 class RunInLineStyleList;
47 
48 
55 {
56  public:
57  enum { kDefaultIID = IID_ICOMPOSITIONSTYLE };
58 
61  kTextAlignLeft = 0,
62  kTextAlignCenter,
63  kTextAlignRight,
64  kTextAlignJustifyFull,
65  kTextAlignJustifyLeft,
66  kTextAlignJustifyCenter,
67  kTextAlignJustifyRight,
68  kTextAlignAuto, // only warichu in 2.0
69  kTextAlignToBinding,
70  kTextAlignAwayBinding,
71  kTextAlignLastValue = kTextAlignAwayBinding
72  };
73 
76  kParagraphDirLTR = 0,
77  kParagraphDirRTL
78  };
79 
82  kRule_None = 0, // obsolete, but left in for conversion purposes
83  kRule_ColumnWidth,
84  kRule_TextWidth
85  };
86 
89  kBalanceLine_Off, // no line balancing ( matches kFalse for conversion )
90  kBalanceLine_VeeShape, // last line preferred shorter ( matches kTrue for conversion )
91  kBalanceLine_Equal, // completely balanced
92  kBalanceLine_Pyramid // last line preferred longer
93  };
94 
97  kSingleColumn, // single column paragraph
98  kSpanColumn, // paragraph spans columns
99  kSplitColumn // paragraph splits the column
100  };
101 
104  kBorderShading_ColumnWidth, // column width
105  kBorderShading_TextWidth // text width
106  };
107 
110  kBorderShading_AscentTopOrigin, // ascent top origin
111  kBorderShading_BaselineTopOrigin, // baseline top origin
112  kBorderShading_LeadingTopOrigin, // leading top origin
113  kBorderShading_emBoxTopOrigin, // em box top origin
114  kBorderShading_CapHeightTopOrigin, // cap height top origin
115  kBorderShading_xHeightTopOrigin, // x height top origin
116  kBorderShading_EmBoxCenterTopOrigin // em box center top origin
117  };
118 
121  kBorderShading_DescentBottomOrigin, // descent bottom origin
122  kBorderShading_BaselineBottomOrigin, // baseline bottom origin
123  kBorderShading_EmBoxBottomOrigin, // em box bottom origin
124  kBorderShading_EmBoxCenterBottomOrigin // em box center bottom origin
125  };
126 
129  kStroke_MiterJoin,
130  kStroke_RoundJoin,
131  kStroke_BevelJoin
132  };
133 
136  kStroke_ButCap,
137  kStroke_RoundCap,
138  kStroke_ProjectingCap
139  };
140 
145  {
146  public:
147  typedef base_type data_type;
148 
149  StrokeType() : fClassID(kInvalidClass), fUID(kInvalidUID) {}
150  StrokeType(ClassID theClassID, UID theUID) : fClassID(theClassID), fUID(theUID) {}
151  bool16 operator== (const StrokeType &other) { return fClassID == other.fClassID && fUID == other.fUID; }
152  bool16 operator!= (const StrokeType &other) { return !(*this == other); }
153  void operator= (const StrokeType &other) { fClassID = other.fClassID; fUID = other.fUID; }
154 
155  ClassID fClassID;
156  UID fUID;
157  };
158 
159 
162  virtual ClassID GetComposer() const = 0;
164  virtual void SetComposer(ClassID algo) = 0;
165 
168  virtual ClassID GetKerningMethod() const = 0;
170  virtual void SetKerningMethod(ClassID algo) = 0;
171 
174  virtual PMReal GetPairKern() const = 0;
177  virtual void SetPairKern(PMReal amt) = 0;
178 
181  virtual bool16 UseLigatures() const = 0;
184  virtual void SetLigaturesOn(bool16 on) = 0;
185 
191  virtual void AddOpenTypeFeature(const char *feature, int32 choiceIndex = kCTOT_NoChoiceIndex) = 0;
192 
197  virtual void ClearOpenTypeFeature(const char *feature) = 0;
198 
201  virtual int32 CountOpenTypeFeatures() const = 0;
202 
208  virtual const char* GetNthOpenTypeFeature(int32 n, int32 *choiceIndex = nil) const = 0;
209 
214  virtual bool16 IsOpenTypeFeatureApplied(const char *feature) const = 0;
215 
218  virtual bool16 GetNoBreak() const = 0;
219 
222  virtual void SetNoBreak(bool16 b) = 0;
223 
226  virtual PMReal IndentLeftBody() const = 0;
227 
230  virtual PMReal IndentRightBody() const = 0;
231 
234  virtual PMReal IndentRightLast() const = 0;
235 
238  virtual PMReal IndentLeftFirst() const = 0;
239 
242  virtual void SetIndentLeftBody(PMReal a) = 0;
243 
246  virtual void SetIndentRightBody(PMReal a) = 0;
247 
250  virtual void SetIndentRightLast(PMReal a) = 0;
251 
255  virtual void SetIndentLeftFirst(PMReal a) = 0;
256 
259  virtual ParagraphDirection GetParagraphDirection() const = 0;
260 
263  virtual void SetParagraphDirection(ParagraphDirection dir) = 0;
264 
267  virtual TextAlignment GetParagraphAlignment() const = 0;
268 
271  virtual void SetParagraphAlignment(TextAlignment dq) = 0;
272 
275  virtual TextAlignment GetSingleWordAlign() const = 0;
276 
279  virtual void SetSingleWordAlign(TextAlignment dq) = 0;
280 
284  virtual BalanceLinePreference BalanceLineLengths() const = 0;
285 
288  virtual void SetBalanceLineLengths(BalanceLinePreference b) = 0;
289 
292  virtual bool16 GetIgnoreEdgeAlignment() const = 0;
293 
296  virtual void SetIgnoreEdgeAlignment(bool16 ignore) = 0;
297 
300  virtual void SetDropCapLines(int16 numLines) = 0;
301 
304  virtual void SetDropCapChars(int16 numChars) = 0;
305 
308  virtual void SetDropCapDetail(Text::DropCapDetailedSettings settings) = 0;
309 
312  virtual Text::DropCapDetailedSettings GetDropCapInfo(int16 *elems, int16 *lines) const = 0;
313 
316  virtual PMReal SpaceBefore() const = 0;
317 
320  virtual PMReal SpaceAfter() const = 0;
321 
324  virtual PMReal SameParaSpacing() const = 0;
325 
328  virtual void SetSpaceBefore(PMReal a) = 0;
329 
332  virtual void SetSpaceAfter(PMReal a) = 0;
333 
336  virtual void SetSameParaSpacing(PMReal a) = 0;
337 
340  virtual void SetBreakBeforeMode(Text::StartBreakLocation breakBeforeMode) = 0;
341 
344  virtual Text::StartBreakLocation GetBreakBeforeMode() const = 0;
345 
348  virtual Text::StartBreakLocation GetStartLocation() const = 0;
349 
352  virtual void SetStartLocation(Text::StartBreakLocation startLocation) = 0;
353 
357  virtual void SetKeepLines(bool16 keepTogether) = 0;
358 
362  virtual bool16 GetKeepLines() const = 0;
363 
366  virtual void SetKeepTogether(bool16 keepTogether) = 0;
367 
370  virtual bool16 GetKeepTogether() const = 0;
371 
374  virtual void SetKeepWithNextNLines(int16 nLines) = 0;
375 
378  virtual int16 GetKeepWithNextNLines() const = 0;
379 
382  virtual void SetKeepFirstNLinesTogether(int16 nLines) = 0;
383 
386  virtual int16 GetKeepFirstNLinesTogether() const = 0;
387 
390  virtual void SetKeepLastNLinesTogether(int16 nLines) = 0;
391 
394  virtual int16 GetKeepLastNLinesTogether() const = 0;
395 
398  virtual void SetTabRuler(const TabStopTable &tabs) = 0;
399 
402  virtual const TabStopTable& GetTabRuler() const = 0;
403 
407  virtual TabStop GetTabStopAfter(PMReal offset) const = 0;
408 
412  virtual bool16 GetParaRuleMode(bool16 above, ICompositionStyle::ParagraphRuleMode *mode) const = 0;
413 
417  virtual void SetParaRuleMode(bool16 above, ICompositionStyle::ParagraphRuleMode mode) = 0;
418 
422  virtual void SetParaRuleOn(bool16 above, bool16 onOff) = 0;
423 
427  virtual void SetParaRuleColor(bool16 above, UID color) = 0;
428 
432  virtual void SetParaRuleTint(bool16 above, PMReal tint) = 0;
433 
437  virtual void SetParaRuleOverprint(bool16 above, bool16 onOff) = 0;
438 
442  virtual void SetParaRuleStroke(bool16 above, PMReal weight) = 0;
443 
447  virtual void SetParaRuleStrokeType(bool16 above, ICompositionStyle::StrokeType type) = 0;
448 
452  virtual bool16 GetParaRuleDraw(bool16 above, UID *pColor, PMReal *tint, bool16 *overprint, PMReal *weight,
453  ICompositionStyle::StrokeType *type, UID *gapColor, PMReal *gapTint, bool16 *gapOverprint) const = 0;
454 
458  virtual void SetParaRuleGapColor(bool16 above, UID color) = 0;
459 
463  virtual void SetParaRuleGapTint(bool16 above, PMReal tint) = 0;
464 
468  virtual void SetParaRuleGapOverprint(bool16 above, bool16 onOff) = 0;
469 
473  virtual void SetParaRuleIndentL(bool16 above, PMReal left) = 0;
474 
478  virtual void SetParaRuleIndentR(bool16 above, PMReal right) = 0;
479 
484  virtual void SetParaRuleOffset(bool16 above, PMReal offset) = 0;
485 
489  virtual bool16 GetParaRulePosition(bool16 above, PMReal *left, PMReal *right, PMReal *offset) const = 0;
490 
494  virtual void SetKeepParaRuleAboveInFrame(bool16 keepInFrame) = 0;
498  virtual bool16 GetKeepParaRuleAboveInFrame() const = 0;
499 
502  virtual bool16 HasAutomaticStyling() const = 0;
503 
506  virtual void SetRunInStyleList(const RunInStyleList& list) = 0;
507 
510  virtual const RunInStyleList& GetRunInStyleList() const = 0;
511 
514  virtual void SetRunInGrepStyleList(const RunInGrepStyleList& list) = 0;
515 
518  virtual const RunInGrepStyleList& GetRunInGrepStyleList() const = 0;
519 
522  virtual void SetRunInLineStyleList(const RunInLineStyleList& list) = 0;
523 
526  virtual const RunInLineStyleList& GetRunInLineStyleList() const = 0;
527 
531  virtual SpanColumnsTypeOptions GetSpanColumnType() const = 0;
532 
536  virtual void SetSpanColumnType(SpanColumnsTypeOptions type) = 0;
537 
542  virtual int16 GetSpanSplitColumnCount() const = 0;
543 
548  virtual void SetSpanSplitColumnCount(int16 count) = 0;
549 
553  virtual PMReal GetSpanSplitMinSpaceBefore() const = 0;
554 
558  virtual void SetSpanSplitMinSpaceBefore(PMReal minSpaceBefore) = 0;
559 
563  virtual PMReal GetSpanSplitMinSpaceAfter() const = 0;
564 
568  virtual void SetSpanSplitMinSpaceAfter(PMReal minSpaceAfter) = 0;
569 
573  virtual PMReal GetSplitColumnInsideGutter() const = 0;
574 
578  virtual void SetSplitColumnInsideGutter(PMReal gutter) = 0;
579 
583  virtual PMReal GetSplitColumnOutsideGutter() const = 0;
584 
588  virtual void SetSplitColumnOutsideGutter(PMReal gutter) = 0;
589 
593  virtual bool16 GetKeepWithPrev() const = 0;
594 
598  virtual void SetKeepWithPrev(bool16 keepWithPrev) = 0;
599 
607  virtual void SetParaBSWidth(ICompositionStyle::ParagraphBorderShadingWidth borderShadingMode) = 0;
608 
616  virtual void SetParaBSTopOrigin(ICompositionStyle::ParagraphBorderShadingTopOrigin borderShadingTopOrigin) = 0;
617 
625  virtual void SetParaBSBottomOrigin(ICompositionStyle::ParagraphBorderShadingBottomOrigin borderShadingBottomOrigin) = 0;
626 
630  virtual bool16 GetParaBSClipToFrame() const = 0;
634  virtual void SetParaBSClipToFrame(bool16 clipToFrame) = 0;
635 
639  virtual bool16 GetParaBSSuppressPrinting() const = 0;
643  virtual void SetParaBSSuppressPrinting(bool16 suppressPrinting) = 0;
644 
648  virtual void GetParaBSOffsets(PMReal *left, PMReal *right, PMReal *top, PMReal *bottom) const = 0;
652  virtual void SetParaBSOffsetL(PMReal left) = 0;
656  virtual void SetParaBSOffsetR(PMReal right) = 0;
660  virtual void SetParaBSOffsetT(PMReal top) = 0;
664  virtual void SetParaBSOffsetB(PMReal bottom) = 0;
665 
669  virtual void GetParaBorderOffsets(PMReal *left, PMReal *right, PMReal *top, PMReal *bottom) const = 0;
673  virtual void SetParaBorderOffsetL(PMReal left) = 0;
677  virtual void SetParaBorderOffsetR(PMReal right) = 0;
681  virtual void SetParaBorderOffsetT(PMReal top) = 0;
685  virtual void SetParaBorderOffsetB(PMReal bottom) = 0;
686 
690  virtual bool16 GetParaBSFillOn() const = 0;
691 
695  virtual void SetParaBSFillOn(bool16 fillOn) = 0;
696 
700  virtual void GetParaBSFillData(UID *colorUID, PMReal *tint, bool16* overprint) const = 0;
704  virtual void SetParaBSFillColor(UID fillColorUID) = 0;
708  virtual void SetParaBSFillTint(PMReal fillTint) = 0;
712  virtual void SetParaBSFillOverprint(bool16 fillOverprint) = 0;
713 
717  virtual bool16 GetParaBSStrokeOn() const = 0;
721  virtual void SetParaBSStrokeOn(bool16 strokeOn) = 0;
722 
728  virtual void GetParaBSStrokeData(UID *strokeColorUID, PMReal *strokeTint, bool16 *strokeOverprint,
729  PMReal *strokeWeight, ICompositionStyle::StrokeType *strokeType, ICompositionStyle::StrokeJoinType *strokeJoinType, ICompositionStyle::StrokeCapType *strokeCapType,
730  UID *gapColorUID, PMReal *gapTint, bool16 *gapOverprint) const = 0;
731 
735  virtual void SetParaBSStrokeColor(UID strokeColorUID) = 0;
739  virtual void SetParaBSStrokeTint(PMReal strokeTint) = 0;
743  virtual void SetParaBSStrokeOverprint(bool16 overprint) = 0;
747  virtual void SetParaBSStrokeWeight(PMReal strokeWeight) = 0;
752  virtual void SetParaBSStrokeType(ICompositionStyle::StrokeType type) = 0;
756  virtual void SetParaBSStrokeJoinType(ICompositionStyle::StrokeJoinType strokeJoinType) = 0;
760  virtual void SetParaBSStrokeCapType(ICompositionStyle::StrokeCapType strokeCapType) = 0;
764  virtual void SetParaBSStrokeGapColor(UID strokeGapColorUID) = 0;
768  virtual void SetParaBSStrokeGapTint(PMReal strokeGapTint) = 0;
772  virtual void SetParaBSStrokeGapOverprint(bool16 strokeGapOverprint) = 0;
773 
777  virtual void GetParaBorderCornerType(ClassID *topLeftType, ClassID *topRightType, ClassID *bottomLeftType, ClassID *bottomRightType) const = 0;
778 
782  virtual void GetParaBorderCornerRadius(PMReal *topLeft, PMReal *topRight, PMReal *bottomLeft, PMReal *bottomRight) const = 0;
783 
787  virtual void SetParaBCornerTopLeftType(ClassID cornerType) = 0;
788 
792  virtual void SetParaBCornerTopLeftRadius(PMReal radius) = 0;
793 
797  virtual void SetParaBCornerTopRightType(ClassID cornerType) = 0;
798 
802  virtual void SetParaBCornerTopRightRadius(PMReal radius) = 0;
803 
807  virtual void SetParaBCornerBottomLeftType(ClassID cornerType) = 0;
808 
812  virtual void SetParaBCornerBottomLeftRadius(PMReal radius) = 0;
813 
817  virtual void SetParaBCornerBottomRightType(ClassID cornerType) = 0;
818 
822  virtual void SetParaBCornerBottomRightRadius(PMReal radius) = 0;
823 
827  virtual void GetParaShadeCornerType(ClassID *topLeftType, ClassID *topRightType, ClassID *bottomLeftType, ClassID *bottomRightType) const = 0;
828 
832  virtual void GetParaShadeCornerRadius(PMReal *topLeft, PMReal *topRight, PMReal *bottomLeft, PMReal *bottomRight) const = 0;
833 
837  virtual void SetParaSCornerTopLeftType(ClassID cornerType) = 0;
838 
842  virtual void SetParaSCornerTopLeftRadius(PMReal radius) = 0;
843 
847  virtual void SetParaSCornerTopRightType(ClassID cornerType) = 0;
848 
852  virtual void SetParaSCornerTopRightRadius(PMReal radius) = 0;
853 
857  virtual void SetParaSCornerBottomLeftType(ClassID cornerType) = 0;
858 
862  virtual void SetParaSCornerBottomLeftRadius(PMReal radius) = 0;
866  virtual void SetParaSCornerBottomRightType(ClassID cornerType) = 0;
867 
871  virtual void SetParaSCornerBottomRightRadius(PMReal radius) = 0;
876 
880  virtual void SetParaBSStrokeWidth(ICompositionStyle::ParagraphBorderShadingWidth borderShadingMode) = 0;
881 
886 
890  virtual void SetParaBSStrokeTopOrigin(ICompositionStyle::ParagraphBorderShadingTopOrigin borderShadingTopOrigin) = 0;
891 
896 
901 
905  virtual void SetParaBWeightTopValue(PMReal value) = 0;
906 
910  virtual void SetParaBWeightBottomValue(PMReal value) = 0;
911 
915  virtual void SetParaBWeightLeftValue(PMReal value) = 0;
916 
920  virtual void SetParaBWeightRightValue(PMReal value) = 0;
921 
925  virtual void GetParaBorderWeightValues(PMReal *left, PMReal *top, PMReal *right, PMReal *bottom) const = 0;
926 
930  virtual bool16 GetParaBSParagraphFlow() const = 0;
934  virtual void SetParaBSParagraphFlow(bool16 displayBorder) = 0;
935 
939  virtual bool16 GetParaBSMergeBorder() const = 0;
943  virtual void SetParaBSMergeBorder(bool16 mergeBorder) = 0;
944 };
945 
946 #endif
947  // __ICompositionStyle__
948