InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IParcelContainer Class Referenceabstract
Inheritance diagram for IParcelContainer:
IPMUnknown

Classes

struct  ParcelAllData
 
class  ParcelSpanData
 

Public Types

enum  { kDefaultIID = IID_IPARCELCONTAINER }
 

Public Member Functions

virtual IParcelListQueryParcelList () const =0
 
virtual PMRect GetBounds () const =0
 
virtual bool16 GetIsRectangular (bool16 checkCornerRadius=kFalse) const =0
 
virtual uint32 GetColumnCount () const =0
 
virtual PMRect GetNthColumnBBox (uint32 n) const =0
 
virtual uint32 GetParcelCount () const =0
 
virtual ParcelKey GetNthParcelKey (uint32 containerIndex) const =0
 
virtual int32 GetParcelIndex (ParcelKey key) const =0
 
virtual ParcelKey GetFirstParcelKey () const =0
 
virtual ParcelKey GetLastParcelKey () const =0
 
virtual ParcelSpanData GetNthParcelSpanData (uint32 n) const =0
 
virtual PMReal GetNthParcelEffectiveTopAdj (uint32 containerParcelIndex) const =0
 
virtual void SetNthParcelEffectiveTopAdj (uint32 containerParcelIndex, PMReal effectiveTopAdj)=0
 
virtual PMReal GetNthParcelEffectiveBottomAdj (uint32 containerParcelIndex, PMReal *pBalanceOffset) const =0
 
virtual void SetNthParcelEffectiveBottomAdj (uint32 containerParcelIndex, PMReal effectiveBottomAdj, PMReal balanceOffset)=0
 
virtual bool16 GetNthParcelIsNonConforming (int32 n) const =0
 
virtual void GetAllParcelData (std::vector< ParcelAllData > &list) const =0
 
virtual ParcelKey AppendParcel (const ParcelSpanData &spanData)=0
 
virtual bool16 ChangeNthParcelTo (uint32 containerParcelIndex, const ParcelSpanData &spanData)=0
 
virtual void RemoveLastParcel ()=0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Member Function Documentation

virtual ParcelKey IParcelContainer::AppendParcel (const ParcelSpanDataspanData)
pure virtual

Caller is responsible for all damage. The ParcelContainer is free to reject this request by returning an invalid key (eg TextOnPath).

virtual bool16 IParcelContainer::ChangeNthParcelTo (uint32 containerParcelIndex,
const ParcelSpanDataspanData 
)
pure virtual

Caller is responsible for all damage.

Returns
kTrue if the Parcel can accept then change, kFalse otherwise. Currently the only reasons that change will not be accepted if it is a split and the resulting Parcel will be too narrow (~3pt)
virtual PMRect IParcelContainer::GetBounds () const
pure virtual

All Parcel content bounds will be within the bounds of the Container.

virtual uint32 IParcelContainer::GetColumnCount () const
pure virtual

The number of columns in the Container.

virtual ParcelKey IParcelContainer::GetFirstParcelKey () const
pure virtual

Returns the first ParcelKey of the Container. This is equivalent to calling GetNthParcelKey(0).

virtual bool16 IParcelContainer::GetIsRectangular (bool16 checkCornerRadius = kFalse) const
pure virtual

Callers would like to know if the base tiled shape, separate from the external wraps, of the ParcelContainer is a rectangle.

This is an important performance benefit because it means that all the Parcels will thus tile rectangular, unless there are wraps which are known to the ITextParcelListData for the Parcel.

Also, note that the Parcel do have a to-(wax)Content-Matrix which might make the effective tileable area non-rectangular even though the Parcel was rectangular.

No attempt is made to separate out if individual Parcels are rectangular or not - if the Container is then the ContainerComposer will assume that any of them could be an act accordingly.

Returns
kTrue if the tileable shape is rectangular.
virtual ParcelKey IParcelContainer::GetLastParcelKey () const
pure virtual

Returns the last ParcelKey of the Container. This is equivalent to calling GetNthParcelKey(GetParcelCount() - 1).

virtual PMReal IParcelContainer::GetNthParcelEffectiveTopAdj (uint32 containerParcelIndex) const
pure virtual

Sets an effective ceiling and floor to the Parcel which will affect the placement of bottom hung WAEs (such as footnotes). Without any changes this is expected to be the Bottom() of ContentBounds unless we have manipulated them for hard balacing (such as for straddles).

virtual bool16 IParcelContainer::GetNthParcelIsNonConforming (int32 n) const
pure virtual

A Parcel is considered non-conforming when as created it does not fully match the values specified in its ParcelSpanData.

For example, a split which has a large gutter in a small column might result in a physical Parcel width of impossible size, or an implementation such as TextOnPath which does not support more than one column or splits so its single Parcel always takes on whatever is asked of it even though it is not doing what the user wanted.

When this occurs the Parcel implementor will typically create a Parcel that it CAN support but it will leave it marked here with the desired results.

Returns
kTrue if nth Parcel is nonconforming, kFalse otherwise
virtual ParcelKey IParcelContainer::GetNthParcelKey (uint32 containerIndex) const
pure virtual

Returns the ParcelKey of the nTH Parcel in the Container.

virtual uint32 IParcelContainer::GetParcelCount () const
pure virtual

The number of Parcels in the container.

virtual int32 IParcelContainer::GetParcelIndex (ParcelKey key) const
pure virtual

Returns the index of the Parcel in the Container. It is permissable to pass in a key which is NOT in the container which will result in a -1 being returned. This is sometime useful.

virtual IParcelList* IParcelContainer::QueryParcelList () const
pure virtual

The IParcelList our Parcels are associated with.

virtual void IParcelContainer::RemoveLastParcel ()
pure virtual

Destroys the last Parcel in the Container. The callee needs to be responsible for calling the TextParcelList to properly damage the content. It is an error to attempt to destroy the first Parcel in the Container.