![]() | InDesign SDK 20.5 |
#include <IWaxLineShape.h>

Public Types | |
| enum | { kDefaultIID = IID_IWAXLINESHAPE } |
| enum | SelectionFlags { kFlag_SelectionAscToDesc = 0x00000000, kFlag_SelectionAscToBase = 0x00000001, kFlag_SelectionLeadToBase = 0x00000002, kFlag_SelectionJapanese = 0x00000004, kFlag_SelectionRangeMask = 0x0000000f, kFlag_SelectionRespectShift = 0x00000010, kFlag_SelectionSkipThisYTop = 0x00000020, kFlag_SelectionSkipLineYTop = 0x00000040, kFlag_SelectionSkipThisYBottom = 0x00000080, kFlag_SelectionSkipLineYBottom = 0x00000100, kFlag_SelectionMask = 0x000001ff, kFlag_ReservedForImplementors = 0xffff0000 } |
| enum | SelectionMode { kSelectionMode_AscToDesc = kFlag_SelectionAscToDesc, kSelectionMode_DropCap, kSelectionMode_Anchor = kFlag_SelectionLeadToBase, kSelectionMode_Japanese = kFlag_SelectionJapanese, kSelectionMode_Default = kSelectionMode_AscToDesc } |
| enum | CachedDataType { kCachedDataType_Ink = 0, kCachedDataType_Shading = 1, kCachedDataType_Border = 2, kCachedDataType_ColumnRule = 4 } |
| enum | ShadingHeightFlags { kFlag_ShadingTopFlag_Ascent = 0x00000001, kFlag_ShadingTopFlag_Leading = 0x00000002, kFlag_ShadingTopFlag_Baseline = 0x00000004, kFlag_ShadingTopFlag_CapHeight = 0x00000008, kFlag_ShadingTopFlag_EmBox = 0x00000010, kFlag_ShadingTopFlag_xHeight = 0x00000020, kFlag_ShadingTopFlag_EmBoxCenter = 0x00000040, kFlag_ShadingTopRangeMask = 0x000000ff, kFlag_ShadingBottomFlag_Baseline = 0x00000100, kFlag_ShadingBottomFlag_Descent = 0x00000200, kFlag_ShadingBottomFlag_EmBox = 0x00000400, kFlag_ShadingBottomFlag_EmBoxCenter = 0x00000800, kFlag_ShadingBottomRangeMask = 0x00000f00 } |
| enum | ShadingHeightMode { kFlag_ShadingHeightAscToDesc = kFlag_ShadingTopFlag_Ascent | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightAscToBase = kFlag_ShadingTopFlag_Ascent | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightAscToEmBox = kFlag_ShadingTopFlag_Ascent | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightAscToEmBoxCenter = kFlag_ShadingTopFlag_Ascent | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightLeadToDesc = kFlag_ShadingTopFlag_Leading | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightLeadToBase = kFlag_ShadingTopFlag_Leading | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightLeadToEmBox = kFlag_ShadingTopFlag_Leading | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightLeadToEmBoxCenter = kFlag_ShadingTopFlag_Leading | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightBaseToDesc = kFlag_ShadingTopFlag_Baseline | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightBaseToBase = kFlag_ShadingTopFlag_Baseline | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightBaseToEmBox = kFlag_ShadingTopFlag_Baseline | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightBaseToEmBoxCenter = kFlag_ShadingTopFlag_Baseline | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightEmBoxToDesc = kFlag_ShadingTopFlag_EmBox | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightEmBoxToBase = kFlag_ShadingTopFlag_EmBox | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightEmBoxToEmBox = kFlag_ShadingTopFlag_EmBox | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightEmBoxToEmBoxCenter = kFlag_ShadingTopFlag_EmBox | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightxHeightToDesc = kFlag_ShadingTopFlag_xHeight | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightxHeightToBase = kFlag_ShadingTopFlag_xHeight | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightxHeightToEmBox = kFlag_ShadingTopFlag_xHeight | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightxHeightToEmBoxCenter = kFlag_ShadingTopFlag_xHeight | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightCapHeightToDesc = kFlag_ShadingTopFlag_CapHeight | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightCapHeightToBase = kFlag_ShadingTopFlag_CapHeight | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightCapHeightToEmBox = kFlag_ShadingTopFlag_CapHeight | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightCapHeightToEmBoxCenter = kFlag_ShadingTopFlag_CapHeight | kFlag_ShadingBottomFlag_EmBoxCenter, kFlag_ShadingHeightEmBoxCenterToDesc = kFlag_ShadingTopFlag_EmBoxCenter | kFlag_ShadingBottomFlag_Descent, kFlag_ShadingHeightEmBoxCenterToBase = kFlag_ShadingTopFlag_EmBoxCenter | kFlag_ShadingBottomFlag_Baseline, kFlag_ShadingHeightEmBoxCenterToEmBox = kFlag_ShadingTopFlag_EmBoxCenter | kFlag_ShadingBottomFlag_EmBox, kFlag_ShadingHeightEmBoxCenterToEmBoxCenter = kFlag_ShadingTopFlag_EmBoxCenter | kFlag_ShadingBottomFlag_EmBoxCenter } |
Public Member Functions | |
| virtual void | Draw (GraphicsData *gd, int32 iShapeFlags, Text::DrawPassInfo::Pass pass, const PMRect *areaToDraw=nil)=0 |
| virtual void | GetInkBounds (PMRect *pInkBounds)=0 |
| virtual int32 | GetPassCount ()=0 |
| virtual Text::DrawPassInfo | GetNthPass (int32 n)=0 |
| virtual int32 | GetSelectionMode () const =0 |
| virtual void | SetSelectionMode (int32 mode)=0 |
| virtual bool16 | GetHasOverlappingHiliteRects ()=0 |
| virtual void | GetSelectionLine (PMLineSeg *pSelectionLine)=0 |
| virtual void | GetCaretLineAt (int32 offset, PMLineSeg *pCaretLine, const PMLineSeg &pMaxTopBottom) const =0 |
| virtual void | InvalCachedData (const bool16 invalAll=kTrue, const IWaxLineShape::CachedDataType cachedDataType=IWaxLineShape::kCachedDataType_Ink)=0 |
| virtual bool16 | GetHasCachedData (const IWaxLineShape::CachedDataType cachedDataType=IWaxLineShape::kCachedDataType_Ink) const =0 |
| virtual void | UpdateInkBounds (const PMRect *pInitialBounds=nil)=0 |
| virtual void | GetShadingHeight (ShadingHeightMode shadingHeightMode, PMLineSeg *pShadingHeight, const PMReal &romanBaseline)=0 |
| virtual void | GetBorderHeight (ShadingHeightMode borderHeightMode, PMLineSeg *pBorderHeight, const PMReal &romanBaseline)=0 |
| virtual bool16 | GetShadingBounds (PMRect &shadingBounds) const =0 |
| virtual bool16 | GetBorderBounds (PMRect &borderBounds) const =0 |
| virtual void | SetShadingBounds (const PMRect &shadingBounds)=0 |
| virtual void | SetBorderBounds (const PMRect &borderBounds)=0 |
| virtual void | GetColumnRuleHeight (ShadingHeightMode columnHeightMode, PMLineSeg *pColumnHeight, const PMReal &romanBaseline)=0 |
Public Member Functions inherited from IPMUnknown | |
| virtual IPMUnknown * | QueryInterface (PMIID interfaceID) const =0 |
| virtual void | AddRef () const =0 |
| virtual void | Release () const =0 |
Interface for accessing the shape of the wax line. I.e. it's various bounds and related flags. Used mostly for selection and highlighting.
Parameters for the selection height (describe what the top and bottom of the selection should be derived from.) It is divided into two parts: General Range and Overrides. Each run in the line inspects these flags and computes its selection height. So, the flags pertain to a particular run and is sometimes constrained by the line's parameters.
Really just a grouping of SelectionFlags for ease of use
| pure virtual |
Draw the waxLine. This includes the text associated with this wax line and any adornments (including global adornments) attacted to it. The method should inspect all objects (i.e. adornments) associated with it and match any that relate to this pass. Only objects matching this particular pass should be drawn. This method will (also) ask each waxRun (via IWaxRunText) to draw itself.
| gd | IN Where to draw. |
| iShapeFlags | IN Flags defining this type of draw. See IShape "drawing flags" enum. |
| pass | IN This particular phase of drawing. The line may not necessarily have anything to draw on every pass. |
| areaToDraw | IN If this is non-nil then it specifies the rectangle that will be drawn and may be used for optimizing what is actually drawn. |
| pure virtual |
Returns the cached border bounds for this waxline.
| borderBounds | OUT - cached border bounds. |
| pure virtual |
Returns the border height for this waxline based on the input border mode and the roman baseline passed.
| borderHeightMode | IN - |
| pBorderHeight | OUT - pointer to the line segment containing border height. |
| romanBaseline | IN - this is the roman baseline for this wax line. In different locales and feature sets this value may differ. Typically for English this value is 0 and Japanese it's (-Embox bottom). |
| pure virtual |
Returns the caret bounds at the given position. I.e. the bounds of the caret.
| offset | A valid offset in to the wax, relative to this run. |
| pCaretLine | The returned bounds of the caret. The direction of the caret can be determined by checking for a logical width of 0. In other words, if the caret is vertical, the width will be 0 and if the caret is horizontal, the height will be 0. NOTE: it is possible that in the future the caret could be some other angle, so that should be accounted for. |
| maxTopBottom | Constraint on the caret height - pCaretLine will be trimmed to maxTopBottom (if DeltaY() is non-zero). |
| pure virtual |
Returns the column rule for this waxline based on the input border mode and the roman baseline passed.
| columnHeightMode | IN - |
| pColumnHeight | OUT - pointer to the line segment containing column rule height. |
| romanBaseline | IN - this is the roman baseline for this wax line. In different locales and feature sets this value may differ. Typically for English this value is 0 and Japanese it's (-Embox bottom). |
| pure virtual |
Return whether or not this object has cached data for the input type.
| cachedDataType | Specific cached data type, for which the presence of caching data needs to be returned. Default value is kCachedDataType_Ink |
| pure virtual |
Return whether this waxLines has overlapping highlight rectangles.
| pure virtual |
Retrieve the Ink Bounds for this wax line. The ink bounds is the area (rectangle) in which the ink will draw.
It is used primarily for invalidation. The caller is guaranteed that no ink will draw outside this rectangle for any thing associated with this wax run.
This method will ask each waxRun for its bounds and aggregate them (union).
| pInkBounds | OUT Should be initialized to empty when called. It will be untouched if there is no ink drawn by this run. The bounds will include the effect of text, local adornments and any IGlobalTextAdornment whose GetHasInkBounds() method returns kTrue. |
| pure virtual |
Return the pass information structure for the nth Pass. Typically this information is collected in a sorted list and then processed (after all lines in the parcel have been asked).
| pure virtual |
Return the number of passes needed to draw this run.
| pure virtual |
Get the selection line (top/bottom) for this line. This is typically used to determine the constraints on the height of the highlight for this waxLine.
See GetCaretLineAt for more details on this and IWaxLineHilite for more details on highlighting, in general.
| pSelectionLine | OUT the calculated line. |
| pure virtual |
Returns the cached shading bounds for this waxline.
| shadingBounds | OUT - cached shading bounds. |
| pure virtual |
Returns the shading height for this waxline based on the input shading mode and the roman baseline passed.
| shadingHeightMode | IN - |
| pShadingHeight | OUT - pointer to the line segment containing shading height. |
| romanBaseline | IN - this is the roman baseline for this wax line. In different locales and feature sets this value may differ. Typically for English this value is 0 and Japanese it's (-Embox bottom). |
| pure virtual |
Invalidate cached information (if any) held by this interface with the aim that subsequent calls to this interface will (automatically and silently) re-compute the original data.
| invalAll | A boolean value depicting whether all the cached content needs to be invalidated, or the specific cached data type, passed as second argument, needs to be invalidated. Its default value is kTrue. |
| cachedDataType | Specific cached data type to be invalidated. This will be honored only if the first arugment passed has kFalse value. Default value is kCachedDataType_Ink |
| pure virtual |
Sets the border bounds to be cached for this waxline.
| borderBounds | IN - border bounds to be set for this waxline. |
| pure virtual |
| pure virtual |
Sets the shading bounds to be cached for this waxline.
| shadingBounds | IN - shading bounds to be set for this waxline. |
| pure virtual |
The implementation is asked to re-compute the InkBounds.