Active Object Manager

Detailed Description

Groups

 ACTIVEOBJECTMANAGER_SETOBJECTS
 
 ACTIVEOBJECTMODE
 
 AOM_MSG
 

Classes

struct  ActiveModeInfo
 

Macros

#define LIBRARY_ACTIVEOBJECTMANAGER
 

Typedefs

typedef GeData MESSAGEHOOK(const BaseContainer &msg, void *data)
 

Functions

Bool ActiveObjectManager_RegisterMode (ACTIVEOBJECTMODE id, const String &text, MESSAGEHOOK *hook)
 
void ActiveObjectManager_SetMode (ACTIVEOBJECTMODE id, Bool openmanager)
 
void ActiveObjectManager_SetObjects (ACTIVEOBJECTMODE id, const AtomArray &objects, Int32 flags, const DescID &activepage=DescID())
 
void ActiveObjectManager_SetObject (ACTIVEOBJECTMODE id, C4DAtom *op, Int32 flags, const DescID &activepage=DescID())
 
void ActiveObjectManager_Open ()
 
Bool EditObjectModal (const AtomArray &objects, const String &dlgtitle)
 
Bool EditObjectModal (C4DAtom *op, const String &dlgtitle)
 
Bool EditDescription (C4DAtom *bl, const DescID &id)
 
void AddDescription (C4DAtom *bl)
 
void PasteDescription (C4DAtom *bl)
 
Bool ActiveObjectManager_GetObjects (ACTIVEOBJECTMODE id, AtomArray &objects)
 
Bool ActiveObjectManager_GetModeInfo (ACTIVEOBJECTMODE id, ActiveModeInfo &info)
 
Int32 ActiveObjectManager_GetModeCount ()
 
Bool ActiveObjectManager_GetModeInfoIdx (Int32 idx, ActiveModeInfo &info)
 
ACTIVEOBJECTMODE ActiveObjectManager_GetLastMode ()
 

Variables

struct ActiveModeInfo MAXON_ENUM_LIST
 

Macro Definition Documentation

◆ LIBRARY_ACTIVEOBJECTMANAGER

#define LIBRARY_ACTIVEOBJECTMANAGER

Active object manager library ID.

Typedef Documentation

◆ MESSAGEHOOK

typedef GeData MESSAGEHOOK(const BaseContainer &msg, void *data)

Describes a hook for active object manager modes.
Here is an example:

GeData TagMessageHook(const BaseContainer &msg,void *data)
{
switch (msg.GetId())
{
return true;
{
if (!doc)
break;
doc->GetActiveTags(*((AtomArray*)data));
return true;
}
break;
}
return false;
}
BaseDocument * GetActiveDocument(void)
Definition: c4d_baselist.h:1633
Definition: c4d_basecontainer.h:47
Definition: c4d_basedocument.h:498
Definition: c4d_gedata.h:83
#define AOM_MSG_ISENABLED
Sent when the mode is enabled.
Definition: lib_activeobjectmanager.h:102
#define AOM_MSG_GETATOMLIST
Sent when the active Object Manager needs a list of atoms to show. Store these in the * pointed by da...
Definition: lib_activeobjectmanager.h:103
const char * doc
Definition: pyerrors.h:226
const char const char * msg
Definition: object.h:438
Parameters
[in]msgThe message container. These are the available messages: AOM_MSG
[in]dataThe data pointer. Depends on the message.
Returns
true if successful, otherwise false.

Function Documentation

◆ ActiveObjectManager_RegisterMode()

Bool ActiveObjectManager_RegisterMode ( ACTIVEOBJECTMODE  id,
const String text,
MESSAGEHOOK hook 
)

Registers a new mode. If no hook is passed the active objects will need to be manually set with ActiveObjectManager_SetObjects().

Parameters
[in]idThe mode ID. If it is not a member of ACTIVEOBJECTMODE, use a unique ID: ACTIVEOBJECTMODE
[in]textThe mode name.
[in]hookThe mode hook, or nullptr to register a mode without a hook.
Returns
true if the new mode was registered, otherwise false.

◆ ActiveObjectManager_SetMode()

void ActiveObjectManager_SetMode ( ACTIVEOBJECTMODE  id,
Bool  openmanager 
)

Sets the current mode.
For example, when the timeline becomes active it calls ( ACTIVEOBJECTMODE::TIMELINE) so that there is a manager ready to show its selections. id The mode ID. openmanager If true a new manager is opened if there is no manager that accepts the given id, for example if the other managers are locked or have that mode disabled.

◆ ActiveObjectManager_SetObjects()

void ActiveObjectManager_SetObjects ( ACTIVEOBJECTMODE  id,
const AtomArray objects,
Int32  flags,
const DescID activepage = DescID() 
)

Sets the currently shown objects in the specified mode id.

Note
Use this only if a mode has been registered without a hook. Otherwise the managers will ask for new objects themselves, and listen for events when new objects are selected.
Parameters
[in]idThe mode ID.
[in]objectsThe objects to show.
[in]flagsThe flags: ACTIVEOBJECTMANAGER_SETOBJECTS
[in]activepageThe tab of the object's description to be shown. Pass the description ID of the tab.

◆ ActiveObjectManager_SetObject()

void ActiveObjectManager_SetObject ( ACTIVEOBJECTMODE  id,
C4DAtom op,
Int32  flags,
const DescID activepage = DescID() 
)

Sets the currently shown object op in the specified mode id.

Note
Use this only if a mode has been registered without a hook. Otherwise the managers will ask for new objects themselves, and listen for events when new objects are selected.
Parameters
[in]idThe mode ID.
[in]opThe object to show.
[in]flagsThe flags: ACTIVEOBJECTMANAGER_SETOBJECTS
[in]activepageThe tab of the object's description to be shown. Pass the description ID of the tab.

◆ ActiveObjectManager_Open()

void ActiveObjectManager_Open ( )

Opens a new active object manager.

◆ EditObjectModal() [1/2]

Bool EditObjectModal ( const AtomArray objects,
const String dlgtitle 
)

Shows a modal active object manager dialog with the specified objects and dlgtitle.

Parameters
[in]objectsThe objects to show.
[in]dlgtitleThe dialog title.
Returns
true if successful, otherwise false.

◆ EditObjectModal() [2/2]

Bool EditObjectModal ( C4DAtom op,
const String dlgtitle 
)

Shows a modal active object manager dialog with the specified object op and title dlgtitle.

Parameters
[in]opThe object to show.
[in]dlgtitleThe dialog title.
Returns
true if successful, otherwise false.

◆ EditDescription()

Bool EditDescription ( C4DAtom bl,
const DescID id 
)

Shows the edit dialog for a dynamic description (i.e. user data).
Example:

DynamicDescription* dd = op->GetDynamicDescription();
bc.SetString(DESC_NAME,"test1");
BaseContainer GetCustomDataTypeDefault(Int32 type)
void SetBool(Int32 id, Bool b)
Definition: c4d_basecontainer.h:498
void SetString(Int32 id, const maxon::String &s)
Definition: c4d_basecontainer.h:569
void SetInt32(Int32 id, Int32 l)
Definition: c4d_basecontainer.h:505
Definition: lib_description.h:736
DescID Alloc(const BaseContainer &datadescription)
#define CUSTOMGUI_LONG
Int32 edit field.
Definition: lib_description.h:212
@ DESC_STEP
Int32/Float/Vector The step for the edit field arrows.
Definition: lib_description.h:103
@ DESC_ANIMATE_ON
Parameter is animatable.
Definition: lib_description.h:106
@ DESC_MIN
Int32/Float/Vector Minimum value.
Definition: lib_description.h:99
@ DESC_CUSTOMGUI
Int32 The ID of the GUI for this element. Either a custom ID or one of: CUSTOMGUI
Definition: lib_description.h:125
@ DESC_NAME
String Name for standalone use.
Definition: lib_description.h:91
@ DESC_ANIMATE
Int32 Animation mode:
Definition: lib_description.h:104
@ DESC_MAX
Int32/Float/Vector Maximum value.
Definition: lib_description.h:100
@ DESC_SHORT_NAME
String Short name, for attributes dialog.
Definition: lib_description.h:92
@ DESC_REMOVEABLE
Bool true if entry is removable.
Definition: lib_description.h:129
@ DTYPE_LONG
Int32
Definition: lib_description.h:67
Bool EditDescription(C4DAtom *bl, const DescID &id)
PyObject * op
Definition: object.h:520
Parameters
[in]blThe owner of the user data e.g. objects, tags etc.
[in]idThe ID of the user data element to be inserted.
Returns
true if successful, otherwise false.

◆ AddDescription()

void AddDescription ( C4DAtom bl)

Shows the add dialog for a dynamic description (i.e. user data).

Since
R17.032
Parameters
[in]blThe owner of the user data e.g. objects, tags etc. The caller owns the pointed C4DAtom.

◆ PasteDescription()

void PasteDescription ( C4DAtom bl)

Shows the paste dialog for a dynamic description (i.e. user data).

Since
R17.032
Parameters
[in]blThe owner of the user data e.g. objects, tags etc. The caller owns the pointed C4DAtom.

◆ ActiveObjectManager_GetObjects()

Bool ActiveObjectManager_GetObjects ( ACTIVEOBJECTMODE  id,
AtomArray objects 
)

Retrieves the currently shown objects in the specified mode id.

Parameters
[in]idThe mode ID.
[out]objectsThe shown objects.
Returns
true if successful, otherwise false.

◆ ActiveObjectManager_GetModeInfo()

Bool ActiveObjectManager_GetModeInfo ( ACTIVEOBJECTMODE  id,
ActiveModeInfo info 
)

Retrieves the information for the specified mode id.

Parameters
[in]idThe mode ID.
[out]infoFilled with the mode information.
Returns
true if successful, otherwise false.

◆ ActiveObjectManager_GetModeCount()

Int32 ActiveObjectManager_GetModeCount ( )

Gets the number of modes.

Returns
The number of modes.

◆ ActiveObjectManager_GetModeInfoIdx()

Bool ActiveObjectManager_GetModeInfoIdx ( Int32  idx,
ActiveModeInfo info 
)

Retrieves the information for a mode by index.

Parameters
[in]idxThe index of the mode: 0 <= idx < ActiveObjectManager_GetModeCount()
[out]infoFilled with the mode information.
Returns
true if successful, otherwise false.

◆ ActiveObjectManager_GetLastMode()

ACTIVEOBJECTMODE ActiveObjectManager_GetLastMode ( )

Gets the last used mode.

Returns
The last mode.

Variable Documentation

◆ MAXON_ENUM_LIST

struct ActiveModeInfo MAXON_ENUM_LIST