GeListHeadCB Class Reference

#include <c4d_baselist.h>

Inheritance diagram for GeListHeadCB:

Detailed Description

Stores a list of GeListNode objects and has an optional callback function which the owner object can set and any other object may invoke.

Note
Has to be created with Alloc() and destroyed with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

Private Member Functions

 GeListHeadCB ()
 
 ~GeListHeadCB ()
 

Navigation

void InsertBefore (GeListNode *bl)
 
void InsertAfter (GeListNode *bl)
 
void InsertUnder (GeListNode *bl)
 
void InsertUnderLast (GeListNode *bl)
 
void Remove ()
 

Alloc/Free

static GeListHeadCBAlloc ()
 
static void Free (GeListHeadCB *&v)
 

Parent Callback

maxon::Result< void > SetParentCallback (maxon::Delegate< maxon::Result< void >(BaseList2D &caller, Int32 type, void *message)> &&callback)
 
maxon::Result< void > InvokeParentCallback (BaseList2D &caller, Int32 type, void *message) const
 

Additional Inherited Members

- Public Member Functions inherited from GeListHead
void SetParent (GeListNode *parent)
 
GeListNodeGetParent ()
 
GeListNodeGetFirst ()
 
GeListNodeGetLast ()
 
void FlushAll ()
 
void InsertFirst (GeListNode *bn)
 
void InsertLast (GeListNode *bn)
 
void Insert (GeListNode *bn, GeListNode *parent, GeListNode *prev)
 
- Public Member Functions inherited from GeListNode
GeListNodeGetNext ()
 
GeListNodeGetPred ()
 
GeListNodeGetDown ()
 
GeListNodeGetUp ()
 
GeListNodeGetDownLast ()
 
void InsertBefore (GeListNode *bl)
 
void InsertAfter (GeListNode *bl)
 
void InsertUnder (GeListNode *bl)
 
void InsertUnderLast (GeListNode *bl)
 
void Remove ()
 
GeListHeadGetListHead ()
 
Int32 GetNodeID (Int32 index=0) const
 
template<typename CAST >
const CAST * GetNodeData (Int32 index=0) const
 
template<typename CAST >
CAST * GetNodeData (Int32 index=0)
 
void SetCustomData (GeListNode *node)
 
GeListNodeGetCustomData ()
 
BaseDocumentGetDocument ()
 
Int32 GetBranchInfo (BranchInfo *info, Int32 max, GETBRANCHINFO flags)
 
Bool IsDocumentRelated ()
 
Int32 GetInfo ()
 
Bool GetNBit (NBIT bit) const
 
UInt32 GetNBitMask (Int32 index) const
 
Bool ChangeNBit (NBIT bit, NBITCONTROL bitmode)
 
- Public Member Functions inherited from C4DAtom
Int32 GetType () const
 
Int32 GetRealType () const
 
Int32 GetDiskType () const
 
Bool IsInstanceOf (Int32 id) const
 
Int32 GetClassification () const
 
Bool Message (Int32 type, void *data=nullptr)
 
Bool MultiMessage (MULTIMSG_ROUTE flags, Int32 type, void *data)
 
C4DAtomGetClone (COPYFLAGS flags, AliasTrans *trn)
 
Bool CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn)
 
Bool Read (HyperFile *hf, Int32 id, Int32 level)
 
Bool Write (HyperFile *hf)
 
Bool ReadObject (HyperFile *hf, Bool readheader)
 
Bool WriteObject (HyperFile *hf)
 
Bool GetDescription (Description *description, DESCFLAGS_DESC flags)
 
Bool GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags)
 
Bool SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
 
DynamicDescriptionGetDynamicDescription ()
 
Bool GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc)
 
Bool TranslateDescID (const DescID &id, DescID &res_id, C4DAtom *&res_at)
 
UInt32 GetDirty (DIRTYFLAGS flags) const
 
void SetDirty (DIRTYFLAGS flags)
 
UInt32 GetHDirty (HDIRTYFLAGS mask) const
 
void SetHDirty (HDIRTYFLAGS mask)
 
- Static Public Member Functions inherited from GeListHead
static GeListHeadAlloc ()
 
static void Free (GeListHead *&v)
 

Constructor & Destructor Documentation

◆ GeListHeadCB()

GeListHeadCB ( )
private

◆ ~GeListHeadCB()

~GeListHeadCB ( )
private

Member Function Documentation

◆ InsertBefore()

void InsertBefore ( GeListNode bl)
private

◆ InsertAfter()

void InsertAfter ( GeListNode bl)
private

◆ InsertUnder()

void InsertUnder ( GeListNode bl)
private

◆ InsertUnderLast()

void InsertUnderLast ( GeListNode bl)
private

◆ Remove()

void Remove ( )
private

◆ Alloc()

static GeListHeadCB* Alloc ( )
static

Allocates a list head. Destroy the allocated list head with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.

Returns
The allocated list head, or nullptr if the allocation failed.

◆ Free()

static void Free ( GeListHeadCB *&  v)
static

Destructs list heads allocated with Alloc(). Use AutoAlloc to automate the allocation and destruction based on scope.

Parameters
[in,out]vThe list head to destruct. If the pointer is nullptr nothing happens. The pointer is assigned nullptr afterwards.

◆ SetParentCallback()

maxon::Result<void> SetParentCallback ( maxon::Delegate< maxon::Result< void >(BaseList2D &caller, Int32 type, void *message)> &&  callback)

Allows the owner (parent) to set a callback function that will be invoked via the InvokeParentCallback function. Only the owner of the GeListHead should invoke this.

Parameters
[in,out]callback[in] The callback delegate to be invoked.
Returns
OK on success.

◆ InvokeParentCallback()

maxon::Result<void> InvokeParentCallback ( BaseList2D caller,
Int32  type,
void *  message 
) const

Executes the parent callback set with SetParentCallback

Parameters
[in]callerThe caller.
[in]typeThe type of message.
[in]messageIf non-null, the message data.
Returns
OK on success.