![]() | InDesign SDK 20.5 |

Classes | |
| class | const_iterator |
| class | const_reverse_iterator |
Public Types | |
| enum | { kDefaultIID = IID_ITEXTPARCELLIST } |
| enum | RecomposeResult { kRR_NothingToCompose, kRR_DamagedBackParcel, kRR_Interrupted, kRR_ComposedUpTo, kRR_FullyComposed } |
| typedef void(ITextParcelList::* | ComputeMethod1 )(ParcelKey, TextIndex *, int32 *) const |
| typedef void(ITextParcelList::* | ComputeMethod2 )(ParcelKey, const PMRect &, const PMRect &, TextIndex *, int32 *) const |
Public Member Functions | |
| virtual UIDRef | GetTextModelRef () const =0 |
| virtual UIDRef | GetWaxStrandRef () const =0 |
| virtual ITextStoryThread * | QueryStoryThread () const =0 |
| virtual RangeData | GetThreadRange () const =0 |
| virtual TextIndex | GetThreadStart (int32 *pSpan=nil) const =0 |
| virtual int32 | GetThreadSpan (TextIndex *pStart=nil) const =0 |
| virtual TextIndex | GetTextStart (ParcelKey key) const =0 |
| virtual int32 | GetTextSpan (ParcelKey key) const =0 |
| virtual RangeData | GetTextRange (ParcelKey key) const =0 |
| virtual void | SetTextSpan (ParcelKey key, int32 span)=0 |
| virtual ParcelKey | GetParcelContaining (TextIndex at) const =0 |
| virtual ParcelKey | GetParcelContainingLeanLeft (TextIndex at) const =0 |
| virtual ParcelKey | GetParcelContaining (const RangeData &location) const =0 |
| virtual void | GetParcelsContaining (const RangeData &r, ParcelKey *firstParcel, ParcelKey *lastParcel) const =0 |
| virtual bool16 | GetIsOverset (TextIndex *pFirstOversetTextIndex=nil) const =0 |
| virtual TextIndex | GetFirstOversetTextIndex (TextIndex *pThreadLast=nil) const =0 |
| virtual ParcelKey | GetFirstLogicalParcelKey () const =0 |
| virtual ParcelKey | GetNextLogicalParcelKey (ParcelKey key) const =0 |
| virtual ParcelKey | GetLastLogicalParcelKey () const =0 |
| virtual ParcelKey | GetLastLogicalNonOversetParcelKey () const =0 |
| virtual const_iterator | begin () const =0 |
| virtual const_iterator | begin (ParcelKey key) const =0 |
| virtual const_iterator | end () const =0 |
| virtual const_iterator | end (ParcelKey key) const =0 |
| virtual const_reverse_iterator | rbegin () const =0 |
| virtual const_reverse_iterator | rbegin (ParcelKey key) const =0 |
| virtual const_reverse_iterator | rend () const =0 |
| virtual const_reverse_iterator | rend (ParcelKey key) const =0 |
| virtual Text::FirstLineOffsetMetric | GetFirstLineOffsetMetric (ParcelKey key) const =0 |
| virtual PMReal | GetMinFirstLineOffset (ParcelKey key) const =0 |
| virtual bool16 | GetIsVertical () const =0 |
| virtual bool16 | GetIsRightToLeft () const =0 |
| virtual bool16 | GetParcelHasBeenVJed (ParcelKey key) const =0 |
| virtual PMRect | GetParcelContentBounds (ParcelKey key) const =0 |
| virtual PMMatrix | GetParcelToContentMatrix (ParcelKey key) const =0 |
| virtual PMReal | GetMaxSoftBottomHeight (ParcelKey key) const =0 |
| virtual bool16 | GetIsDamaged (ParcelKey key) const =0 |
| virtual void | SetDamaged (ParcelKey key)=0 |
| virtual ParcelKey | GetFirstDamagedParcel () const =0 |
| virtual ParcelKey | GetFirstParcelNeedingComposition () const =0 |
| virtual RecomposeResult | Recompose (IParcelContainer *container, int32 firstContainerPI, bool16 noDamageBackPrevContainers, Text::VerticalJustification vj, PMReal vjMaxInterParaSpace, bool16 vjBalanceColumns, int32 firstDamagedPI, int32 firstNeedWrapCheckPI, TextIndex composeUpToTextIndex=kInvalidTextIndex, IdleTimer *interruptCheck=nil, PMReal *tileableHeightRemaining=nil)=0 |
| virtual bool16 | MarkDamage (TextIndex at, int32 amt, int32 limitLeanLeftParcelIndex)=0 |
| virtual void | AdjustSpans (TextIndex at, int32 amt)=0 |
| virtual void | MarkParcelInsertDamage (ParcelKey key)=0 |
| virtual void | MarkParcelRemoveDamage (ParcelKey key)=0 |
| virtual void | MarkResizeDamage (ParcelKey key, const PMRect &boundsBefore, const PMRect &boundsAfter)=0 |
| virtual void | MarkMoveDamage (ParcelKey key)=0 |
| virtual void | MarkGridDamage (ParcelKey key)=0 |
| virtual void | MarkCompositionDamageNoLean (ParcelKey limitFirstParcelKey, TextIndex threadStart, TextIndex damageStart, int32 limitFirstParcelIndex, TextIndex damageEnd, int32 lastParcelIndex)=0 |
| virtual void | DamageFirstLine (ParcelKey key)=0 |
| virtual void | DamageEntireParcel (ParcelKey key, int32 limitLeanLeftParcelIndex=kInvalidParcelIndex)=0 |
| virtual void | DamageEntireParcelP1 (ParcelKey key, int32 limitLeanLeftParcelIndex=kInvalidParcelIndex)=0 |
| virtual void | DamageFirstLineInNextParcel (ParcelKey key)=0 |
| virtual void | DamageYRange (ParcelKey key, const PMReal &waxYTop, const PMReal &waxYBottom)=0 |
| virtual void | DamageWaxAnchoredElementYRange (ParcelKey key, const PMReal &waxYTop, const PMReal &waxYBottom)=0 |
| virtual void | Damage (ComputeMethod1, ParcelKey key, int32 limitLeanLeftParcelIndex=kInvalidParcelIndex)=0 |
| virtual void | Damage (ComputeMethod2, ParcelKey key, const PMRect &b1, const PMRect &b2)=0 |
| virtual void | ComputeResizeDamage (ParcelKey key, const PMRect &boundsBefore, const PMRect &boundsAfter, TextIndex *pStart, int32 *pLen) const =0 |
| virtual void | ComputeFirstLineDamage (ParcelKey key, TextIndex *pStart, int32 *pLen) const =0 |
| virtual void | ComputeEntireParcelDamage (ParcelKey key, TextIndex *pStart, int32 *pLen) const =0 |
| virtual void | ComputeEntireParcelP1Damage (ParcelKey key, TextIndex *pStart, int32 *pLen) const =0 |
| virtual void | ComputeFirstLineInNextParcelDamage (ParcelKey key, TextIndex *pStart, int32 *pLen) const =0 |
| virtual void | Inval (TextIndex start, int32 span) const =0 |
| virtual bool16 | GetIsValidStartBreakLocation (ParcelKey key, Text::StartBreakLocation mode) const =0 |
| virtual bool16 | GetHasAnyValidStartBreakLocation () const =0 |
| virtual void | GetShapeData (ParcelKey key, PMRect *inkBounds, int32 *passCount, Text::DrawPassInfo **passList)=0 |
| virtual void | DrawParcel (ParcelKey key, GraphicsData *gd, int32 iShapeFlags, const PMRect *areaToDraw, const int32 passCount, const Text::DrawPassInfo *passList, void(*btdFunc)(void *), void(*btfdFunc)(void *), void *funcPrv, bool16 *pInkBoundsChanged)=0 |
| virtual PMRect | GetParcelComposedBounds (ParcelKey key) const =0 |
| virtual PMReal | HitTestParcel (ParcelKey key, const PMPoint &pasteboardPt, TextIndex *nextLine=nil)=0 |
| virtual void | IterateTextParcelListDrawOrder (const PMMatrix *xform, ICallback *callbackInfo, int32 iShapeFlags, ParcelKey key) const =0 |
| virtual bool16 | ShouldFakeTabAlignToChar () const =0 |
| virtual void | CollectParcelChildren (ParcelKey key, UIDList *list) const =0 |
| virtual void | InsertWaxAnchoredElement (IWaxAnchoredElement *wae, ParcelKey toKey)=0 |
| virtual void | RemoveWaxAnchoredElement (IWaxAnchoredElement *wae)=0 |
| virtual void | MoveWaxAnchoredElement (IWaxAnchoredElement *wae, ParcelKey toKey)=0 |
| virtual void | NotifyInkBoundsChangedAt (TextIndex at, bool16 fromRebuild)=0 |
| virtual void | NotifyParcelInkBoundsChanged (ParcelKey key)=0 |
| virtual void | NotifyParcelPositionDependentContentSet (ParcelKey key)=0 |
| virtual PMReal | HitTestParcel (ParcelKey key, const PMPoint &waxPt, bool16 withinSTOnly, TextIndex *nextLine) const =0 |
| virtual void | CollectParcelOwnedItems (ParcelKey key, OwnedItemDataList *rList) const =0 |
| virtual bool16 | GetParcelIsEmpty (ParcelKey key, bool16 *optionalIsOnlyLastCR=nil) const =0 |
| virtual void | NotifyParcelLayerChanged (ParcelKey key, const IDocumentLayer *newDocLayer)=0 |
| virtual void | NotifyParcelVisibilityChanged (ParcelKey key)=0 |
| virtual void | NotifyParcelZOrderChanged (ParcelKey key)=0 |
| virtual void | NotifyParcelIgnoreWrapChanged (ParcelKey key)=0 |
| virtual void | AddParcelInlineWraps (ParcelKey key, const IInlineData *id, const UIDRef &spreadRef, const TextWrapRefList &sodList)=0 |
| virtual void | NotifyParcelWrapZOrderChanged (ParcelKey key, const TextWrapRef &sodRef, bool16 zOrderBasedWrap, const IDocumentLayer *sodDocLayer)=0 |
| virtual void | NotifyParcelWrapSkipByLeadingChanged (ParcelKey key, const TextWrapRef &sodRef)=0 |
| virtual void | NotifyParcelWrapNonGeometryChanged (ParcelKey key, const TextWrapRef &sodRef)=0 |
| virtual void | RemoveParcelWrap (ParcelKey key, const TextWrapRef &sodRef)=0 |
| virtual bool16 | RebuildWaxLine (const ITextStoryThread *thread, const IParcelList *pl, IWaxLine *waxLine) const =0 |
| virtual bool16 | GetParcelContainsOversetContent (ParcelKey key) const =0 |
| virtual void | NotifyStoryDirectionChanged ()=0 |
| virtual ParcelKey | GetParcelComposing () const =0 |
| virtual Text::VerticalJustification | GetComposingVerticalJustification () const =0 |
| virtual bool16 | CanBackDamageContainer () const =0 |
| virtual ContainerComposer * | GetCompositionContext () const =0 |
| virtual void | NotifyParcelWrapModifyIndentsAroundTextWrapChanged (ParcelKey key, const TextWrapRef &sodRef)=0 |
Public Member Functions inherited from IPMUnknown | |
| virtual IPMUnknown * | QueryInterface (PMIID interfaceID) const =0 |
| virtual void | AddRef () const =0 |
| virtual void | Release () const =0 |
RecomposeResult
| Enumerator | |
|---|---|
| kRR_NothingToCompose | The Parcel was either not Wax damaged or after handling wrap check damage no wax was damaged as a result. The Parcel remains fully composed and without any wax damage. |
| kRR_DamagedBackParcel | A Parcel in a previous container became damaged. |
| kRR_Interrupted | Composition was interrupted due to the interruptCheck. This will only be returned if and IdleTimer is specified. |
| kRR_ComposedUpTo | The container is now fully composed upto the specified TextIndex. This will only be returned if the optional composeUpToTextIndex parameter is not kInvalidTextIndex AND after the Column containing the TextIndex is fully composed the Container still needs composition. |
| kRR_FullyComposed | The container is now fully composed. |
| pure virtual |
Adds Wraps during composition that are children of an inlines. Because these Wraps are never from MasterPages, the X/YOffset component of the Wrap is always zero and so we never pass it in.
| key | ParcelKey that the inline is registered in |
| spreadRef | UIDRef of ISpread that the key is on |
| sodList | TextWrapRefList of active IStandOffData |
| pure virtual |
Used only by WaxStrand to maintain consistent text spans in the parcels.
| pure virtual |
Collects all the OwnedItems and WaxAnchoredElements associated with Parcel. This method supports IVisitorHelper implementations that have Text.
| key | |
| list |
| pure virtual |
Appends the list of OwnedItems that are associated with the specified Parcel. Only those OwnedItems that are actually composed within the Parcel are added. Note that because of the presence of WaxAnchorPts and WaxAnchoredElements it is not sufficient to use the span of the Parcel to compute this.
| key | |
| rList | The results are appended to the list. |
| pure virtual |
Returns the TextIndex of the first character that is NOT mapped to a Parcel BEFORE the Parcel returned by ITextParcelListData::GetOversetParcelKey(). If all of the TextStoryThread is composed within those Parcel then kInvalidTextIndex is returned. Note that because of WaxAnchoredElements, this method is not sufficient to determine if the TextParcelList is overset, use GetIsOverset().
| pThreadLast | will be set to the last TextIndex in the TextStoryThread. |
| pure virtual |
This method returns the ParcelKey of the first Parcel in the ParcelList which needs composition. Note because of the subtle iteraction with Parcels that needs to check for wrap, this method is not the same as simply returning the first damaged or first needs wrap check Parcel. In particular, a Parcel needing wrap check which is beyond the Parcel containing the end of the story thread is NOT considered to need composition.
| pure virtual |
The TextParcelList is considered overset if any content other than the last CR in the associated TextStoryThread is not composed in Parcels BEFORE the Parcel returned by ITextParcelListData::GetLastOversetParcelKey().
| pFirstOversetTextIndex | Optional pointer that will be filled in the TextIndex of the first overset text. |
| pure virtual |
| pure virtual |
Parcels which compose complex content, such as Tables and Footnotes, which themselves manage TextStoryThreads in the same TextModel as this TextParcelList can be overset without this TextParcelList itself being overset.
| key |
| pure virtual |
Returns kTrue if the Parcel has no Text span AND no WaxAnchoredElemenents with any content.
| ParcelKey | |
| optionalIsOnlyLastCR | Pointer to bool which will be set to kTrue if the Parcel ONLY contains the final CR of the story thread, kFalse otherwise. |
| pure virtual |
Given a point in Pasteboard coordinates, return the TextIndex of the closest character/glyph in this Parcel. Only returns TextIndexes within this TextStoryThread. The TextParcelList is required to be fully composed upto this point. Note that it is not possible to hit below the last line in the story thread, the location returned will be to the left of the final CR.
| key | Parcel |
| pasteboardPt | |
| nextLine | The TextIndex of the end of the WaxLine (which is the start of the next WaxLine) |
| pure virtual |
Given a point in Wax coordinates, return the TextIndex of the closest character/glyph in this Parcel. The TextParcelList is required to be fully composed upto this point. Note that it is not possible to hit below the last line in the story thread, the location returned will be to the left of the final CR.
| key | Parcel |
| waxPt | |
| withinSTOnly | If kTrue, then the we will not burrow into Tables or WaxAnchoredElements looking for a better hits. |
| nextLine | The TextIndex of the end of the WaxLine (which is the start of the next WaxLine) |
| pure virtual |
| wae | The WaxAnchoredElement to insert. |
| atParcel | The Parcel that the WaxAnchoredElement will start life in. |
| pure virtual |
Iterate over every object in a given parcel and call its IterateDrawOrder method
| pure virtual |
This method will damage a range of Text without causing any back-up damage to a Parcel previous to the one specified. The caller specifies the Text range to be damaged but they also must specify the range of the Parcels that may be damaged by this action. Only used during composition since for all changes to the TextModel we want to lean-left to previous Parcels and failure to do so will result in ASSERTs by the WaxLineCompositionIter.
| limitFirstParcelKey | The first Parcel that can become damaged - no damage before this point. If damageStart equals damageEnd, then this Parcel will be marked damaged, otherwise this Parcel will only be damaged if the start of the damage range is containing by this Parcel or we lean-left into it. |
| threadStart | The TextIndex of the start of the Thread managed by this TextParcelList. We could calculate it ourselves but most callers have it anyway. |
| damageStart | TextIndex of the first point of damage - must be within the Parcel specified by 'firstParcelKey' |
| limitFirstParcelIndex | Index within the controlling ParcelList of the Parcel specified by 'limitFirstParcelKey' |
| damageEnd | TextIndex of the end point of damage. |
| lastParcelIndex | Index within the controlling ParcelList of the last Parcel to be damaged. Only used when damageStart equals damageEnd, otherwise the last Parcel damaged will be one containing the last TextIndex of the damage range. |
| pure virtual |
Damage ranges of Text. This method does not damage waxLines, it just updates the span state.
| at | TextIndex for the start of the damage range. |
| amt | Length of damage range, must be > 0, must end before the end of the story thread owning the starting TextIndex. |
| limitLeanLeftParcelIndex | If NOT kInvalidParcelIndex, the index in the controlling ParcelList for which we will not do lean left damage. |
| pure virtual |
This method tells the TextParcelList that the WaxLine at the specified TextIndex has changed its ink bounds outside of composition. The WaxRun and WaxLine containing that TextIndex will have their caches invalidated appropriately before NotifyInkBoundsChanged() is called internally on the appropriate Parcel.
| at | TextIndex of the WaxLine that changed. |
| fromRebuild | kTrue if the WaxLine at the specified TextIndex is being rebuilt, kFalse otherwise. |
| pure virtual |
| ParcelKey |
| pure virtual |
This method tells the TextParcelList that some Wax element in the specified Parcel has changed its ink bounds outside of composition.
| pure virtual |
| ParcelKey | |
| newDocLayer |
| pure virtual |
This method tells the TextParcelList that some Wax element in the specified Parcel has become position dependent. This call is typically made outside of the composition of the Parcel.
| pure virtual |
| ParcelKey |
| pure virtual |
The specified active Wrap affecting the specified Parcel has changed the ModifyIndentsAroundTextWrap option. This method will damage the appropriate text within the Parcel as required.
| key | |
| sodRef | TextWrapRef of the wrap that has been affected. |
| pure virtual |
The specified active Wrap affecting the specified Parcel has changed either IStandOff::Mode from one BBox mode to another (such as kBoundingBox to kBand) or the IStandOff::Side. These changes do not result in a change to the PathGeometry of the Wrap but it will affect how Text will compose around the Wrap. This method will damage the appropriate text within the Parcel as required.
| key | |
| sodRef | TextWrapRef of the wrap that has been affected. |
| pure virtual |
The specified active Wrap affecting the specified Parcel has changed the SkipByLeading option. This method will damage the appropriate text within the Parcel as required.
| key | |
| sodRef | TextWrapRef of the wrap that has been affected. |
| pure virtual |
The specified Wrap affecting the specified Parcel has changed in some way that is based on ZOrder. This could be ZOrder based on the Wraps IHierarchy, the Wraps Layer, the ZOrder of the Wraps Layer, the visibility of the Wraps Layer or even Wrap being affected by ZOrder at all. The geometry, position and mode of the Wrap remains unchanged. This method will re-evaluate the Wrap relative to the effective ZOrder of the Parcel if required.
| key | |
| sodRef | TextWrapRef of the wrap that has been affected. |
| zOrderBasedWrap | |
| sodLayerVisible | |
| sodLayerIgnoreWhenHidden | |
| sodDocLayer |
| pure virtual |
| ParcelKey |
| pure virtual |
The story direction (returned by GetIsVertical()) of this StoryThread has changed.
| pure virtual |
This method manages the process of asking the IParagraphComposer to rebuild the specified WaxLine to fit. This main caller of this method is the private method IWaxLine::BuildRuns().
| Pointer | to ITextStoryThread of the WaxLine |
| Pointer | to IParcelList of this ITextParcelList |
| waxLine | Pointer to IWaxLine that needs WaxRuns to build |
| pure virtual |
Recompose Parcels.
WARNING: This method should only be called by the implementors of the ITextParcelListData which is the only code with enough knowledge of the proper context in which this can be called.
| container | Pointer to IParcelContainer which will be used to drive the composition on the container. |
| firstContainerPI | The index within the ParcelList of the first Parcel of the container. |
| noDamageBackPrevContainers | If kTrue, composition of the specified container must not result in damage to any Parcels in previous ParcelContainers. This should only be set if the ParcelList being composed is associated with a containing ParcelList (such as the FrameList) otherwise incorrect composition will result. |
| vj | VerticalJustification |
| vjMaxInterParaSpace | |
| vjBalanceColumns | |
| firstDamagedPI | index within the IParcelList of the first Parcel which is damaged. May be set to kInvalidParcelIndex if firstNeedWrapCheckPI is NOT kInvalidParcelIndex. |
| firstNeedWrapCheckPI | index within the IParcelList of the first Parcel which needs wrap check. May be set to kInvalidParcelIndex if firstDamagedPI is NOT kInvalidParcelIndex. |
| composeUpToTextIndex | Optional parameter for TextIndex within the thread which the container will compose 'columns' upto. If the TextIndex is beyond the end of the Container then it has no effect. If it ends within the Container, and the Container and stop composing in the 'column' that it is in, then the method will return early. Otherwise the entire Container will be composed. |
| interruptCheck | Optional pointer to IdleTimer class that will be used in some circumstances to interrupt composition before the container is fully composed. |
| tilableHeightRemaining | Options pointer to PMReal which will be filled in with an estimate of the tileable height remaining in the Container (before VJ was run) if the returned value is kRR_FullyComposed. |
| pure virtual |
The specified Wrap is removed from the specified Parcel. If the wrap is known to the Parcel then this method will damage Text that was overlapped by the wrap. The IStandOffParcelUsedList on the same boss as the IStandOffData will be called to unregister the Parcel.
| key | |
| sod | Pointer to IStandOffData interface for the wrap |
| xOffset | XOffset that the specified Parcel knows the StandOff by |
| yOffset | YOffset that the specified Parcel knows the StandOff by |
| pure virtual |
The purpose of this API is for composition/regen code to determine if it should act like there is a tab character as the first character of paragraphs in this story thread. This gives table cells the ability to have align to character tab functionality without having an actual tab character in the model.