c4d.gui.TreeViewFunctions

Inherit this class to supply a data and view model for c4d.gui.TreeViewCustomGui. Create an instance of the implementated class and pass it to TreeViewCustomGui.SetRoot().

Members

TreeViewFunctions.GetFirst(root, userdata)

Called to retrieve the first object of the tree.

Parameters:
Return type:

Any

Returns:

The first object.

TreeViewFunctions.GetDown(root, userdata, obj)

Called to retrieve the first child of obj.

Parameters:
Return type:

Any

Returns:

The first child of obj.

TreeViewFunctions.GetNext(root, userdata, obj)

Called to retrieve the object after obj.

Parameters:
Return type:

Any

Returns:

The object after obj.

TreeViewFunctions.GetPred(root, userdata, obj)

Called to retrieve the object before obj.

Note

This is only used for drag and drop checks.

Parameters:
Return type:

Any

Returns:

The object before obj.

TreeViewFunctions.GetColumnWidth(root, userdata, obj, col, area)

Called to retrieve the column width of object obj in column col.

Parameters:
Return type:

int

Returns:

The column width.

TreeViewFunctions.GetHeaderColumnWidth(root, userdata, col, area)

Called to retrieve the width of the header for column col.

Parameters:
Return type:

int

Returns:

The header column width, or a negative number for auto header width.

TreeViewFunctions.GetMinHeaderHeight(root, userdata, area)

Called to retrieve the minimum header height.

Parameters:
Return type:

int

Returns:

The minimum header height, or a negative value for auto header height.

TreeViewFunctions.GetLineHeight(root, userdata, obj, col, area)

Called to retrieve the line height of object obj in column col. Always return a positive value.

Parameters:
Return type:

int

Returns:

The line height.

TreeViewFunctions.GetColors(root, userdata, obj)

Called to specify the text colors of object obj.

Parameters:
Return type:

tuple(int or c4d.Vector, int or c4d.Vector) or list(int or c4d.Vector, int or c4d.Vector)

Returns:

The normal and selected text color as color ID or vector.

TreeViewFunctions.GetBackgroundColor(root, userdata, obj, line)

Called to specify the background color of line.

Parameters:
Return type:

int or c4d.Vector

Returns:

The background color for line as color ID or vector.

TreeViewFunctions.DrawCell(root, userdata, obj, col, drawinfo)

Called to draw the cell for object obj in column col into the user area in drawinfo[‘frame’].

Parameters:
Return type:

int or c4d.Vector

Returns:

The background color as color ID or vector.

TreeViewFunctions.DrawHeaderCell(root, userdata, col, drawinfo)

Called to draw the header for column col into the user area in drawinfo[‘frame’].

Parameters:
Return type:

bool

Returns:

True if the header has been drawn or False if the header should be drawn by the tree view.

TreeViewFunctions.IsSelected(root, userdata, obj)

Called to retrieve the selection status of object obj.

Parameters:
Return type:

bool

Returns:

True if the object is selected, otherwise False.

TreeViewFunctions.Select(root, userdata, obj, mode)

Called to select object obj.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • obj (any) – An object in the tree.
  • mode (int) –

    The selection mode:

    SELECTION_NEW Starts a new selection.
    SELECTION_ADD Adds to the current selection
    SELECTION_SUB Subtracts from the current selection.
TreeViewFunctions.IsOpened(root, userdata, obj)

Called to retrieve the folding status of object obj.

Parameters:
Return type:

bool

Returns:

True if the object is opened, otherwise False.

TreeViewFunctions.Open(root, userdata, obj, onoff)

Called to open or close object obj.

Parameters:
TreeViewFunctions.GetName(root, userdata, obj)

Called to retrieve the name of object obj.

Parameters:
Return type:

str

Returns:

The object name.

TreeViewFunctions.SetName(root, userdata, obj, str)

Called to set the name of object obj.

Parameters:
TreeViewFunctions.GetID(root, userdata, obj)

Called to retrieve the ID of object obj.

Parameters:
Return type:

int

Returns:

The object ID.

TreeViewFunctions.IsChecked(root, userdata, obj, lColumn)

Called to retrieve the checkbox status of object obj for column lColumn.

Parameters:
Return type:

int

Returns:

A combination of the following flags or c4d.NOTOK to show no checkbox:

LV_CHECKBOX_ENABLED Checkbox is enabled.
LV_CHECKBOX_CHECKED Checkbox is checked.
LV_CHECKBOX_TRISTATE Checkbox tristate.
LV_CHECKBOX_HIDE Checkbox is hidden.

TreeViewFunctions.SetCheck(root, userdata, obj, lColumn, bCheck, bcMsg)

Called to set the checkbox status of object obj.

Parameters:
TreeViewFunctions.IsTristate(root, userdata)

Called to retrieve the tristate flag of the tree.

Parameters:
Return type:

bool

Returns:

True if the tristate flag is set, otherwise False.

TreeViewFunctions.GetDragType(root, userdata, obj)

Called to retrieve the drag type of object obj, i.e. the type that the user would get if he started a drag in that cell.

Parameters:
Return type:

int

Returns:

The object drag type, or c4d.NOTOK to disable drag-and-drop:

DRAGTYPE_ATOMARRAY Atom array. The data is a list of c4d.C4DAtom.
DRAGTYPE_CMDPALETTE Not supported.
DRAGTYPE_COMMAND Not supported.
DRAGTYPE_DESCID Description ID. The data is a dict(‘did’: c4d.DescID, ‘arr’: list of c4d.C4DAtom).
DRAGTYPE_ICON Not supported.
DRAGTYPE_FILES Files. The data is a string with the filename.
DRAGTYPE_FILENAME_IMAGE Image. The data is a string with the filename.
DRAGTYPE_FILENAME_OTHER Other filename. The data is a string with the filename.
DRAGTYPE_FILENAME_SCENE Scene filename. The data is a string with the filename.
DRAGTYPE_MANAGER Not supported.
DRAGTYPE_RGB RGB color. The data is a c4d.Vector.
DRAGTYPE_RGB_ARRAY RGB color array. The data is a list of c4d.Vector.

TreeViewFunctions.AcceptDragObject(root, userdata, obj, dragtype, dragobject)

Called to check if object obj can accept the specified drag-and-drop action, and in that case what the result would be.

Note

If obj is None then dragobject should be inserted as a child of the root.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • obj (any) – An object in the tree.
  • dragtype (int) –

    The drag type:

    DRAGTYPE_ATOMARRAY Atom array. The data is a list of c4d.C4DAtom.
    DRAGTYPE_CMDPALETTE Not supported.
    DRAGTYPE_COMMAND Not supported.
    DRAGTYPE_DESCID Description ID. The data is a dict(‘did’: c4d.DescID, ‘arr’: list of c4d.C4DAtom).
    DRAGTYPE_ICON Not supported.
    DRAGTYPE_FILES Files. The data is a string with the filename.
    DRAGTYPE_FILENAME_IMAGE Image. The data is a string with the filename.
    DRAGTYPE_FILENAME_OTHER Other filename. The data is a string with the filename.
    DRAGTYPE_FILENAME_SCENE Scene filename. The data is a string with the filename.
    DRAGTYPE_MANAGER Not supported.
    DRAGTYPE_RGB RGB color. The data is a c4d.Vector.
    DRAGTYPE_RGB_ARRAY RGB color array. The data is a list of c4d.Vector.
  • dragobject (any) – The drag object.
Return type:

tuple(int, bool)

Returns:

A tuple with the following information:

int: The insert mode:

INSERT_BEFORE Insert before.
INSERT_AFTER Insert after.
INSERT_UNDER Insert under.
INSERT_REPLACE Replace the object.

Note

The ACCEPT_DRAG_OBJECT_FORCE_COPY bit flag can be used together with the INSERT constants.

bool: True if copying is allowed to this position, otherwise False.

TreeViewFunctions.GenerateDragArray(root, userdata, obj)

Called to generate a drag array for object obj.

Parameters:
Return type:

List[c4d.C4DAtom]

Returns:

The drag objects for obj.

TreeViewFunctions.DragStart(root, userdata, obj)

New in version R19.024.

Called to determine if object obj can be dragged or not and if dragged objects will be selected or not.

Parameters:
Return type:

int

Returns:

A combination of the following flags:

TREEVIEW_DRAGSTART_ALLOW Allow dragging.
TREEVIEW_DRAGSTART_SELECT Select the picked object.

TreeViewFunctions.SetDragObject(root, userdata, obj)

New in version R19.024.

Called to set the drag object to obj.

Note

Helps to determine if dragging happens internally (rearranged items) or externally (dragged items from another treeview for instance).
To check this, store the drag object data and compare it with dragobject in InsertObject().
Parameters:
TreeViewFunctions.InsertObject(root, userdata, obj, dragtype, dragobject, insertmode, bCopy)

Called to insert dragobject as specified.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • obj (any) – An object in the tree.
  • dragtype (int) –

    The drag type:

    DRAGTYPE_ATOMARRAY Atom array. The data is a list of c4d.C4DAtom.
    DRAGTYPE_CMDPALETTE Not supported.
    DRAGTYPE_COMMAND Not supported.
    DRAGTYPE_DESCID Description ID. The data is a dict(‘did’: c4d.DescID, ‘arr’: list of c4d.C4DAtom).
    DRAGTYPE_ICON Not supported.
    DRAGTYPE_FILES Files. The data is a string with the filename.
    DRAGTYPE_FILENAME_IMAGE Image. The data is a string with the filename.
    DRAGTYPE_FILENAME_OTHER Other filename. The data is a string with the filename.
    DRAGTYPE_FILENAME_SCENE Scene filename. The data is a string with the filename.
    DRAGTYPE_MANAGER Not supported.
    DRAGTYPE_RGB RGB color. The data is a c4d.Vector.
    DRAGTYPE_RGB_ARRAY RGB color array. The data is a list of c4d.Vector.
  • dragobject (any) – The drag object on drag receive.
  • insertmode (int) –

    The insert mode:

    INSERT_BEFORE Insert before.
    INSERT_AFTER Insert after.
    INSERT_UNDER Insert under.
    INSERT_REPLACE Replace the object.
  • bCopy (bool) – True if the object should be copied, otherwise False.
TreeViewFunctions.CreateContextMenu(root, userdata, obj, lColumn, bc)

Called to build a context menu for object obj and column lColumn. See c4d.gui.ShowPopupDialog() for the format.

Note

bc container already contains 2 default items: c4d.ID_TREEVIEW_CONTEXT_REMOVE and c4d.ID_TREEVIEW_CONTEXT_RESET. These may be removed.
The added menu entry IDs must be larger than c4d.ID_TREEVIEW_FIRST_NEW_ID.
Parameters:
TreeViewFunctions.ContextMenuCall(root, userdata, obj, lColumn, lCommand)

Called by a command in the context menu setup in CreateContextMenu().

Parameters:
Return type:

bool

Returns:

True if the command has been processed and the data needs to be updated, otherwise False.

TreeViewFunctions.GetHeaderSortArrow(root, userdata, lColID)

Called to retrieve the sort mode of column lColID.

Parameters:
Return type:

int

Returns:

The sort direction.

TreeViewFunctions.IsResizeColAllowed(root, userdata, lColID)

Called to check if column lColID can be resized or not.

Parameters:
Return type:

bool

Returns:

True if the column can be resized, otherwise False.

TreeViewFunctions.IsMoveColAllowed(root, userdata, lColID)

Called to check if column lColID can be moved or not.

Parameters:
Return type:

bool

Returns:

True if the column can be moved, otherwise False.

TreeViewFunctions.InputEvent(root, userdata, pArea, msg)

Called when an input event is received. All information about the input event is stored in the msg container.

Parameters:
Return type:

bool

Returns:

True if the event was handled, otherwise False.

TreeViewFunctions.MouseDown(root, userdata, obj, col, mouseinfo, rightButton)

Called when a mouse down event is received.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • obj (any) – An object in the tree.
  • col (int) – The column index.
  • mouseinfo (dict) – The mouse information. See MouseInfo Dict.
  • rightButton (bool) – True if the right mouse button was used, otherwise False.
Return type:

bool

Returns:

True if the event was handled, otherwise False.

TreeViewFunctions.DoubleClick(root, userdata, obj, col, mouseinfo)

Called when a mouse double click event is received.

Parameters:
Return type:

bool

Returns:

True if the event was handled, otherwise False.

TreeViewFunctions.DeletePressed(root, userdata)

Called when a delete event is received.

Parameters:
TreeViewFunctions.HeaderClick(root, userdata, lColID, lChannel, bDblClk, mouseX, mouseY, ua)

Called when a header has been clicked.

Changed in version R20: Added parameters mouseX, mouseY and ua.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • lColID (int) – The column index.
  • lChannel (int) –

    The mouse channel:

    BFM_INPUT_MOUSELEFT Left mouse button.
    BFM_INPUT_MOUSERIGHT Right mouse button.
    BFM_INPUT_MOUSEMIDDLE Middle mouse button.
    BFM_INPUT_MOUSEX1 Fourth mouse button.
    BFM_INPUT_MOUSEX2 Five mouse button.
    BFM_INPUT_MOUSEWHEEL Mouse wheel message.
    BFM_INPUT_MOUSEMOVE Mouse move message.
  • bDblClk (int) – True for double-click event, otherwise False.
  • mouseX (int) –

    New in version R20.

    The mouse horizontal position local to the left hand edge of the column, or NOTOK if dragging a column.

  • mouseY (int) –

    New in version R20.

    The mouse vertical position local to the header top, or NOTOK if dragging a column.

  • ua (c4d.gui.GeUserArea) –

    New in version R20.

    The header’s user area, or None if dragging a column.

Return type:

bool

Returns:

True if the tree view needs to be updated, otherwise False.

TreeViewFunctions.Scrolled(root, userdata, h, v, x, y)

Called when the tree view has been scrolled.

Parameters:
  • root (any) – The tree root passed to TreeViewCustomGui.SetRoot().
  • userdata (any) – The user data passed to TreeViewCustomGui.SetRoot().
  • h (int) – The horizontal scroll steps.
  • v (int) – The vertical scroll steps.
  • x (int) – The X offset.
  • y (int) – The Y offset.
TreeViewFunctions.PaintFinished(root, userdata)

Called when a paint selection has been performed in the tree view.

Parameters:
TreeViewFunctions.SelectionChanged(root, userdata)

Called when selection has changed.

Parameters:

DrawInfo Dict

bgCol int or c4d.Vector The background color ID or vector.
frame c4d.gui.GeUserArea The user area to draw in.
xpos int The position X coordinate.
ypos int The position Y coordinate.
width int The width.
height int The height.
line int The line.
col int The column.

MouseInfo Dict

mx float The mouse X coordinate.
my float The mouse Y coordinate.
button int The mouse button:
MOUSEINFO_BUTTON_LEFT Left button.
MOUSEINFO_BUTTON_RIGHT Right button.
MOUSEINFO_BUTTON_MIDDLE Middle button.
mxRelative float
The mouse position relative to the end of the horizontal tree lines. Usually mouse coordinates are in list view space. This can become difficult when the user clicks into the LV_USERTREE column, hence this member.
startDrag bool Not used.
startpaint bool  
This is needed in the Layer Manager. The user can change the state of the column by clicking somewhere and dragging the mouse. To start this drag, set startpaint to True in TreeViewFunctions.MouseDown().
inpaint bool
This is needed in the Layer Manager. The user can change the state of the column by clicking somewhere and dragging the mouse. TreeViewFunctions.MouseDown() will be called for each line with inpaint set to True.
inputmsg c4d.BaseContainer The container originally sent to the GeUserArea.InputEvent() of the tree view’s user area. Never None.
frame c4d.gui.GeUserArea The user area to draw in.
xpos int The position X coordinate.
ypos int The position Y coordinate.
width int The width.
height int The height.
line int The line.
col int The column.