InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IDrawingStyle.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 
24 #ifndef __IDrawingStyle__
25 #define __IDrawingStyle__
26 
27 
28 #include "IPMUnknown.h"
29 #include "TextID.h"
30 #include "CTextEnum.h"
31 
32 class IDataBase;
33 class IPMFont;
34 class IFontInstance;
35 class IWaxRenderData;
36 class ITextAdornmentData;
37 class IWaxRun;
38 
39 class PMString;
40 class PMMatrix;
41 class PMPoint;
42 
58 class IDrawingStyle : public IPMUnknown
59 {
60  public:
61  enum { kDefaultIID = IID_IDRAWINGSTYLE };
62 
69  enum CapitalizeMode { kCapNormal = 0, kCapSmallLowercase, kCapAll, kCapSmallEverything, kCapLowercase };
70 
77  enum PositionMode { kPosNormal = 0, kPosSuperscript, kPosSubscript,
78  kPosSuperior, kPosInferior, kPosNumerator, kPosDenominator };
79 
83  enum UnderlineMode { kUnderlineNone = 0, kUnderlineSingle };
84 
88  enum CharacterHang { kHangBaseline = 0, kHangEmCenter, kHangEmBottom, kHangEmTop, kHangICFBottom, kHangICFTop };
89 
93  enum PositionIndicator { kDataPosition_ThisPage = 0, kDataPosition_PreviousPage, kDataPosition_NextPage, kDataPosition_TextVariable,
94 #ifdef ID_DEPRECATED
95  kDataPosition_This = kDataPosition_ThisPage, kDataPosition_Previous = kDataPosition_PreviousPage, kDataPosition_Next = kDataPosition_NextPage
96 #endif
97  };
98 
108  enum OTPositioningForm { kOTPosForm_Off, kOTPosForm_Auto, kOTPosForm_Initial, kOTPosForm_Medial, kOTPosForm_Final, kOTPosForm_Isolated };
109 
114  virtual IFontInstance* QueryFontInstance(bool16 vertical) const = 0;
115 
119  virtual IPMFont* QueryFont() const = 0;
120 
123  virtual bool16 IsFontMissing() const = 0;
124 
129  virtual bool16 HasMMOpticalSize() const = 0;
130 
135  virtual void SetSpecialGlyph(const char* name, Text::GlyphID glyph = kInvalidGlyphID) = 0;
136 
140  virtual Text::GlyphID GetSpecialGlyph() const = 0; // figures out glyphid for this font
141 
144  virtual void SetPointSize(PMReal p) = 0;
145 
148  virtual PMReal GetPointSize() const = 0;
149 
152  virtual void SetSkewAngle(PMReal p) = 0;
155  virtual PMReal GetSkewAngle() const = 0;
156 
161  virtual void GetScaledFontMatrix(PMMatrix * fontMatrix) const = 0;
162 
168  virtual void GetUnScaledFinalFontMatrix(PMMatrix * fontMatrix, bool16 vertical) const = 0;
169 
177  virtual void GetFinalFontMatrix(PMMatrix * fontMatrix, bool16 vertical) const = 0;
178 
183  virtual void SetFontUID(UID u) = 0;
184 
187  virtual UID GetFontUID() const = 0;
188 
194  virtual void SetFontStyleName(const PMString& name) = 0;
195 
198  virtual const PMString& GetFontStyleName() const = 0;
199 
204  virtual const PMString& GetPostscriptFontName() const = 0;
205 
212  virtual void SetMMAxes(int32 num, const Fixed *buffer) = 0;
213 
218  virtual const Fixed* GetMMAxes() const = 0;
219 
223  virtual void SetGlyphScaleX(PMReal scale) = 0;
228  virtual void SetGlyphScaleY(PMReal scale) = 0;
229 
235  virtual void SetDesiredGlyphScale(PMReal xscale) = 0;
236 
240  virtual PMReal GetXScale() const = 0;
241 
244  virtual PMReal GetYScale() const = 0;
245 
249  virtual PMReal GetXScaleOnly() const = 0;
250 
254  virtual void SetLeading(PMReal abs) = 0;
255 
259  virtual void SetAutoLead(PMReal factor) = 0;
260 
264  virtual PMReal GetLeading() const = 0;
265 
268  virtual PMReal GetAutoLead() const = 0;
269 
272  virtual bool16 UseAutoLeading() const = 0;
273 
276  virtual PMReal GetBaseLineShift() const = 0;
277 
280  virtual void SetBaseLineShift(PMReal r) = 0;
281 
285  virtual CharacterHang GetCharacterHang() const = 0;
286 
289  virtual void SetCharacterHang(CharacterHang b) = 0;
290 
295  virtual OTPositioningForm GetOTPositioningForm() const = 0;
296 
299  virtual void SetOTPositioningForm(OTPositioningForm form) = 0;
300 
305  virtual PositionIndicator GetPageNumberPosition() const = 0;
306 
310  virtual void SetPageNumberPosition(PositionIndicator pi) = 0;
311 
315  virtual PMReal GetEffectiveBaseline() const = 0;
316 
320  virtual UID GetColorUID(bool16 stroke) const = 0;
321 
325  virtual void SetColorUID(bool16 stroke, UID newColor) = 0;
326 
330  virtual void SetTint(bool16 stroke, PMReal tint) = 0;
331 
335  virtual PMReal GetTint(bool16 stroke) const = 0;
336 
340  virtual void SetOverprint(bool16 stroke, bool16 over) = 0;
341 
345  virtual bool16 GetOverprint(bool16 stroke) const = 0;
346 
350  virtual void SetHiliteAngle(bool16 stroke, PMReal v) = 0;
351 
355  virtual PMReal GetHiliteAngle(bool16 stroke) const = 0;
356 
360  virtual void SetHiliteLength(bool16 stroke, PMReal v) = 0;
361 
365  virtual PMReal GetHiliteLength(bool16 stroke) const = 0;
366 
370  virtual void SetGradientAngle(bool16 stroke, PMReal angle) = 0;
371 
375  virtual PMReal GetGradientAngle(bool16 stroke) const = 0;
376 
380  virtual void SetGradientLength(bool16 stroke, PMReal length) = 0;
381 
385  virtual PMReal GetGradientLength(bool16 stroke) const = 0;
386 
390  virtual void SetGradientCenter(bool16 stroke, const PMPoint& center) = 0;
391 
395  virtual PMPoint GetGradientCenter(bool16 stroke) const = 0;
396 
400  virtual void SetDataBase(IDataBase *db) = 0;
401 
404  virtual IDataBase* GetDataBase() const = 0;
405 
408  virtual bool16 IsOutlined() const = 0;
409 
413  virtual void SetOutlineWidth(PMReal width) = 0;
414 
417  virtual PMReal GetOutlineWidth() const = 0;
418 
422  virtual void SetMiterLimit(PMReal miterLimit) = 0;
423 
426  virtual PMReal GetMiterLimit() const = 0;
427 
431  virtual void SetStrokeAlignment(int32 align) = 0;
432 
435  virtual int32 GetStrokeAlignment() const = 0;
436 
440  virtual void SetOutlineJoin(int32 join) = 0;
441 
444  virtual int32 GetOutlineJoin() const = 0;
445 
450  virtual void SetUnderlineMode(UnderlineMode underlineMode) = 0;
451 
454  virtual UnderlineMode GetUnderlineMode() const = 0;
455 
462  virtual void SetPositionMode(PositionMode position) = 0;
463 
466  virtual PositionMode GetPositionMode() const = 0;
467 
470  virtual void SetStrikethruFlag(bool16 strikethru) = 0;
471 
474  virtual bool16 GetStrikethruFlag() const = 0;
475 
482  virtual void SetCapitalsMode(CapitalizeMode cm) = 0;
483 
486  virtual CapitalizeMode GetCapitalsMode() const = 0;
487 
490  virtual Text::GlyphID GetSpaceGlyph() const = 0;
491 
494  virtual PMReal GetSpaceWidth() const = 0;
495 
498  virtual PMReal GetEmSpaceWidth(bool16 vertical) const = 0;
499 
502  virtual PMReal GetEnSpaceWidth(bool16 vertical) const = 0;
503 
506  virtual PMReal GetHyphenWidth() const = 0;
507 
512  virtual bool16 CanSimpleKernWith(const IDrawingStyle* other, bool16 vertical) const = 0;
513 
519  virtual bool16 CanDoOpenTypeFeaturesAcross(const IDrawingStyle* other, bool16 vertical) const = 0;
520 
525  virtual bool16 CanShareWaxRunWith(const IDrawingStyle* other) const = 0;
526 
529  virtual bool16 GetForceVerticalGlyphs() const = 0;
530 
533  virtual void SetForceVerticalGlyphs(bool16 b) = 0;
534 
538  virtual void AddTextAdornment(ClassID attrID, ClassID adornmentID, ITextAdornmentData *data) = 0;
539 
544  virtual void GetTextAdornment(ClassID attrID, ClassID *adornmentID, ITextAdornmentData **data) = 0;
545 
550  virtual void GetTextAdornment(ClassID attrID, ClassID *adornmentID, const ITextAdornmentData **data) const = 0;
551 
555  virtual void FillOutRenderData(IWaxRenderData* data, bool16 vertical) const = 0;
556 
560  virtual void AddAdornments(IWaxRun *waxRun) const = 0;
561 
565  virtual PMReal GetStyleEmBoxTop(bool16 verticalGlyphs, bool16 usePointSizeNotScale = kFalse) const = 0;
569  virtual PMReal GetStyleEmBoxBottom(bool16 verticalGlyphs, bool16 usePointSizeNotScale = kFalse) const = 0;
574  virtual PMReal GetStyleICFBoxTop(bool16 verticalGlyphs, bool16 usePointSizeNotScale = kFalse) const = 0;
579  virtual PMReal GetStyleICFBoxBottom(bool16 verticalGlyphs, bool16 usePointSizeNotScale = kFalse) const = 0;
580 
583  virtual int32 GetWritingScript() const = 0;
584 
590  virtual void SetForSymbolHack() = 0;
591 };
592 
593 #endif
594  // __IDrawingStyle__
595