InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CHierarchyNode Class Reference
Inheritance diagram for CHierarchyNode:
IHierarchyIPMUnknown

Public Member Functions

 CHierarchyNode (IPMUnknown *boss)
 
virtual IHierarchyQueryChild (int32 n) const
 
virtual UID GetChildUID (int32 n) const
 
virtual int32 GetChildIndex (const IHierarchy *p) const
 
virtual int32 GetChildCount () const
 
virtual IHierarchyQueryParent () const
 
virtual void SetParent (IHierarchy *newParent)
 
virtual UID GetParentUID () const
 
virtual IHierarchyQueryRoot () const
 
virtual UID GetRootUID () const
 
virtual void SetRootUID (UID newRoot)
 
virtual void Add (IHierarchy *newChild, int32 pos)
 
virtual void Move (IHierarchy *childToMove, int32 to)
 
virtual void Remove (IHierarchy *childToRemove)
 
virtual void Remove (UID childToRemove)
 
virtual bool16 IsLessThan (IHierarchy *item)
 
virtual void GetDescendents (UIDList *resultList, const PMIID &interfaceID, int32 flags=0) const
 
virtual void GetAncestors (UIDList *resultList, const PMIID &interfaceID) const
 
virtual UID GetLayerUID () const
 
virtual UID GetSpreadUID () const
 
void ReadWrite (IPMStream *s, ImplementationID prop)
 

Protected Member Functions

void AttachToRoot ()
 
void DetachFromRoot ()
 
virtual void PreDirtySetParent (IHierarchy *)
 
virtual void PreDirtySetRootUID (UID)
 
virtual void PreDirtyAddingChild (IHierarchy *child, int32 pos)
 
virtual void PreDirtyMovingChild (IHierarchy *child, int32 from, int32 to)
 
virtual void PreDirtyRemovingChild (IHierarchy *child, int32 pos)
 

Protected Attributes

UID fRootUID
 
UID fParentUID
 
PersistUIDListfChildrenUIDs
 

Additional Inherited Members

- Public Types inherited from IHierarchy
enum  { kDefaultIID = IID_IHIERARCHY }
 
enum  { kAtTheEnd = -1 }
 
enum  { kIncludeHidden = 0x00000001 }
 

Member Function Documentation

virtual void CHierarchyNode::Add (IHierarchynewChild,
int32 pos 
)
virtual

Add a new child before the index position. Or, if kAtTheEnd, add it to the end of the list.

Parameters
*newChildthe item to add to the hierarchy.
kAtTheEndposition to add, defaults to kAtTheEnd. Use 0 for initial position of hierarchy.

Implements IHierarchy.

virtual void CHierarchyNode::GetAncestors (UIDListresultList,
const PMIIDinterfaceID 
) const
virtual

Return ancestors that support interfaceID. Collection of ancestors ends when an ancestor is reached that doesn't support the interface.

Parameters
*resultList[OUT] the filled in list of ancestors meeting the requirements.
interfaceID[IN] the interfaceID to check each parent (and grandparent, etc) for.

Implements IHierarchy.

virtual int32 CHierarchyNode::GetChildCount () const
virtual

Return the number of children

Parameters
none
Returns
int32

Implements IHierarchy.

virtual int32 CHierarchyNode::GetChildIndex (const IHierarchyp) const
virtual

Return the index of this child

Parameters
pthe child hierarchy to find the position for.
Returns
int32 the child's position, -1 if not found.

Implements IHierarchy.

virtual UID CHierarchyNode::GetChildUID (int32 n) const
virtual

Return the n'th child UID in the hierarchy.

Parameters
nthe index of the child to return.
Returns
UID

Implements IHierarchy.

virtual void CHierarchyNode::GetDescendents (UIDListresultList,
const PMIIDinterfaceID,
int32 flags = 0 
) const
virtual

Return all the descendents that support interfaceID.

Parameters
*resultList[OUT] the filled in list of descendents meeting the requirements.
interfaceID[IN] the interfaceID to check each child (and grandchild, etc) for.
flagsGenerally 0, but may include hidden items (kIncludeHidden)

Implements IHierarchy.

virtual UID CHierarchyNode::GetLayerUID () const
virtual

Return the spread layer's UID for this hierarchy node.

Parameters
none
Returns
UID

Implements IHierarchy.

virtual UID CHierarchyNode::GetParentUID () const
virtual

Returns the immediate parent UID of this item. May be kInvalidUID.

Parameters
none
Returns
UID

Implements IHierarchy.

virtual UID CHierarchyNode::GetRootUID () const
virtual

Returns the UID of the ultimate parent of the hierarchy.

Parameters
none
Returns
UID

Implements IHierarchy.

virtual UID CHierarchyNode::GetSpreadUID () const
virtual

Return the spread's UID for this hierarchy node.

Parameters
none
Returns
UID

Implements IHierarchy.

virtual bool16 CHierarchyNode::IsLessThan (IHierarchyitem)
virtual

Answers, "Is this in before 'item' in the Z-order?" NOTE: Both items must be in the same hierarchy and be the same distance from the root.

Parameters
itemthe item to compare to this item
Returns
bool16 kTrue if before (underneath) this item, kFalse otherwise.

Implements IHierarchy.

virtual void CHierarchyNode::Move (IHierarchychildToMove,
int32 to 
)
virtual

Move the child to a new location in the z-order.

Parameters
*childToMovethe item to move
tothe index location to move the item

Implements IHierarchy.

virtual IHierarchy* CHierarchyNode::QueryChild (int32 n) const
virtual

Return the n'th child in the hierarchy. Called holds reference.

Parameters
nthe index of the child to return.
Returns
IHierarchy

Implements IHierarchy.

virtual IHierarchy* CHierarchyNode::QueryParent () const
virtual

Returns the immediate parent of this item. Caller holds reference. May be nil.

Parameters
none
Returns
IHierarchy

Implements IHierarchy.

virtual IHierarchy* CHierarchyNode::QueryRoot () const
virtual

Returns the ultimate parent of the hierarchy. Caller holds reference.

Parameters
none
Returns
IHierarchy

Implements IHierarchy.

virtual void CHierarchyNode::Remove (IHierarchychildToRemove)
virtual

Remove the child. It is disowned, and is no longer a child.

Parameters
*childToRemovethe item to remove.

Implements IHierarchy.

virtual void CHierarchyNode::Remove (UID childToRemove)
virtual

Same as above except it allows us to remove the child even if we can't access the IHierarchy interface.

Parameters
childToRemovethe UID of the child to remove.

Implements IHierarchy.

virtual void CHierarchyNode::SetParent (IHierarchynewParent)
virtual

SetParent is not for external use. It's in the external interface so that subclasses can call it on IHierarchy parameters. (protected doesn't work on parameters). See kRemoveFromHierarchyCmdBoss and kAddToHierarchyCmdBoss and IHierarchyUtils::AddToHierarchy and IHierarchyUtils::RemoveFromHierarchy

Parameters
*newParent

Implements IHierarchy.

virtual void CHierarchyNode::SetRootUID (UID newRoot)
virtual

SetRootUID is not for external use. It's in the external interface so that subclasses can call it on IHierarchy parameters. (protected doesn't work on parameters)

Parameters
newRoot

Implements IHierarchy.