InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IWaxRun.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: zwilliam
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 __IWaxRun__
25 #define __IWaxRun__
26 
27 #include "IPMUnknown.h"
28 #include "ITextAdornment.h"
29 #include "IWaxCollection.h"
30 #include "TextID.h"
31 
32 class PMMatrix;
33 
34 const double kTextMiterLimit = 4.0;
35 
49 class IWaxRun : public IPMUnknown
50 {
51 public:
52  enum { kDefaultIID = IID_IWAXRUN };
53 
55  typedef enum {
56  kRunKinsoku_PushIn = 0x01,
57  kRunKinsoku_PushOut = 0x02,
58  kRunKinsoku_Any = 0x03,
59 
60  kTOPRun = 0x20,
61  kEndsInHyphen = 0x40,
62  kVerticalWritingMode = 0x80
64 
69  virtual int32 GetCharCount() const = 0;
70 
75  virtual int32 GetWaxSpan() const = 0;
76 
81  virtual TextIndex TextOrigin() const = 0;
82 
88  virtual PMReal GetWidth(bool16 ignoreAllTrailing = kFalse) const = 0;
89 
95  virtual PMReal GetHeight() const = 0;
96 
100  virtual PMReal GetXPosition() const = 0;
104  virtual void SetXPosition(const PMReal& xPos) = 0;
105 
109  virtual PMReal GetYPosition() const = 0;
113  virtual void SetYPosition(const PMReal& yPos) = 0;
114 
124  virtual PMMatrix GetTransform() const = 0;
133  virtual void SetTransform(const PMMatrix& xForm) = 0;
134 
137  virtual PMMatrix GetToParcelContentMatrix() const = 0;
140  virtual PMMatrix GetToParcelMatrix() const = 0;
143  virtual PMMatrix GetToFrameMatrix() const = 0;
146  virtual PMMatrix GetToSpreadMatrix() const = 0;
149  virtual PMMatrix GetToPasteboardMatrix() const = 0;
150 
157  virtual IWaxCollection* GetOwner() const = 0;
158  // This should really take const params, and the runs hand out const returns for GetOwner, GetWaxLine..
161  virtual void SetOwner(IWaxCollection* owner) = 0;
162 
164  virtual const IWaxLine* GetWaxLine() const = 0;
165 
167  virtual IDataBase* GetDataBase() const = 0;
168 
173  virtual bool16 IsVerticalWritingMode() const = 0;
176  virtual void SetVerticalWritingMode(bool16 mode) = 0;
177 
181  virtual bool16 IsTOPRun() const = 0;
188  virtual void SetTOPRun(bool16 is) = 0;
189 
195  virtual RunCharacteristics GetRunCharacteristics() const = 0;
201  virtual void SetRunCharacteristics(RunCharacteristics bits) = 0;
202 
208  virtual bool16 SplitAt( int32 offsetInRun ) = 0 ;
209 
210  // ============================================
211  // Adornments
217  virtual void GetAdornments(int32 *num, const ClassID **iDs,
218  const Text::DrawPriority **priority,
219  const ITextAdornmentData ***data) const = 0;
225  virtual void SetAdornments(int32 num, ClassID *iDs,
226  Text::DrawPriority *priority,
227  ITextAdornmentData **data) = 0;
228 
238  virtual bool16 FindAdornment(ClassID id, Text::DrawPriority *priority, ITextAdornmentData **data) const = 0;
248  virtual void AddAdornment(ClassID id, Text::DrawPriority priority, ITextAdornmentData *data) = 0;
249 
256  virtual void RemoveAdornment(ClassID id) = 0;
257 
258  //============================================
262  virtual void ConstructionComplete() = 0;
263 };
264 
265 #endif