InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IWaxLine.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 __IWaxLine__
25 #define __IWaxLine__
26 
27 #include "IPMUnknown.h"
28 #include "TextID.h"
29 #include "CTextEnum.h"
30 #include "IDrawingStyle.h"
31 #include "ParcelKey.h"
32 
33 class VOS_Object;
34 class IWaxRun;
35 class PMRect;
36 class IFrameList;
37 class IParcelList;
38 class IWaxStrand;
39 class IWaxRunIterator;
40 class IWaxGlyphIterator;
41 class PMMatrix;
42 class ITextStoryThread;
43 class ITextModel;
44 
45 
50 class IWaxLine : public IPMUnknown
51 {
52 public:
53  enum { kDefaultIID = IID_IWAXLINE };
54 
55  enum LineTightness { kUnknown, kVeryLoose, kLoose, kNormal, kTight, kVeryTight,
56  kTooLoose_Obsolete, kTooTight_Obsolete };
57 
58  enum { kMaximumTilesPerLine = 32 }; // created by textwrap, warichuu, dropcap
59 
62  virtual void SetVOSWaxObject(VOS_Object * vosObject) = 0;
65  virtual VOS_Object * GetVOSWaxObject() const = 0;
66 
69  virtual ParcelKey GetParcelKey() const = 0;
70  virtual void SetParcelKey(ParcelKey parcelKey) = 0;
71 
72  virtual IWaxRun* QueryRun(int32 index) const = 0;
73  virtual int32 GetRunIndex(const IWaxRun * run) const = 0;
74  virtual int32 GetRunCount() const = 0;
77  virtual bool16 DoWaxRunsExist() const = 0;
78 
81  virtual bool16 StartsLine(const IWaxRun* waxRun) const = 0;
84  virtual bool16 EndsLine(const IWaxRun* waxRun) const = 0;
85 
90  virtual IWaxGlyphIterator* QueryWaxGlyphIterator(bool16 includeLine = kFalse) const = 0;
91 
96  virtual IWaxRunIterator* QueryWaxRunIterator(bool16 includeLine = kFalse) const = 0;
97 
102  virtual IWaxRun * QueryRunByTextOffset(int32 textOffset, int32* pGlyphOffset = nil) const = 0;
103 
106  virtual void SetDropCapIndents(int32 howManyIndents, const PMReal* indents, const int32* lineCounts) = 0;
109  virtual int32 GetDropCapIndents(PMReal* indents = nil, int32* lineCounts = nil) const = 0;
112  virtual PMReal GetNthDropCapIndent(int32 n) const = 0;
115  virtual bool16 GetNextLineAffectedByDropcap() const = 0;
116 
119  virtual IDataBase * GetDataBase() const = 0;
120 
125  virtual int32 GetTextSpan() const = 0;
126 
127  virtual int32 GetTextSpanInTile(int32 tileNum) const = 0;
128  virtual void SetTextSpanInTile(int32 span, int32 tileNum = 0) = 0;
129 
138  virtual PMReal GetUnjustifiedTextWidthInTile(int32 tileNum) const = 0;
139  virtual void SetUnjustifiedTextWidthInTile(PMReal unJTW, int32 tileNum = 0) = 0;
140 
146  virtual PMReal GetJustifiedTextWidthInTile(int32 tileNum) const = 0;
147  virtual void SetJustifiedTextWidthInTile(PMReal justWidth, int32 tileNum = 0) = 0;
148 
152  virtual TextIndex TextOrigin(const IWaxRun * waxRun = nil) const = 0;
153 
154  virtual PMReal GetYAdvance() const = 0;
155 
156  virtual int32 GetNumberOfTiles() const = 0;
157  virtual void SetNumberOfTiles(int32 numTiles) = 0;
158 
161  virtual PMReal GetXPosition(int32 tileNum = 0) const = 0;
162  virtual void SetXPosition(PMReal xPosition, int32 tileNum = 0) = 0;
163 
166  virtual PMReal GetYPosition() const = 0;
167 
175  virtual PMMatrix GetTransform() const = 0;
176 
180  virtual PMMatrix GetToParcelMatrix() const = 0;
181 
185  virtual PMMatrix GetToFrameMatrix() const = 0;
186 
190  virtual PMMatrix GetToSpreadMatrix() const = 0;
191 
195  virtual PMMatrix GetToPasteboardMatrix() const = 0;
196 
197  virtual PMReal GetLineHeight() const = 0;
198  virtual void SetLineHeight(PMReal lineHeight) = 0;
199 
203  virtual Text::LeadingModel GetLeadingModel() const = 0;
204  virtual void SetLeadingModel(Text::LeadingModel m) = 0;
205 
208  virtual PMReal GetLineHeightLeadingDiff() const = 0;
209  virtual void SetLineHeightLeadingDiff(PMReal lineHeight) = 0;
210 
214  virtual PMReal GetLeadingModelOffset() const = 0;
215  virtual void SetLeadingModelOffset(PMReal offset) = 0;
216 
219  virtual PMReal GetWidth(bool16 ignoreAllTrailing = kFalse) const = 0;
220  virtual PMReal GetTargetWidth(int32 tileNum = 0) const = 0;
221  virtual void SetTargetWidth(PMReal targetWidth, int32 tileNum = 0) = 0;
222 
226  virtual void SetJustificationViolationAmt(int16 jva) const = 0;
230  virtual int16 GetJustificationViolationAmt() const = 0;
231 
235  virtual void SetHyphenationViolation(bool16 violation) = 0;
239  virtual bool16 GetHyphenationViolation() const = 0;
240 
244  virtual void SetLineTightness(IWaxLine::LineTightness t) = 0;
248  virtual IWaxLine::LineTightness GetLineTightness() const = 0;
249 
250  virtual void SetKeepsViolation(bool16 onOff) = 0;
251  virtual bool16 GetKeepsViolation() const = 0;
252 
257  virtual void SetComposedWithMissingFont(bool16 missing) = 0;
262  virtual bool16 GetComposedWithMissingFont() const = 0;
263 
264  virtual void SetHyphenState(bool16 endsWithHyphen) = 0;
265  virtual bool16 LineEndsWithHyphen() const = 0;
266 
272  virtual void SetAlwaysRegenerate(bool16 ) const = 0;
273  virtual bool16 GetAlwaysRegenerate() const = 0;
274 
275  virtual Text::GridAlignmentMetric GetGridAlignmentMetric() const = 0;
276 
277  // offset from bottom of line to grid alignment metric
278  virtual PMReal GetGridAlignmentMetricOffset() const = 0;
279  virtual void SetGridAlignment(Text::GridAlignmentMetric alignment,
280  PMReal metricOffset = 0.0) = 0;
281 
282  virtual void SetNoShuffle(bool16 s) = 0;
283  virtual bool16 GetNoShuffle() const = 0;
284 
285  virtual void SetNoShuffleToParcelBottom(bool16 s) = 0;
286  virtual bool16 GetNoShuffleToParcelBottom() const = 0;
287 
288  virtual void SetRebuildRunsWhenShuffled(bool16 b) = 0;
289  virtual bool16 GetRebuildRunsWhenShuffled() const = 0;
290 
291  virtual PMReal GetTOFLineHeight() const = 0;
292  virtual Text::FirstLineOffsetMetric GetTOFLineHeightMetric() const = 0;
293  virtual void SetTOFLineHeight(PMReal lineHeight,
294  Text::FirstLineOffsetMetric lineHeightMetric) = 0;
295 
296  virtual void SetAtTOF(bool16 v) = 0;
297  virtual bool16 GetAtTOF() const = 0;
298 
299  virtual void SetHasOwnedItem(bool16 v) = 0;
300  virtual bool16 GetHasOwnedItem() const = 0;
301 
314  virtual void SetParcelPositionDependent(bool16 v) = 0;
315  virtual bool16 GetParcelPositionDependent() const = 0;
316 
317  virtual PMReal GetIndentHerePosition() const = 0;
318  virtual void SetIndentHerePosition(PMReal r) = 0;
319 
325  virtual void SetStoryThread(ITextStoryThread* thread) = 0;
326  virtual ITextStoryThread* QueryStoryThread() const = 0;
327 
330  virtual bool16 IsDamaged() const = 0;
331  virtual bool16 IsGeometryDamaged() const = 0;
332  virtual bool16 IsKeepsDamaged() const = 0;
333  virtual bool16 IsContentDamaged() const = 0;
334  virtual bool16 IsDestroyed() const = 0;
335  virtual void SetContentDamaged() = 0;
336  virtual void SetGeometryDamaged() = 0;
337  virtual void SetKeepsDamaged() = 0;
338  virtual void SetDestroyed() = 0;
339  virtual void ClearDamage() = 0;
340 
343  virtual void Inval(IParcelList* pl, const PMRect* alternateInk = nil) const = 0;
344 
345  virtual void SetWaxAnchorPt(bool16) = 0;
346  virtual bool16 GetIsWaxAnchorPt() const = 0;
347 
348  virtual IWaxStrand* QueryWaxStrand() const = 0;
349  virtual ITextModel* QueryTextModel() const = 0;
350 
354  virtual PMReal GetLineMetricOffset(IDrawingStyle::CharacterHang hangType) const = 0;
355 
358  virtual void SetLineTextOrigin(const TextIndex absoluteTextIndex) = 0;
359 
366  virtual PMReal GetContentBottom() const = 0;
367 
374  virtual void SetRequiresCallToListInvalService(bool16 requiresCall) = 0;
375  virtual bool16 GetRequiresCallToListInvalService() const = 0;
376 
388  virtual void SetKeepWithPrevExternal(bool16 v) = 0;
389  virtual bool16 GetKeepWithPrevExternal() const = 0;
390 
396  virtual void SetKeepWithPrevParaLastLine(bool16 v) = 0;
397  virtual bool16 GetKeepWithPrevParaLastLine() const = 0;
398 
403  virtual void SetKeepWithPrevFirst(bool16 v) = 0;
404  virtual bool16 GetKeepWithPrevFirst() const = 0;
405 
410  virtual void SetKeepWithPrevLast(bool16 v) = 0;
411  virtual bool16 GetKeepWithPrevLast() const = 0;
412 
418  virtual void SetNeedsPostProcessing(bool16 v) = 0;
419  virtual bool16 GetNeedsPostProcessing() const = 0;
420 
425  virtual void SetComposerWasSwappedToSingle(bool16 v) = 0;
426  virtual bool16 GetComposerWasSwappedToSingle() const = 0;
427 
434  virtual void SetCompositionYPosition(PMReal compYPos) = 0; // y-position of bottom of line height
435  virtual PMReal GetCompositionYPosition() const = 0;
436  virtual bool16 GetYPositionAdjValid() const = 0;
437  virtual void SetYPositionAdj(PMReal yPosAdj) = 0;
438  virtual PMReal GetYPositionAdj() const = 0;
439 
450  virtual void SetBreakMode(Text::StartBreakLocation bl) = 0;
451  virtual Text::StartBreakLocation GetBreakMode() const = 0;
452  virtual void SetGotoNextX(Text::StartBreakLocation nx) = 0;
453  virtual Text::StartBreakLocation GetGotoNextX() const = 0;
454 
455  virtual void SetSpaceBefore(PMReal sb) = 0;
456  virtual PMReal GetSpaceBefore() const = 0;
457  virtual void SetSpaceAfter(PMReal sa) = 0;
458  virtual PMReal GetSpaceAfter() const = 0;
459  virtual void SetSameParaSpacing(PMReal sb) = 0;
460  virtual PMReal GetSameParaSpacing() const = 0;
461 
464  virtual void SetSpaceAfterIsSticky(bool16 v) = 0;
465  virtual bool16 GetSpaceAfterIsSticky() const = 0;
466 
467  virtual void SetKeepWithNextNLines(int32 n) = 0; // last line of Para
468  virtual int32 GetKeepWithNextNLines() const = 0;
469  virtual void SetKeepLastNLines(int32 n) = 0; // first line of Para
470  virtual int32 GetKeepLastNLines() const = 0;
471 
477  virtual bool16 GetYPositionAdjIgnored() const = 0;
478  virtual void SetYPositionAdjIgnored() = 0;
479 
483  virtual void SetBulletNumberOffset(PMReal bnp) = 0;
484  virtual PMReal GetBulletNumberOffset() const = 0;
485 
492  virtual bool16 GetHasColumnSpanOrSplit() const = 0;
493 
500  virtual void SetColumnSpan(uchar count) = 0;
501 
509  virtual bool16 GetColumnSpan(uchar* pCount = nil) const = 0;
510 
516  virtual void SetColumnSplit(uchar count, PMReal insideGutter,
517  PMReal outsideGutter) = 0;
518 
528  virtual bool16 GetColumnSplit(uchar* pCount = nil,
529  PMReal* pInsideGutter = nil,
530  PMReal* pOutsideGutter = nil) const = 0;
531 
539  virtual void InvalidateRuns() = 0;
540  virtual bool16 GetRunsWereInvalidated() const = 0;
541  virtual void ClearRunsWereInvalidated() = 0;
542 
547  virtual void SetHasWAENoFitInParcel(bool16, const ParcelKey&) = 0;
548  virtual bool16 GetHasWAENoFitInParcel(ParcelKey&) const = 0;
549 
553  virtual void SetParaShadingOn(bool16 bParaShadingOn) = 0;
554  virtual bool16 HasParaShadingOn()const = 0;
555 
559  virtual void SetParaBorderOn(bool16 bParaBorderOn) = 0;
560  virtual bool16 HasParaBorderOn() const = 0;
561 
565  virtual void SetParaBorderMergingOn(bool16 bParaBorderMergingOn) = 0;
566  virtual bool16 HasParaBorderMergingOn() const = 0;
571  virtual bool IsHarfBuzzParagraphShapingEngine()const = 0;
572  virtual void SetHarfBuzzParagraphShapingEngine(bool shapingEngineType) = 0;
573 
574 
575 };
576 
577 #endif