About
A DynamicDescription object stores the description of user data parameters that can be added to an element by the user. It allows to access existing parameters and also to add new parameters.
- Warning
- Standard parameters can be dynamically created and edited by implementing NodeData::GetDDescription(). See NodeData::GetDDescription() Manual.
- Note
- User data parameters are accessed using a special DescID, see DescID Manual.
-
For description parameter IDs see Description Settings Manual.
if (ddesc == nullptr)
{
groupID = ddesc->
Alloc(bc);
}
{
if (dataDescId)
*dataDescId = groupID;
}
BaseContainer GetCustomDataTypeDefault(Int32 type)
@ DEFAULTVALUE
Dummy value for the default value GeData constructor.
Definition: c4d_gedata.h:65
Definition: c4d_basecontainer.h:48
Bool SetData(Int32 id, const GeData &n)
Definition: c4d_basecontainer.h:274
void SetString(Int32 id, const maxon::String &s)
Definition: c4d_basecontainer.h:643
void SetInt32(Int32 id, Int32 l)
Definition: c4d_basecontainer.h:579
Definition: c4d_baseobject.h:248
Definition: lib_description.h:355
Definition: lib_description.h:828
DescID Alloc(const BaseContainer &datadescription)
Definition: c4d_gedata.h:83
DATATYPE * GetCustomDataTypeWritable()
Definition: c4d_gedata.h:547
#define MAXON_SCOPE
Definition: apibase.h:2898
@ DESC_DEFAULT
Int32/Float/Vector Default numeric value.
Definition: lib_description.h:120
@ DESC_SCALEH
Bool Scale element horizontally.
Definition: lib_description.h:135
@ DESC_NAME
String Name for standalone use.
Definition: lib_description.h:91
@ DESC_PARENTGROUP
Int32/Parent ID.
Definition: lib_description.h:117
@ DESC_COLUMNS
Int32 Number of columns for layout groups (DTYPE_GROUP).
Definition: lib_description.h:127
@ DTYPE_STRING
String.
Definition: lib_description.h:72
@ DTYPE_GROUP
Group.
Definition: lib_description.h:56
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:67
#define CUSTOMDATATYPE_DESCID
DescID custom data type ID.
Definition: lib_description.h:272
const char * doc
Definition: pyerrors.h:226
PyObject * op
Definition: object.h:520
Access
The DynamicDescription object can be obtained from every C4DAtom:
The description of a specific user data parameter can be directly accessed:
if (ddesc == nullptr)
if (bc != nullptr)
String GetString(Int32 id, const maxon::String &preset=maxon::String()) const
Definition: c4d_basecontainer.h:424
const BaseContainer * Find(const DescID &descid) const
void * userData
Definition: fileobject.h:20
@ DTYPE_SUBCONTAINER
Sub-container.
Definition: lib_description.h:58
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:210
#define ID_USERDATA
User data ID.
Definition: lib_description.h:25
#define CreateDescID(...)
Definition: lib_description.h:595
Represents a level within a DescID.
Definition: lib_description.h:298
It is also possible to iterate through all user data parameter descriptions:
if (ddesc == nullptr)
if (handle == nullptr)
{
if (bc != nullptr)
}
void BrowseFree(void *&handle)
Bool BrowseGetNext(void *handle, DescID *id, const BaseContainer **data)
Edit User Data
User data parameter descriptions can be added or removed:
if (ddesc == nullptr)
Bool FillDefaultContainer(BaseContainer &res, Int32 type, const String &name)
@ DTYPE_VECTOR
Vector
Definition: lib_description.h:70
- Note
- An empty DescID as the DESC_PARENTGROUP of a user data group will create a new tab in the Attribute Manager.
Interaction
User data parameters can include buttons. When such a button is pressed a message is sent to NodeData::Message(), see NodeData::Message() Manual.
{
if (dc == nullptr)
return false;
{
{
}
}
break;
}
void MessageDialog(const maxon::String &str)
Definition: string.h:1235
#define MSG_DESCRIPTION_COMMAND
Sent by for example BUTTON description element. The corresponding data is DescriptionCommand.
Definition: c4d_baselist.h:395
DescID _descId
Description ID of the parameter that triggered the command.
Definition: lib_description.h:940
Message struct for MSG_DESCRIPTION_COMMAND.
Definition: lib_description.h:948
Miscellaneous
Further functions of the DynamicDescription class are:
static String UIntToString(UInt32 v)
Definition: c4d_string.h:511
maxon::UInt32 UInt32
Definition: ge_sys_math.h:61
User Data Editor
The user data manager can be opened with these functions:
if (object == nullptr)
void AddDescription(C4DAtom *bl)
Further Reading