InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IMultiColumnTextFrame.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: dwaterfa
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 // The IMultiColumnTextFrame interface exists on a kMultiColumnItemBoss.
24 // kMultiColumnItemBoss is within a graphic frame (which may be any spline
25 // shape).
26 //
27 // The IMultiColumnTextFrame interface holds information on the relationship
28 // between multi column text and the story displayed in the multi column frame
29 // item. The children (by IHierarchy) of the IMultiColumnTextFrame are one or
30 // more ITextFrameColumn(s).
31 //
32 //========================================================================================
33 
34 #ifndef __IMultiColumnTextFrame__
35 #define __IMultiColumnTextFrame__
36 
37 #include "IPMUnknown.h"
38 #include "IFrameList.h"
39 #include "ITextParcelList.h"
40 #include "TextID.h"
41 #include "CTextEnum.h"
42 #include "PMRect.h"
43 #include "IReferencePointData.h"
44 
45 class ITextModel;
46 class PMPoint;
47 class IdleTimer;
48 class ITextFrameColumn;
49 class IStoryOptions;
50 class IParcel;
51 class ITextColumnSizer;
52 
59 {
60 public:
61  enum { kDefaultIID = IID_IMULTICOLUMNTEXTFRAME };
62 
67  virtual TextIndex TextStart() const = 0;
68 
73  virtual int32 TextSpan() const = 0;
74 
79  virtual UID GetFrameListUID() const = 0;
80 
85  virtual IFrameList * QueryFrameList() const = 0;
86 
91  virtual UID GetTextModelUID() const = 0;
92 
97  virtual ITextModel * QueryTextModel() const = 0;
98 
103  virtual IStoryOptions * QueryStoryOptions() const = 0;
104 
111  virtual ITextFrameColumn* QueryFrameInFrameList() const = 0;
112 
120  virtual UID GetUIDInFrameList(bool16 getLast = kFalse) const = 0;
121 
132  virtual PMReal HitTestFrame(const PMPoint & pPt, bool16 composeFirst,
133  TextIndex *nextLine,
134  bool16 primarySTOnly = kTrue) = 0;
135 
141  virtual void SetFirstLineOffsetMetric(Text::FirstLineOffsetMetric nFirstLineOffset) = 0;
142 
148  virtual Text::FirstLineOffsetMetric GetFirstLineOffsetMetric() const = 0;
149 
154  virtual void SetMinFirstLineOffset(PMReal x) = 0;
155 
160  virtual PMReal GetMinFirstLineOffset() const = 0;
161 
166  virtual void SetVerticalJustification(Text::VerticalJustification vj) = 0;
167 
172  virtual Text::VerticalJustification GetVerticalJustification() const = 0;
173 
178  virtual void SetMaxVJInterParaSpace(PMReal maxInterParaSpace) = 0;
179 
184  virtual PMReal GetMaxVJInterParaSpace() const = 0;
185 
188  virtual void SetVJBalanceColumns(bool16 balanced) = 0;
189 
192  virtual bool16 GetVJBalanceColumns() const = 0;
193 
198  virtual void SetAutoSizeDimension(Text::AutoSizeDimension asDimension) = 0;
199 
204  virtual Text::AutoSizeDimension GetAutoSizeDimension() const = 0;
205 
211 
217 
222  virtual void SetAutoSizeHasMinHeight(bool16 asHasMinHeight) = 0;
223 
228  virtual bool16 GetAutoSizeHasMinHeight() const = 0;
229 
234  virtual void SetAutoSizeMinHeightValue(PMReal asMinHeightValue) = 0;
235 
240  virtual PMReal GetAutoSizeMinHeightValue() const = 0;
241 
246  virtual void SetAutoSizeHasMinWidth(bool16 asHasMinWidth) = 0;
247 
252  virtual bool16 GetAutoSizeHasMinWidth() const = 0;
253 
258  virtual void SetAutoSizeMinWidthValue(PMReal asMinWidthValue) = 0;
259 
264  virtual PMReal GetAutoSizeMinWidthValue() const = 0;
265 
270  virtual void SetAutoSizeNoLineBreak(bool16 asNoLineBreak) = 0;
271 
276  virtual bool16 GetAutoSizeNoLineBreak() const = 0;
277 
278  virtual PMRect CalculateNthColumnBBox(int32 n) const = 0;
279 
285  virtual bool16 GetIsFittingToContent() const = 0;
286 
293  virtual bool16 GetIsEmpty(bool16* optionalIsOnlyLastCR = nil) const = 0;
294 
299  virtual bool16 GetIgnoringTextWrap() const = 0;
300 
308  virtual bool16 GetContainsOversetContent() const = 0;
309 
319  virtual bool16 GetIsOverset() const = 0;
320 
324  virtual bool16 GetIsOnlyMCF() const = 0;
325 
329  virtual bool16 GetIsFirstMCF() const = 0;
330 
334  virtual UID GetPreviousMCFUID() const = 0;
335 
339  virtual bool16 GetIsLastMCF() const = 0;
340 
344  virtual UID GetNextMCFUID() const = 0;
345 
349  virtual int32 GetMCFIndex() const = 0;
350 
355  virtual IParcel* QueryParcelAt(const PMPoint& whereInMCFCoord) const = 0;
356 
363  virtual void LinkToFrameList(IFrameList* newFrameList,
364  int32 frameListAt = IFrameList::kAtTheEnd) = 0;
365 
378  virtual PMReal CalculateVariableColWidthIf(int32 numColumns,
379  PMReal gutterWidth,
380  const PMRect& insets) const = 0;
381 
389  virtual PMReal CalculateAdjustedFixedColumnWidthIf(PMReal fixedColWidth) const = 0;
390 
403  virtual PMReal CalculateAdjustedFlexibleColumnWidthIf(PMReal mcfWidth, PMReal gutterWidth, const PMRect& insets, PMReal minWidth, PMReal maxWidth, int32* newNumColumns) const = 0;
404 
419  virtual void CalculateAdjustedSplineDimensions(bool16 ceiling,
420  PMReal* pAdjWidth,
421  bool16* pWidthConstrained,
422  PMReal* pAdjHeight,
423  bool16* pHeightConstrained) const = 0;
424 
429  virtual void GetLayoutProperties(int32* pParentAnchorCorner,
430  int32* pMCFAnchorCorner) const = 0;
431 
438  virtual void RecomposeThru() const = 0;
439 
440 };
441 
442 #endif