|
| virtual bool16 | Recompose (const ITextParcelList *tpl, const IParagraphComposer::Tiler *tiler, TextIndex lineStartIndex, TextIndex anchorPtIndex, ParcelKey parcelKey, PMReal yPosition, waxLineDamageType waxLineDamage, bool16 firstWaxLineInParcel, bool16 waxLinePartOfKeepsBlock, ParcelKey *pParcelKey, PMRect *pBBox, PMReal *pSpaceAfter, bool16 *pHasBreak, int32 *pTextSpan, bool16 *pDamagePreviousWaxLine, NextAnchorInfo *pNextAnchorInfo, int32 *pDamageFollowingNChars, bool16 *pDeferredCompositionDueToKeeps, TextIndex noDamageBackTextIndex=-1)=0 |
| |
| virtual void | Move (TextIndex anchorPtIndex, IParcelList *pl, ParcelKey parcelKey, PMReal yPosition, PMReal yPosDelta)=0 |
| |
| virtual void | GetBBox (PMRect *pBBox) const =0 |
| |
| virtual int32 | GetTextSpan () const =0 |
| |
| virtual void | GetInkBounds (PMRect *inkBounds) const =0 |
| |
| virtual void | GetDrawPassInfo (Text::DrawPassInfoList *passList) const =0 |
| |
| virtual void | IterateWaxAnchorPointDrawOrder (const PMMatrix *xform, ICallback *callbackInfo, int32 iShapeFlags)=0 |
| |
| virtual void | Draw (GraphicsData *gd, int32 iShapeFlags, Text::DrawPassInfo::Pass pass, const PMReal &xOffset, const PMReal &yOffset, const PMRect *areaToDraw)=0 |
| |
| virtual bool16 | GetIsParcelPositionDependent () const =0 |
| |
| virtual void | MarkKeepsDamageFromText ()=0 |
| |
| virtual bool16 | MarkExtendedDamageFromTextKeeps (bool16 paraHasKeepAllLines)=0 |
| |
| virtual PMReal | HitTest (const PMPoint &waxPt, TextIndex *nextLine) const =0 |
| |
| virtual void | CollectOwnedItems (OwnedItemDataList *rList) const =0 |
| |
| virtual PMReal | GetTopKeepsContentBottom (const IWaxLine *waxLine) const =0 |
| |
| virtual bool16 | NotifyComposedPartOfKeepsBlock (IWaxLine *waxLine)=0 |
| |
| virtual bool16 | MarkCompositionDamage (IWaxLine *waxLine, PMReal topYIntersect)=0 |
| |
| virtual bool16 | GetIsDivisible () const =0 |
| |
| virtual bool16 | GetIsOnlyOrFirstOfASet (bool16 *pHasTopBreak) const =0 |
| |
| virtual bool16 | GetTextKeepsViolation (bool16 paraHasKeepAllLines) const =0 |
| |
| virtual TextIndex | BackupToStartOfKeepsFromTop (bool16 paraHasKeepAllLines, bool16 &topOfKeepsBlockNotTopOfWAPSet, bool16 &keepsBlockAtTopOfContainingWAP, bool16 &keepsBlockHasTopBreak, bool16 &keepsBlockDamaged) const =0 |
| |
| virtual TextIndex | BackupToStartOfKeepsFromBottom (bool16 paraHasKeepAllLines, bool16 &topOfKeepsBlockNotTopOfWAPSet, bool16 &keepsBlockAtTopOfContainingWAP, bool16 &keepsBlockHasTopBreak, bool16 &keepsBlockDamaged) const =0 |
| |
| virtual bool16 | GetIsCompositionExtending () const =0 |
| |
| virtual void | MarkParcelMoveDamage ()=0 |
| |
| virtual void | MarkPreviousParcelMoveDamage ()=0 |
| |
| virtual void | MarkParcelGridDamage ()=0 |
| |
| virtual void | MarkPreviousParcelGridDamage ()=0 |
| |
| virtual IPMUnknown * | QueryInterface (PMIID interfaceID) const =0 |
| |
| virtual void | AddRef () const =0 |
| |
| virtual void | Release () const =0 |
| |
| virtual TextIndex IWaxAnchorPt::BackupToStartOfKeepsFromBottom | ( | bool16 | paraHasKeepAllLines, | | | bool16 & | topOfKeepsBlockNotTopOfWAPSet, | | | bool16 & | keepsBlockAtTopOfContainingWAP, | | | bool16 & | keepsBlockHasTopBreak, | | | bool16 & | keepsBlockDamaged | | ) | | const |
| pure virtual |
This method by the Text Keeps processing when it is backing up to the start of the Text Keeps block and it encounters a WaxAnchorPt that the next WaxLine would like to be kept with.
By definition this WaxAnchorPt will be the only, or last of a multi-piece set.
The callee needs to indicate how this Text Keep thread flows through the WaxAnchorPt - by definition the WaxLine below the WaxAnchorPt is trying to keep with the bottom edge but if there is internal keeps relationships that stretch from this bottom edge then this is the Keeps block that we are interested in.
- Parameters
| paraHasKeepAllLines | kTrue if the anchoring Paragraph has Keep All Lines Together set. This will be used by the callee so that it will backup to the very top of the multi-WaxAnchorPt set (topOfKeepsBlockNotTopOfWAPSet will be kFalse, keepBlockAtTopContaining will be kTrue) unless the internal object as an effective text break. |
| topOfKeepsBlockNotTopOfWAPSet | Returned kTrue if the object can be considered divisible - that is the top of the keeps block beginning at the bottom of the object ends before the top of the object mapped by one or more WaxAnchorPt, even though the top of the object might be in an earlier WaxAnchorPt. kFalse if the entire object can be considered one whole keeps block, even though the top of the object might be in an earlier WaxAnchorPt. This latter is important because it tells the Text Keeps processing system whether it needs to continue the keeps backup using the WaxLine keeps flags on the top WaxAnchorPt. |
| keepsBlockAtTopOfContainingWAP | Returned kTrue if the top of the keeps block is also the top of the WaxAnchorPt that contains it. If topOfKeepsBlockNotTopOfWAPSet is kFalse, then this value must be kTrue. |
| keepsBlockHasTopBreak | Returned kTrue if the top of the keeps block has an effective text break. This will only be interesting to the Text Keeps processing if the keeps block starts at the top of the WaxAnchorPt (so topOfKeepsBlockNotTopOfWAPSet is set to kFalse, and keepsBlockAtTopOfContaining set to kTrue). |
| keepsBlockDamaged | Returned kTrue if any of the internal abstracted Keeps range between the LAST multi-piece WaxAnchor and the top of the internal Keeps range has already been damaged. |
- Returns
- The TextIndex of the WaxAnchoredPt which controls the top of the keeps block, which will either be THIS WaxAnchorPt or an ealier one if a multi-piece WaxAnchorPt.
| virtual TextIndex IWaxAnchorPt::BackupToStartOfKeepsFromTop | ( | bool16 | paraHasKeepAllLines, | | | bool16 & | topOfKeepsBlockNotTopOfWAPSet, | | | bool16 & | keepsBlockAtTopOfContainingWAP, | | | bool16 & | keepsBlockHasTopBreak, | | | bool16 & | keepsBlockDamaged | | ) | | const |
| pure virtual |
This method is used by the Text Keeps processing on a WaxAnchorPt which may or may not have been already damaged either internally or by the WaxLine it is on.
When undamaged it will be because it just finished composing the Parcel and this is the first non-first WaxAnchorPt of a multi-piece set and it wants to get the top of the keeps block.
Through a previous call to GetTextKeepsViolation() it knows that this WaxAnchorPt is not the first part of a multi-piece set and the top edge of the WaxAnchorPt wants to be kept with the bottom edge of the WaxAnchorPt composed on the previous WaxLine.
When damaged it will be because we have geometry damaged the WaxLine containing this WaxAnchorPt and because we know that it is not the first of a set we want to extend the damage through keeps of the WaxAnchorPt ABOVE this WaxAnchorPt.
Either way the callee is asked to start with this keep relationship and backup the keeps relationship chain towards the first WaxAnchorPt in the set.
Note that in practice we expect that the returned values will indicate the very top, rather than an internal value, of previous WaxAnchorPt because the WaxAnchorPt is expected to be responsible for internal keeps and the only reason it would create a keeps violation between internal edges is if by doing so it was to leave the Parcel empty.
- Parameters
| paraHasKeepAllLines | kTrue if the anchoring Paragraph has Keep All Lines Together set. This will be used by the callee so that it will backup to the very top of the multi-WaxAnchorPt set (topOfKeepsBlockNotTopOfWAPSet will be kFalse, keepBlockAtTopContaining will be kTrue) unless the internal object as an effective text break. |
| topOfKeepsBlockNotTopOfWAPSet | Returned kTrue if the object can be considered divisible - that is the top of the keeps block beginning at the bottom of the object ends before the top of the object mapped by one or more WaxAnchorPt, even though the top of the object might be in an earlier WaxAnchorPt. kFalse if the entire object can be considered one whole keeps block, even though the top of the object might be in an earlier WaxAnchorPt. This latter is important because it tells the Text Keeps processing system whether it needs to continue the keeps backup using the WaxLine keeps flags on the top WaxAnchorPt. |
| keepsBlockAtTopOfContainingWAP | Returned kTrue if the top of the keeps block is also the top of the WaxAnchorPt that contains it. If topOfKeepsBlockNotTopOfWAPSet is kFalse, then this value must be kTrue. |
| keepsBlockHasTopBreak | Set to kTrue if the top of the keeps block has an effective text break. This will only be interesting to the Text Keeps processing if the keeps block starts at the top of the WaxAnchorPt (so topOfKeepsBlockNotTopOfWAPSet is set to kFalse, and keepsBlockAtTopOfContaining set to kTrue). |
| keepsBlockDamaged | Set to kTrue if any of the internal abstracted Keeps range between the PREVIOUS multi-piece WaxAnchor and the top of the internal Keeps range has already been damaged. NOTE: The WaxAnchorPt COULD already be damaged and this damage flag does NOT apply to that damage. |
- Returns
- The TextIndex of the WaxAnchoredPt which controls the top of the keeps block, which will either be THIS WaxAnchorPt or an ealier one if a multi-piece WaxAnchorPt.
| virtual bool16 IWaxAnchorPt::GetIsOnlyOrFirstOfASet | ( | bool16 * | pHasTopBreak | ) | const |
| pure virtual |
Text Keeps processing understands that WaxAnchorPts may represent a single conceptual object managed by one or more contiguous WaxAnchorPts. This represents a challenge when trying to establish what can be treated as a single WaxLine and what cannot.
This method allows the Text Keeps Processing to know if the keeps flags on the WaxLine containing the WaxAnchorPt can used.
For middle or last WaxAnchorPts of a set those flags can never be used.
- Parameters
| pHasTopBreak | If method returns kTrue, then this pointer will be set to kTrue if the top of the WaxAnchorPt has an effective text break, kFalse otherwise. |
- Returns
- kTrue if this WaxAnchorPt is the only WaxAnchorPt, or is the top/first WaxAnchorPt of a multi-piece set, kFalse otherwise.
| virtual bool16 IWaxAnchorPt::GetTextKeepsViolation | ( | bool16 | paraHasKeepAllLines | ) | const |
| pure virtual |
This method will be called by the Parcel Composer for the first WaxLine composed off the end of the Parcel which contains a WaxAnchorPt.
The Text Keeps processor will first call GetIsOnlyOrFirstOfASet() and if that returns kFalse, then it knows that the keeps flags on the WaxLine cannot be relied upon and therefore it will call this method.
This method should return kTrue if for any reason there is any internal keeps relationship between the top of this WaxAnchorPt and the previous WaxAnchorPt, which will be in the same set.
If not, or there is a internal effective keeps break, then this method should return kFalse.
- Parameters
| paraHasKeepAllLines | kTrue if the anchoring Paragraph has Keep All Lines Together set. |
- Returns
- kTrue if there is an internal keeps relationship between the top of this Wax WaxAnchorPt and the previous one, which will be in the same set, kFalse otherwise.
| virtual void IWaxAnchorPt::MarkKeepsDamageFromText | ( | | ) | |
| pure virtual |
Text Keeps has included the bottom edge of this WaxAnchorPt and the top of the effective Text Keeps block ends in this WaxAnchorPt without including the top edge of this WaxAnchorPt.
This later criteria is important because this method will not be called if the containing Paragraph has keep all lines together as that will, if effective, force the entire WaxAnchorPt to be out of the Parcel and that will be handled by the Text Keeps processing without calling this method.