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 ()
 
const GeListNodeGetParent () const
 
GeListNodeGetFirst ()
 
const GeListNodeGetFirst () const
 
GeListNodeGetLast ()
 
const GeListNodeGetLast () const
 
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 ()
 
const GeListNodeGetNext () const
 
GeListNodeGetPred ()
 
const GeListNodeGetPred () const
 
GeListNodeGetDown ()
 
const GeListNodeGetDown () const
 
GeListNodeGetUp ()
 
const GeListNodeGetUp () const
 
GeListNodeGetDownLast ()
 
const GeListNodeGetDownLast () const
 
void InsertBefore (GeListNode *bl)
 
void InsertAfter (GeListNode *bl)
 
void InsertUnder (GeListNode *bl)
 
void InsertUnderLast (GeListNode *bl)
 
void Remove ()
 
void FlushChilds ()
 
void MoveChildrenTo (GeListNode *dest)
 
GeListHeadGetListHead ()
 
const GeListHeadGetListHead () const
 
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 ()
 
const GeListNodeGetCustomData () const
 
const BaseDocumentGetDocument () const
 
BaseDocumentGetDocument ()
 
maxon::Result< BoolGetBranchInfo (const maxon::ValueReceiver< const BranchInfo & > &info, GETBRANCHINFO flags) const
 
Bool IsDocumentRelated () const
 
Int32 GetInfo () const
 
Bool GetNBit (NBIT bit) const
 
UInt32 GetNBitMask (Int32 index) const
 
Bool ChangeNBit (NBIT bit, NBITCONTROL bitmode)
 
- Public Member Functions inherited from C4DAtomGoal
Bool HasLinks () const
 
- 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) const
 
Bool CopyTo (C4DAtom *dst, COPYFLAGS flags, AliasTrans *trn) const
 
Bool Read (HyperFile *hf, Int32 id, Int32 level)
 
Bool Write (HyperFile *hf) const
 
Bool ReadObject (HyperFile *hf, Bool readheader)
 
Bool WriteObject (HyperFile *hf) const
 
Bool GetDescription (Description *description, DESCFLAGS_DESC flags) const
 
Bool GetParameter (const DescID &id, GeData &t_data, DESCFLAGS_GET flags) const
 
Bool SetParameter (const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
 
DynamicDescriptionGetDynamicDescriptionWritable ()
 
const DynamicDescriptionGetDynamicDescription () const
 
Bool CopyDynamicDescriptionFrom (const BaseList2D *src)
 
Bool GetEnabling (const DescID &id, const GeData &t_data, DESCFLAGS_ENABLE flags, const BaseContainer *itemdesc) const
 
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.