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

#include <CWaxCollectionShape.h>

Inheritance diagram for CWaxCollectionShape:
CWaxRunShapeCPMUnknown< IWaxRunShape >IWaxRunShapeIPMUnknown

Public Member Functions

 CWaxCollectionShape (IPMUnknown *boss)
 
virtual void GetInkBounds (PMRect *pInkBounds, Text::DrawPassInfoList *passList) const
 
virtual void GetWaxBounds (int32 offset, int32 length, K2Vector< PMPolygon4 > *pSetOfBounds) const
 
virtual bool16 GetHighlightBounds (int32 offset, int32 length, K2Vector< PMPolygon4 > *pSetOfBounds, PMRect &highlightAdjust, const PMLineSeg &maxTopBottom) const
 
virtual bool16 GetSelectionLine (PMLineSeg *pSelectionLine) const
 
virtual bool16 GetHighlightLine (PMLineSeg *pHighlightLine, const PMLineSeg &maxTopBottom) const
 
virtual void GetCaretLineAt (int32 offset, PMLineSeg *pCaretLine, const PMLineSeg &maxTopBottom) const
 
- Public Member Functions inherited from CWaxRunShape
 CWaxRunShape (IPMUnknown *boss)
 
virtual bool16 GetHighlightBoundsME (int32 runGlyphStartIndex, int32 startGlyphIndex, int32 startGlyphInner, int32 endGlyphIndex, int32 endGlyphInner, K2Vector< PMPolygon4 > *pSetOfBounds, PMRect &highlightAdjust, const PMLineSeg &maxTopBottom) const
 
virtual int32 GetSelectionMode () const
 
virtual void SetSelectionMode (int32 mode)
 
int32 GetFlags () const
 
void SetFlags (int32 flags)
 
virtual void GetBorderShadingHeight (int32 mode, PMLineSeg *pShadingHeight) const
 
- Public Member Functions inherited from CPMUnknown< IWaxRunShape >
IPMUnknownQueryInterface (PMIID interfaceID) const
 
void AddRef () const
 
void Release () const
 
void PreDirty (ImplementationID prop=kInvalidImpl, bool16 allowModification=kTrue)
 
void PreDirtyNoMessage (ImplementationID prop=kInvalidImpl, bool16 allowModification=kTrue)
 
 CPMUnknown (const CPMUnknown &)=delete
 
CPMUnknownoperator= (const CPMUnknown &)=delete
 

Protected Member Functions

virtual bool16 CalculateSimpleSpanWidth (int32 offset, int32 length, PMLineSeg *pSpanWidth) const
 
virtual bool16 GetBounds (bool16 whichBounds, int32 offset, int32 length, K2Vector< PMPolygon4 > *pSetOfBounds, PMRect &highlightAdjust, const PMLineSeg &maxTopBottom) const
 
virtual void GetTextInkBounds (PMRect *pInkBounds) const
 
virtual void HandleStackedXORIssues (K2Vector< PMPolygon4 > *pSetOfBounds, int32 prevLineStart, int32 currLineStart, const PMReal &newTop, PMRect &highlightAdjust) const
 
virtual void HandleAdjacentXORIssues (K2Vector< PMPolygon4 > *pSetOfBounds, int32 offsetIntoSet, PMRect &highlightAdjust) const
 
virtual PMLineSeg AdjustMaxTopBottom (const PMLineSeg &maxTopBottom) const =0
 
- Protected Member Functions inherited from CWaxRunShape
PMReal GetWaxOutlineAdjustment () const
 
virtual void GetOwnerSelectionLine (PMLineSeg *pOwnerLine) const
 
bool16 DoPerGlyphBounds () const
 
void GetPerGlyphBounds (int32 offset, int32 length, PMLineSeg *pSpan, K2Vector< PMPolygon4 > *pSetOfBounds) const
 
PMMatrix GetGlyphTranslationMatrix (int32 glyphIndex) const
 
- Protected Member Functions inherited from CPMUnknown< IWaxRunShape >
 CPMUnknown (IPMUnknown *boss)
 

Additional Inherited Members

- Public Types inherited from IWaxRunShape
enum  { kDefaultIID = IID_IWAXRUNSHAPE }
 
enum  { kFlag_IsFirstStacked = 0x00000001, kFlag_IsLastStacked = 0x00000002, kFlag_ReservedForImplementors = 0xffff0000 }
 
- Public Attributes inherited from IWaxRunShape
enum IWaxRunShape:: { ... }  WaxRunFlags
 
- Protected Attributes inherited from CWaxRunShape
int32 fSelModeFlags
 
int32 fFlags
 

Detailed Description

Base implementation of the IWaxRunShape interface for collections of wax runs. A collection can either be stacked or adjacent. An adjacent collection is one in which a subsequent run follows the same flow as the previous run. For example, if the first run goes from X=5 to X=9, then the next run would follow from that, for example from X=9 to X=34. A stacked collection typically has the runs stacked on top of each other with the same initial offset (typically 0). Thus a stacked collection of 3 runs typically has all 3 runs with X=0 and, for example, Y1= -5, Y2=0, Y3=5

Note
WaxCollections work in both horizontal and vertical text flows.
See Also
IWaxRunShape, CWaxRunShape, The Wax

Member Function Documentation

virtual PMLineSeg CWaxCollectionShape::AdjustMaxTopBottom (const PMLineSegmaxTopBottom) const
protectedpure virtual
Adjust the maxTopBottom passed into various interfaces to take the collection into account. Called internally from GetHighlightLine(), GetCaretLineAt() and GetBounds(kFalse, ...)

Examples: a stacked collection may wish to ignore the maxTopBottom because it's allowed to extend beyond the waxLine bounds (warichuu does this). An adjacent collection may not care about maxTopBottom and this would be a NOP. Others may override it completely (TCY falls into this case).

virtual bool16 CWaxCollectionShape::CalculateSimpleSpanWidth (int32 offset,
int32 length,
PMLineSegpSpanWidth 
) const
protectedvirtual
Note
See CWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual bool16 CWaxCollectionShape::GetBounds (bool16 whichBounds,
int32 offset,
int32 length,
K2Vector< PMPolygon4 > * pSetOfBounds,
PMRecthighlightAdjust,
const PMLineSegmaxTopBottom 
) const
protectedvirtual
Get the appropriate bounds for this collection. GetHighlightBounds() and GetWaxBounds() just call this directly and it iterates the children collecting thier bounds and adjusting for being in the collection.

See Also
GetHighlightBounds() and GetWaxBounds() for more details on what it does and a description of the parameters and return values.
virtual void CWaxCollectionShape::GetCaretLineAt (int32 offset,
PMLineSegpCaretLine,
const PMLineSegmaxTopBottom 
) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual bool16 CWaxCollectionShape::GetHighlightBounds (int32 offset,
int32 length,
K2Vector< PMPolygon4 > * pSetOfBounds,
PMRecthighlightAdjust,
const PMLineSegmaxTopBottom 
) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual bool16 CWaxCollectionShape::GetHighlightLine (PMLineSegpHighlightLine,
const PMLineSegmaxTopBottom 
) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual void CWaxCollectionShape::GetInkBounds (PMRectpInkBounds,
Text::DrawPassInfoListpassList 
) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual bool16 CWaxCollectionShape::GetSelectionLine (PMLineSegpSelectionLine) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual void CWaxCollectionShape::GetTextInkBounds (PMRectpInkBounds) const
protectedvirtual
Note
See CWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual void CWaxCollectionShape::GetWaxBounds (int32 offset,
int32 length,
K2Vector< PMPolygon4 > * pSetOfBounds 
) const
virtual
Note
See IWaxRunShape for details on this method, its parameters and return values..

Reimplemented from CWaxRunShape.

virtual void CWaxCollectionShape::HandleAdjacentXORIssues (K2Vector< PMPolygon4 > * pSetOfBounds,
int32 offsetIntoSet,
PMRecthighlightAdjust 
) const
protectedvirtual

Take care of XOR issues when the collection is a (horizontally) adjacent collection of runs.

virtual void CWaxCollectionShape::HandleStackedXORIssues (K2Vector< PMPolygon4 > * pSetOfBounds,
int32 prevLineStart,
int32 currLineStart,
const PMRealnewTop,
PMRecthighlightAdjust 
) const
protectedvirtual

Take care of XOR issues when the collection is a (vertically) stacked collection of runs.