c4d_gui.h File Reference

Classes

class  C4DGadget
 
class  GadgetPtr
 
class  GeUserArea
 
class  TriState< TYPE >
 
class  UpdateDialogHelper
 
class  GeDialog
 
class  GeModalDialog
 
class  SubDialog
 
class  iCustomGui
 
class  ProgressThread
 
class  ProgressDialog
 
class  AutoWaitPointer
 

Namespaces

 maxon
 

Macros

#define IDC_OK
 
#define IDC_CANCEL
 
#define FIRST_POPUP_ID
 
#define MENU_ALLOWSUBMENUCOMMAND
 
#define IDM_CM_CLOSEWINDOW
 
#define MAXTIME
 
#define COREMSG_CINEMA_GETCOMMANDNAME
 
#define COREMSG_CINEMA_GETCOMMANDENABLED
 
#define COREMSG_CINEMA_GETCOMMANDCHECKED
 
#define COREMSG_CINEMA_EXECUTEEDITORCOMMAND
 
#define COREMSG_CINEMA_EXECUTESUBID
 
#define COREMSG_CINEMA_EXECUTEOPTIONMODE
 
#define COREMSG_CINEMA_GETCOMMANDHELP
 
#define COREMSG_CINEMA_FORCE_AM_UPDATE
 
#define COREMSG_UPDATECOMMANDSMESSAGE
 
#define C4DGUIPTR
 
#define C4DGUINOPTR
 
#define C4DGUISCROLLPARENT
 
#define C4DGUIWINDOWID
 
#define DRAWTEXT_HALIGN_LEFT
 
#define DRAWTEXT_HALIGN_CENTER
 
#define DRAWTEXT_HALIGN_RIGHT
 
#define DRAWTEXT_HALIGN_MASK
 
#define DRAWTEXT_VALIGN_TOP
 
#define DRAWTEXT_VALIGN_CENTER
 
#define DRAWTEXT_VALIGN_BOTTOM
 
#define DRAWTEXT_VALIGN_MASK
 
#define DRAWTEXT_STD_ALIGN
 
#define MOUSEMOVE_DELTA_TABLET
 
#define MOUSEMOVE_DELTA_MOUSE
 
#define GUI_MAXRANGE
 
#define GUI_MINRANGE
 
#define GROUPWEIGHTS_PERCENT_W_CNT
 
#define GROUPWEIGHTS_PERCENT_W_VAL
 
#define GROUPWEIGHTS_PERCENT_H_CNT
 
#define GROUPWEIGHTS_PERCENT_H_VAL
 
#define LAYOUTMODE_NONE
 
#define LAYOUTMODE_MINIMIZED
 
#define LAYOUTMODE_MAXIMIZED
 
#define MOUSEPOS
 
#define INTERFACE_ICON_TYPE_NORMAL
 
#define INTERFACE_ICON_TYPE_DISABLED
 
#define INTERFACE_ICON_TYPE_FOCUS
 

Typedefs

typedef UChar OBSOLETE
 

Enumerations

enum  {
  FORMAT_FLOAT ,
  FORMAT_INT ,
  FORMAT_PERCENT ,
  FORMAT_DEGREE ,
  FORMAT_METER ,
  FORMAT_FRAMES ,
  FORMAT_SECONDS ,
  FORMAT_SMPTE
}
 

Functions

Int32 SizePixChr (Int32 pixels, Int32 chars)
 
Int32 SizePix (Int32 pixels)
 
Int32 SizeChr (Int32 chars)
 
void MessageDialog (const maxon::String &str)
 
void MessageDialog (Int32 id)
 
void MessageDialog (Int32 id, const maxon::String &p1)
 
void MessageDialog (Int32 id, const maxon::String &p1, const maxon::String &p2)
 
Bool QuestionDialog (const maxon::String &str)
 
Bool QuestionDialog (Int32 id)
 
Bool QuestionDialog (Int32 id, const maxon::String &p1)
 
Bool QuestionDialog (Int32 id, const maxon::String &p1, const maxon::String &p2)
 
Bool GetInputEvent (Int32 askdevice, BaseContainer &res)
 
Bool GetInputState (Int32 askdevice, Int32 askchannel, BaseContainer &res)
 
Int32 ShowPopupMenu (CDialog *cd, Int32 screenx, Int32 screeny, const BaseContainer &bc, Int32 flags=POPUP_RIGHT|POPUP_EXECUTECOMMANDS, Int32 *res_mainid=nullptr)
 
Bool RemoveLastCursorInfo (LASTCURSORINFOFUNC func)
 
String Shortcut2String (Int32 shortqual, Int32 shortkey)
 
String Shortcut2String (const BaseContainer &sc)
 
Vector GetGuiWorldColor (Int32 cid)
 
Bool GetIconCoordInfo (Int32 &id, const Char *ident)
 
Bool GetInterfaceIcon (Int32 type, Int32 id_x, Int32 id_y, Int32 id_w, Int32 id_h, IconData &d)
 
Bool GeIsTabletMode ()
 
Float GetMouseMoveDelta ()
 
void SetBakeStatus (Bool state)
 
Bool GetBakeStatus ()
 
Filename GetDnDFilename (const BaseContainer &msg, Int32 dragType, const void *dragObj, Bool texturesOnly, Bool updateUsage, Bool loadUrl)
 

TriState Set

#define FLAG_CENTER_HORIZ
 
#define FLAG_CENTER_VERT
 
#define FLAG_ALIGN_RIGHT
 

Macro Definition Documentation

◆ IDC_OK

#define IDC_OK

◆ IDC_CANCEL

#define IDC_CANCEL

◆ FIRST_POPUP_ID

#define FIRST_POPUP_ID

The first valid sub-menu item ID.

See also
ShowPopupMenu

◆ MENU_ALLOWSUBMENUCOMMAND

#define MENU_ALLOWSUBMENUCOMMAND

◆ IDM_CM_CLOSEWINDOW

#define IDM_CM_CLOSEWINDOW

The menu ID for a close menu item. Can be used in dialog menus.

◆ MAXTIME

#define MAXTIME

The default maximum time value. Equal to 1.0 hours at 30 fps i.e. about 2.77 hours.

◆ C4DGUIPTR

#define C4DGUIPTR

ID used for GadgetPtr when initialized with a gadget pointer.

◆ C4DGUINOPTR

#define C4DGUINOPTR

ID used for GadgetPtr when not initialized with a gadget pointer.

◆ C4DGUISCROLLPARENT

#define C4DGUISCROLLPARENT

ID used for parent GadgetPtr when retrieving the dimensions of the Dialog within a scrollgroup.

◆ C4DGUIWINDOWID

#define C4DGUIWINDOWID

ID used for GadgetPtr when querying the size of the window with GetItemDim().

◆ MOUSEPOS

#define MOUSEPOS

Mouse position constant for ShowPopupMenu().

Typedef Documentation

◆ OBSOLETE

typedef UChar OBSOLETE

Function Documentation

◆ SizePixChr()

Int32 SizePixChr ( Int32  pixels,
Int32  chars 
)

Combines SizePix() and SizeChr() functions. The returned value is interpreted as a number of characters/lines plus a number of pixels.

Note
The number of characters for chars has to be multiplied by 10.
For example if a size of 3 characters is needed, pass 3 * 10, or 30 for chars.
Parameters
[in]pixelsThe pixel dimension.
[in]charsThe number of characters.
Returns
The size.

◆ SizePix()

Int32 SizePix ( Int32  pixels)

Bakes a pixel size so that it can be used to specify dialog control dimension.

Parameters
[in]pixelsThe pixel dimension.
Returns
The size.

◆ SizeChr()

Int32 SizeChr ( Int32  chars)

Bakes a character count so that it can be used to specify dialog control dimension.
Calculates how many characters will fit in a control for widths, and how many standard lines will fit for heights.

Note
The number of characters for chars has to be multiplied by 10.
For example if a size of 3 characters is needed, pass 3 * 10, or 30 for chars.
Parameters
[in]charsThe number of characters.
Returns
The size.

◆ MessageDialog() [1/4]

void MessageDialog ( const maxon::String str)

Opens a standard message dialog with an exclamation point icon and an OK button.

Parameters
[in]strThe message to show.

◆ MessageDialog() [2/4]

void MessageDialog ( Int32  id)

Opens a standard dialog with an exclamation point icon and an OK button.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object.

◆ MessageDialog() [3/4]

void MessageDialog ( Int32  id,
const maxon::String p1 
)

Opens a standard dialog with an exclamation point icon and an OK button.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object, including one phrase that is inserted at #'s in the string.
[in]p1The phrase to insert.

◆ MessageDialog() [4/4]

void MessageDialog ( Int32  id,
const maxon::String p1,
const maxon::String p2 
)

Opens a standard dialog with an exclamation point icon and an OK button.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object, including two phrases that are inserted at #'s in the string.
[in]p1The first phrase to insert.
[in]p2The second phrase to insert.

◆ QuestionDialog() [1/4]

Bool QuestionDialog ( const maxon::String str)

Opens a standard question dialog with a question mark icon and Yes/No buttons.

Parameters
[in]strThe message to show.
Returns
true if the user answered Yes, otherwise false.

◆ QuestionDialog() [2/4]

Bool QuestionDialog ( Int32  id)

Opens a standard question dialog with a question mark icon and Yes/No buttons.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object.
Returns
true if the user answered Yes, otherwise false.

◆ QuestionDialog() [3/4]

Bool QuestionDialog ( Int32  id,
const maxon::String p1 
)

Opens a standard question dialog with a question mark icon and Yes/No buttons.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object, including one phrase that is inserted at #'s in the string.
[in]p1The phrase to insert.
Returns
true if the user answered Yes, otherwise false.

◆ QuestionDialog() [4/4]

Bool QuestionDialog ( Int32  id,
const maxon::String p1,
const maxon::String p2 
)

Opens a standard question dialog with a question mark icon and Yes/No buttons.

Parameters
[in]idThe message to show, specified as a string ID in the global ::resource object, including two phrases that are inserted at #'s in the string.
[in]p1The first phrase to insert.
[in]p2The second phrase to insert.
Returns
true if the user answered Yes, otherwise false.

◆ GetInputEvent()

Bool GetInputEvent ( Int32  askdevice,
BaseContainer res 
)

Gets the next input event for a certain device from the event queue.
If the return value is true, the container stored in res is like an input event message, otherwise no state was available.
For a list of valid devices and channels, see Input Events.

Parameters
[in]askdeviceThe device to poll.
[in]resThe result container.
Returns
true if an input event could be retrieved, otherwise false.

◆ GetInputState()

Bool GetInputState ( Int32  askdevice,
Int32  askchannel,
BaseContainer res 
)

Polls a certain channel of a device for the current input state.
If the return value is true, the container stored in res is like an input event message, otherwise no state was available.
For a list of valid devices and channels, see Input Events.

Parameters
[in]askdeviceThe device to poll.
[in]askchannelThe channel of the device.
[in]resThe result container.
Returns
true if an input state could be retrieved, otherwise false.

◆ ShowPopupMenu()

Int32 ShowPopupMenu ( CDialog *  cd,
Int32  screenx,
Int32  screeny,
const BaseContainer bc,
Int32  flags = POPUP_RIGHT|POPUP_EXECUTECOMMANDS,
Int32 res_mainid = nullptr 
)

Displays a popup menu.
The menu is defined by adding string items sequentially to a base container. (The order the items are set in the container determines their order in the menu.)
The ID of the string item determines its function:

  • A string with ID=0 gives a separator
    bc.InsData(0, String(""));
    Definition: c4d_string.h:39
  • A string with ID=1 sets the name of the menu (used for sub-menus)
    bc.SetString(1, "Menu name");
  • IDs in the range 1000 to 899999 inserts a Cinema 4D command
    bc.SetString(id, "CMD");
    For a list of IDs, see the c4d_symbols.coh file. A special case is the IDM_CM_CLOSEWINDOW ID that will close the current dialog.
  • The same applies to plugin IDs of plugins that have a menu entry (everything above 1000000)
    bc.SetString(pluginid, "CMD");
  • The IDs that are left, between 900000 (FIRST_POPUP_ID) and 999999, can be used for custom menu items
    enum
    {
    FIRST_ITEM = FIRST_POPUP_ID,
    SECOND_ITEM,
    THIRD_ITEM
    };
    bc.SetString(FIRST_ITEM, "First item");
    bc.SetString(SECOND_ITEM, "Second item");
    bc.SetString(THIRD_ITEM, "Third item");
    #define FIRST_POPUP_ID
    Definition: c4d_gui.h:68
    Sub-menus are simply inserted as sub-containers
    enum
    {
    NEW_ENTRY = FIRST_POPUP_ID,
    INSERT_NEW,
    INSERT_DOC,
    INSERT_OBJ
    };
    BaseContainer mainmenu;
    mainmenu.SetString(NEW_ENTRY, "New");
    BaseContainer submenu;
    submenu.SetString(1, "Insert new");
    submenu.SetString(INSERT_DOC, "Document");
    submenu.SetString(INSERT_OBJ, "Object");
    mainmenu.SetContainer(INSERT_NEW, submenu);
    Definition: c4d_basecontainer.h:47
    void SetContainer(Int32 id, const BaseContainer &s)
    Definition: c4d_basecontainer.h:597
    void SetString(Int32 id, const maxon::String &s)
    Definition: c4d_basecontainer.h:569
  • Disabled and checked items are marked with flags at the end of the name
    bc.SetString(..., "Disabled&d&");
    bc.SetString(..., "Checked&c&");
    Parameters
    [in]cdThe internal parent dialog, or nullptr.
    [in]screenxThe popup X position in screen pixels, or MOUSEPOS to popup where the cursor is.
    [in]screenyThe popup Y position in screen pixels, or MOUSEPOS to popup where the cursor is.
    [in]bcThe base container with the menu items.
    [in]flagsThe popup menu flags: POPUP
    [in,out]res_mainidThe main id or nullptr if the id is returned normally by the function.
    Returns
    The ID of the selected item, or 0 if nothing was selected.
    Sometimes this is a a sub-id of a command, for instance if a command plugin returns a container with sub-items. In this case the main id is passed to res_mainid.

◆ RemoveLastCursorInfo()

Bool RemoveLastCursorInfo ( LASTCURSORINFOFUNC  func)

Sets the callback invoked when mouse cursor leaves a user area.

Note
Useful to remove any highlighted element on mouse over.
Parameters
[in]funcThe last mouse cursor info callback. It should simply send BFM_CURSORINFO_REMOVE to the user area for the mouse leave event.

◆ Shortcut2String() [1/2]

String Shortcut2String ( Int32  shortqual,
Int32  shortkey 
)

Converts a shortcut to a readable string.

Parameters
[in]shortqualThe shortcut qualifier.
[in]shortkeyThe shortcut key.
Returns
The shortcut string.

◆ Shortcut2String() [2/2]

String Shortcut2String ( const BaseContainer sc)

Converts a shortcut to a readable string.

Parameters
[in]scThe shortcut container.
Returns
The shortcut string.

◆ GetGuiWorldColor()

Vector GetGuiWorldColor ( Int32  cid)

Gets a GUI color from its constant ID.

Parameters
[in]cidThe color ID. See COLOR constants.
Returns
The GUI color.

◆ GetIconCoordInfo()

Bool GetIconCoordInfo ( Int32 id,
const Char ident 
)

Converts an icon resource identity string into an ID.

Parameters
[in]idThe ID of the icon resource string.
[in]identThe icon resource identity string. Look them up in the resource file for schemes.
Returns
true if the icon resource identity string was found, otherwise false.

◆ GetInterfaceIcon()

Bool GetInterfaceIcon ( Int32  type,
Int32  id_x,
Int32  id_y,
Int32  id_w,
Int32  id_h,
IconData d 
)

Retrieves the icon for an interface element.

Parameters
[in]typeThe icon type: INTERFACE_ICON_TYPE
[in]id_xThe X position ID of the icon.
[in]id_yThe Y position ID of the icon.
[in]id_wThe width ID of the icon.
[in]id_hThe height ID of the icon.
[out]dAssigned the retrieved icon resource data.
Returns
The icon could be retrieved.

◆ GeIsTabletMode()

Bool GeIsTabletMode ( )

Returns true when the current/preferred input device is a graphic tablet.

Since
R20
Returns
True for tablet input.

◆ GetMouseMoveDelta()

Float GetMouseMoveDelta ( )

Retrieves the mouse move delta (threshold) depending on the input device.

Since
R19
Returns
The mouse move delta.

◆ SetBakeStatus()

void SetBakeStatus ( Bool  state)

Private.

Since
R16

◆ GetBakeStatus()

Bool GetBakeStatus ( )

Private.

Since
R16

◆ GetDnDFilename()

Filename GetDnDFilename ( const BaseContainer msg,
Int32  dragType,
const void *  dragObj,
Bool  texturesOnly,
Bool  updateUsage,
Bool  loadUrl 
)

GetDnDFilename extracts the Filename from the given drag and drop data returned by GetDragObject()

Parameters
[in]msgDrag and Drop message.
[in]dragTypeDrag type returned by GetDragObject().
[in]dragObjDrag object returned by GetDragObject().
[in]texturesOnlyTrue to check for textures only.
[in]updateUsageTrue to update the usage stats of the asset.
[in]loadUrlTrue to show a modal progress dialog when files need to be downloaded.
Returns
Filename on success. Filename IsEmpty() if no data was found.