InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IMultiColumnTextFrame Class Referenceabstract

#include <IMultiColumnTextFrame.h>

Inheritance diagram for IMultiColumnTextFrame:
IPMUnknown

Public Types

enum  { kDefaultIID = IID_IMULTICOLUMNTEXTFRAME }
 

Public Member Functions

virtual TextIndex TextStart () const =0
 
virtual int32 TextSpan () const =0
 
virtual UID GetFrameListUID () const =0
 
virtual IFrameListQueryFrameList () const =0
 
virtual UID GetTextModelUID () const =0
 
virtual ITextModelQueryTextModel () const =0
 
virtual IStoryOptionsQueryStoryOptions () const =0
 
virtual ITextFrameColumnQueryFrameInFrameList () const =0
 
virtual UID GetUIDInFrameList (bool16 getLast=kFalse) const =0
 
virtual PMReal HitTestFrame (const PMPoint &pPt, bool16 composeFirst, TextIndex *nextLine, bool16 primarySTOnly=kTrue)=0
 
virtual void SetFirstLineOffsetMetric (Text::FirstLineOffsetMetric nFirstLineOffset)=0
 
virtual Text::FirstLineOffsetMetric GetFirstLineOffsetMetric () const =0
 
virtual void SetMinFirstLineOffset (PMReal x)=0
 
virtual PMReal GetMinFirstLineOffset () const =0
 
virtual void SetVerticalJustification (Text::VerticalJustification vj)=0
 
virtual Text::VerticalJustification GetVerticalJustification () const =0
 
virtual void SetMaxVJInterParaSpace (PMReal maxInterParaSpace)=0
 
virtual PMReal GetMaxVJInterParaSpace () const =0
 
virtual void SetVJBalanceColumns (bool16 balanced)=0
 
virtual bool16 GetVJBalanceColumns () const =0
 
virtual void SetAutoSizeDimension (Text::AutoSizeDimension asDimension)=0
 
virtual Text::AutoSizeDimension GetAutoSizeDimension () const =0
 
virtual void SetAutoSizeRefPoint (IReferencePointData::ReferencePointPosition asRefPoint)=0
 
virtual
IReferencePointData::ReferencePointPosition 
GetAutoSizeRefPoint () const =0
 
virtual void SetAutoSizeHasMinHeight (bool16 asHasMinHeight)=0
 
virtual bool16 GetAutoSizeHasMinHeight () const =0
 
virtual void SetAutoSizeMinHeightValue (PMReal asMinHeightValue)=0
 
virtual PMReal GetAutoSizeMinHeightValue () const =0
 
virtual void SetAutoSizeHasMinWidth (bool16 asHasMinWidth)=0
 
virtual bool16 GetAutoSizeHasMinWidth () const =0
 
virtual void SetAutoSizeMinWidthValue (PMReal asMinWidthValue)=0
 
virtual PMReal GetAutoSizeMinWidthValue () const =0
 
virtual void SetAutoSizeNoLineBreak (bool16 asNoLineBreak)=0
 
virtual bool16 GetAutoSizeNoLineBreak () const =0
 
virtual PMRect CalculateNthColumnBBox (int32 n) const =0
 
virtual bool16 GetIsFittingToContent () const =0
 
virtual bool16 GetIsEmpty (bool16 *optionalIsOnlyLastCR=nil) const =0
 
virtual bool16 GetIgnoringTextWrap () const =0
 
virtual bool16 GetContainsOversetContent () const =0
 
virtual bool16 GetIsOverset () const =0
 
virtual bool16 GetIsOnlyMCF () const =0
 
virtual bool16 GetIsFirstMCF () const =0
 
virtual UID GetPreviousMCFUID () const =0
 
virtual bool16 GetIsLastMCF () const =0
 
virtual UID GetNextMCFUID () const =0
 
virtual int32 GetMCFIndex () const =0
 
virtual IParcelQueryParcelAt (const PMPoint &whereInMCFCoord) const =0
 
virtual void LinkToFrameList (IFrameList *newFrameList, int32 frameListAt=IFrameList::kAtTheEnd)=0
 
virtual PMReal CalculateVariableColWidthIf (int32 numColumns, PMReal gutterWidth, const PMRect &insets) const =0
 
virtual PMReal CalculateAdjustedFixedColumnWidthIf (PMReal fixedColWidth) const =0
 
virtual PMReal CalculateAdjustedFlexibleColumnWidthIf (PMReal mcfWidth, PMReal gutterWidth, const PMRect &insets, PMReal minWidth, PMReal maxWidth, int32 *newNumColumns) const =0
 
virtual void CalculateAdjustedSplineDimensions (bool16 ceiling, PMReal *pAdjWidth, bool16 *pWidthConstrained, PMReal *pAdjHeight, bool16 *pHeightConstrained) const =0
 
virtual void GetLayoutProperties (int32 *pParentAnchorCorner, int32 *pMCFAnchorCorner) const =0
 
virtual void RecomposeThru () const =0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Detailed Description

Text support for PageItems. Currently kMultiColumnItemBoss implements this interface. kMultiColumnItemBoss is a child of the spline.

Member Function Documentation

virtual PMReal IMultiColumnTextFrame::CalculateAdjustedFixedColumnWidthIf (PMReal fixedColWidth) const
pure virtual

This method will return an adjusted fixed column width for the called MultiColumnTextFrame to fit within the constraints defined by minimum width and rounding due to grids.

Parameters
fixedColWidth
Returns
adjusted fixed column width
virtual PMReal IMultiColumnTextFrame::CalculateAdjustedFlexibleColumnWidthIf (PMReal mcfWidth,
PMReal gutterWidth,
const PMRectinsets,
PMReal minWidth,
PMReal maxWidth,
int32 * newNumColumns 
) const
pure virtual

This method will return an adjusted range column width for the called MultiColumnTextFrame to fit within the constraints defined by min and max column widths, and will also return a possibly changed number of columns.

Parameters
mcfWidth,if0 will use current mcfWidth of the multi-column frame, otherwise will use provided value
gutterWidth
insets
minColWidth(ITextColumnSizer::kMinimumValidInUIColumnWidth)
maxColWidth
[OUT]newNumColumns
Returns
adjusted column width
virtual void IMultiColumnTextFrame::CalculateAdjustedSplineDimensions (bool16 ceiling,
PMRealpAdjWidth,
bool16 * pWidthConstrained,
PMRealpAdjHeight,
bool16 * pHeightConstrained 
) const
pure virtual

This method will adjust the specified width and height for the Spline to conform to the internal properties of the MultiColumnTextFrame. For example, if the MultiColumnTextFrame is using fixed column sizing then any value for the Spline width that does not yield an integral number columns (assuming a horizontal story) will be adjusted up appropriately to achieve an integral number of column. The underlying MCF must have either an active CJKGrid OR fixed column sizing.

Parameters
ceilingIf kTrue, we will ceiling the result, otherwise floor
pAdjWidthPointer to PMReal with Spline width to adjust - only changed if constrained by the MultiColumnTextFrame.
pWidthConstrainedPointer to bool16 which will be set to kTrue if the MultiColumnTextFrame is constraining the Spline width. If set to kFalse, then pAdjWidth will be unchanged.
pAdjHeightPoint to PMReal with Spline height to adjust - only changed if constrained by the MultiColumnTextFrame.
pHeightConstrainedPointer to bool16 which will be set to kTrue if the MultiColumnTextFrame is constraining the Spline height.
virtual PMReal IMultiColumnTextFrame::CalculateVariableColWidthIf (int32 numColumns,
PMReal gutterWidth,
const PMRectinsets 
) const
pure virtual

This method will return the width of the variable columns of the called MultiColumnTextFrame if the number of columns and gutter width were as specified. The resize policy embodied by this is to attempt to keep the containing Spline the same size and simply adjust the returned variable width as appropriate to achieve this. However, rounding based on grids or minimum widths may cause the Spline to grow.

Parameters
numColums
gutterWidth
insets
Returns
computed variable column width
virtual Text::AutoSizeDimension IMultiColumnTextFrame::GetAutoSizeDimension () const
pure virtual

Gets the auto sizing dimension in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
AutoSizeDimension
virtual bool16 IMultiColumnTextFrame::GetAutoSizeHasMinHeight () const
pure virtual

Gets the auto sizing - has minimum height in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
whether the auto sizing has a min height available or not
virtual bool16 IMultiColumnTextFrame::GetAutoSizeHasMinWidth () const
pure virtual

Gets the auto sizing - has minimum width in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
whether the auto sizing has a min width available or not
virtual PMReal IMultiColumnTextFrame::GetAutoSizeMinHeightValue () const
pure virtual

Gets the auto sizing min height value in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
AutoSize MinHeightValue
virtual PMReal IMultiColumnTextFrame::GetAutoSizeMinWidthValue () const
pure virtual

Gets the auto sizing min width value in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
AutoSize MinWidthValue
virtual bool16 IMultiColumnTextFrame::GetAutoSizeNoLineBreak () const
pure virtual

Gets the auto sizing - no line break in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
whether there are no line breaks for auto-sizing or not
virtual IReferencePointData::ReferencePointPosition IMultiColumnTextFrame::GetAutoSizeRefPoint () const
pure virtual

Gets the auto sizing reference point in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
AutoSizeRefPoint
virtual bool16 IMultiColumnTextFrame::GetContainsOversetContent () const
pure virtual

Complex content such as Tables and Footnotes which are composed into the MultiColumnTextFrame can be themselves contain overset TextStoryThreads. This only applies to complex content, MultiColumnTextFrames with only simple text will never contain overset content.

Returns
kTrue if any complex content contains overset.
virtual Text::FirstLineOffsetMetric IMultiColumnTextFrame::GetFirstLineOffsetMetric () const
pure virtual

Gets the baseline offset of the first line in the IMultiColumnTextFrame independent of the inset. All columns of the MultiColumnFrame share the same value.

Returns
FirstLineOffsetMetric
virtual UID IMultiColumnTextFrame::GetFrameListUID () const
pure virtual

Reports which IFrameList this IMultiColumnTextFrame is contained in. Note that for the kMultiColumnItemBoss this will be the IFrameList its children ITextFrames are part of.

Returns
UID of the containing IFrameList.
virtual bool16 IMultiColumnTextFrame::GetIgnoringTextWrap () const
pure virtual

Reports whether the MultiColumnTextFrame is ignoring all Wraps.

Returns
kTrue if Wraps are ignore, kFalse otherwise.
virtual bool16 IMultiColumnTextFrame::GetIsEmpty (bool16 * optionalIsOnlyLastCR = nil) const
pure virtual

Reports the state of Text content in the IMultiColumnTextFrame.

Parameters
optionalIsOnlyLastCRPointer to bool16 which, if non-nil, will be set to kTrue if the non-emptiness is ONLY due to containing the final CR of the PrimaryStoryThread, kFalse if empty or has other content.
Returns
kTrue if the TextFrame has no content in it. Note that a TextFrame with a TextSpan of zero can still have other content such as Footnotes.
virtual bool16 IMultiColumnTextFrame::GetIsFirstMCF () const
pure virtual
Returns
kTrue if this MultiColumnTextFrame manages the first TextFrameColumn in the FrameList
virtual bool16 IMultiColumnTextFrame::GetIsFittingToContent () const
pure virtual

The MultiColumnFrame supports changing its size during composition so it fits the available text content. This method says if its is active or not.

Returns
kTrue if fitting should be done during composition, kFalse otherwise
virtual bool16 IMultiColumnTextFrame::GetIsLastMCF () const
pure virtual
Returns
kTrue if this MultiColumnTextFrame manages the last TextFrameColumn in the FrameList
virtual bool16 IMultiColumnTextFrame::GetIsOnlyMCF () const
pure virtual
Returns
kTrue if this MultiColumnTextFrame manages the only TextFrameColumns in the FrameList
virtual bool16 IMultiColumnTextFrame::GetIsOverset () const
pure virtual

This method will return kTrue if this MultiColumnTextFrame represents the the last logical MultiColumnTextFrame in the FrameList and any span in the Primary Story Thread or related content (such as split Footnotes) is not composed into this MultiColumnTextFrame. Note that if only the last CR in the Primary Story Thread is overset this method will return kFalse, that is NOT overset.

Returns
kTrue if overset, kFalse otherwise.
virtual void IMultiColumnTextFrame::GetLayoutProperties (int32 * pParentAnchorCorner,
int32 * pMCFAnchorCorner 
) const
pure virtual

Adobe internal use only. Will change. AnchorCorner 0:top/left, 1:top/right, 2:right/bottom, 3:bottom/left

virtual PMReal IMultiColumnTextFrame::GetMaxVJInterParaSpace () const
pure virtual

Gets the vertical justification maximum inter-paragraph space in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
maxVJInterParaSpace
virtual int32 IMultiColumnTextFrame::GetMCFIndex () const
pure virtual
Returns
Index of this MultiColumnTextFrame relative the TextFrameColumns it manages in the FrameList. Returns 0 if GetIsFirstMCF() returns kTrue. Returns -1 if the MultiColumnTextFrame is not part of any FrameList.
virtual PMReal IMultiColumnTextFrame::GetMinFirstLineOffset () const
pure virtual

Gets the minimum baseline offset of the first line in the IMultiColumnTextFrame independent of the inset. All columns of the MultiColumnFrame share the same value.

Returns
minFirstLineOffset
virtual UID IMultiColumnTextFrame::GetNextMCFUID () const
pure virtual
Returns
UID of the next MultiColumnTextFrame in the FrameList, or kInvalidUID if the MultiColumnTextFrame manages the last TextFrameColumn in the FrameList.
virtual UID IMultiColumnTextFrame::GetPreviousMCFUID () const
pure virtual
Returns
UID of the previous MultiColumnTextFrame in the FrameList, or kInvalidUID if the MultiColumnTextFrame manages the first TextFrameColumn in the FrameList.
virtual UID IMultiColumnTextFrame::GetTextModelUID () const
pure virtual

Reports which ITextModel this IMultiColumnTextFrame is associated with.

Returns
UID of ITextModel this IMultiColumnTextFrame is associated with.
virtual UID IMultiColumnTextFrame::GetUIDInFrameList (bool16 getLast = kFalse) const
pure virtual

Adobe internal use only. Do not use. Returns the UID of the first (or last) TextFrameColumn which is the child of this MultiColumnTextFrame.

Parameters
getLastIf kTrue, the UID of the last child ITextFrameColumn of the MultiColumnFrame is returned, otherwise the UID of the first child ITextFrameColumn.
Returns
UID to child ITextFrameColumn.
virtual Text::VerticalJustification IMultiColumnTextFrame::GetVerticalJustification () const
pure virtual

Gets the vertical justification in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Returns
VerticalJustification
virtual PMReal IMultiColumnTextFrame::HitTestFrame (const PMPointpPt,
bool16 composeFirst,
TextIndex * nextLine,
bool16 primarySTOnly = kTrue 
)
pure virtual

Determine the closest TextIndex to the specified Pasteboard point. NOTE: If the passed in point is outside the boundary of the frame, this method still returns the text index of the closest character.

Parameters
pPtPoint in pasteboard coordinates
composeFirstIf kTrue and the Frame requires composition, then the Frame is composed before computing the hit.
nextLineIf non-nil and a hit is registered, set to the TextIndex of the next WaxLine.
primarySTOnlyIf kTrue, then only WaxLines in the Frame are examined. Otherwise the method will burrow into objects such as Tables and Footnotes within the Frame to find the closest hit.
Returns
The TextIndex of the closest character/glyph within the Frame or kInvalidTextIndex if nothing is hit.
virtual void IMultiColumnTextFrame::LinkToFrameList (IFrameListnewFrameList,
int32 frameListAt = IFrameList::kAtTheEnd 
)
pure virtual

Changes the FrameList (and story) the MCF is associated with. The MCF will be unlinked from it's current FrameList before establishing the new link.

Parameters
newFrameListPointer to new IFrameList, or nil to unlink only.
frameListAtThis value will be passed to the new FrameList AddFrameAt() method.
virtual ITextFrameColumn* IMultiColumnTextFrame::QueryFrameInFrameList () const
pure virtual

Adobe internal use only. Do not use. Returns a pointer to the first TextFrameColumn child of this MultiColumnTextFrame.

Returns
A pointer to our first child.
virtual IFrameList* IMultiColumnTextFrame::QueryFrameList () const
pure virtual

Reports the IFrameList this IMultiColumnTextFrame is contained in. Note that for the kMultiColumnItemBoss this will be the IFrameList its children ITextFrames are part of.

Returns
A pointer to the containing IFrameList.
virtual IParcel* IMultiColumnTextFrame::QueryParcelAt (const PMPointwhereInMCFCoord) const
pure virtual
Parameters
whereInMCFCoord
Returns
Pointer to IParcel
virtual IStoryOptions* IMultiColumnTextFrame::QueryStoryOptions () const
pure virtual

Reports which IStoryOptions this IMultiColumnTextFrame is associated with.

Returns
A pointer to the IStoryOptions this IMultiColumnTextFrame is associated with.
virtual ITextModel* IMultiColumnTextFrame::QueryTextModel () const
pure virtual

Reports which ITextModel this IMultiColumnTextFrame is associated with.

Returns
A pointer to the ITextModel this IMultiColumnTextFrame is associated with.
virtual void IMultiColumnTextFrame::RecomposeThru () const
pure virtual

This method is added as an API convenience. Internally it will simply find the related IFrameListComposer (on the IFrameList) and call RecomposeUpto() which will force all MultiColumnTextFrames upto and including this one to be fully composed.

virtual void IMultiColumnTextFrame::SetAutoSizeDimension (Text::AutoSizeDimension asDimension)
pure virtual

Sets the auto sizing dimension in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asDimensionValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeHasMinHeight (bool16 asHasMinHeight)
pure virtual

Sets the auto sizing - has minimum height in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asHasMinHeightValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeHasMinWidth (bool16 asHasMinWidth)
pure virtual

Sets the auto sizing - has minimum width in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asHasMinWidthValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeMinHeightValue (PMReal asMinHeightValue)
pure virtual

Sets the auto sizing min height value in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asMinHeightValueValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeMinWidthValue (PMReal asMinWidthValue)
pure virtual

Sets the auto sizing min width value in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asMinWidthValueValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeNoLineBreak (bool16 asNoLineBreak)
pure virtual

Sets the auto sizing - has no line break in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asNoLineBreakValue to set
virtual void IMultiColumnTextFrame::SetAutoSizeRefPoint (IReferencePointData::ReferencePointPosition asRefPoint)
pure virtual

Sets the auto sizing reference point in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
asRefPointValue to set
virtual void IMultiColumnTextFrame::SetFirstLineOffsetMetric (Text::FirstLineOffsetMetric nFirstLineOffset)
pure virtual

Sets the baseline offset of the first line in the IMultiColumnTextFrame independent of the inset. All columns of the MultiColumnFrame share the same value.

Parameters
nFirstLineOffsetValue to set
virtual void IMultiColumnTextFrame::SetMaxVJInterParaSpace (PMReal maxInterParaSpace)
pure virtual

Sets the vertical justification maximum inter-paragraph space in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
maxInterParaSpaceValue to set
virtual void IMultiColumnTextFrame::SetMinFirstLineOffset (PMReal x)
pure virtual

Sets the minimum baseline offset of the first line in the IMultiColumnTextFrame independent of the inset. All columns of the MultiColumnFrame share the same value.

Parameters
xNon-negative value to set
virtual void IMultiColumnTextFrame::SetVerticalJustification (Text::VerticalJustification vj)
pure virtual

Sets the vertical justification in the IMultiColumnTextFrame. All columns of the MultiColumnFrame share the same value.

Parameters
vjValue to set
virtual int32 IMultiColumnTextFrame::TextSpan () const
pure virtual

Returns the number of characters currently composed in the IMultiColumnTextFrame.

Returns
The number of characters currently composed in the IMultiColumnTextFrame.
virtual TextIndex IMultiColumnTextFrame::TextStart () const
pure virtual

Returns the TextIndex of the first character in this IMultiColumnTextFrame.

Returns
The TextIndex in the primary story thread where this IMultiColumnTextFrame starts. This value will be >= 0 and <= span of the primary story thread.