c4d.gui.TreeViewFunctions

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

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.

Methods Signatures

TreeViewFunctions.GetFirst(self, root, userdata)

Called to retrieve the first object of the tree.

TreeViewFunctions.GetDown(self, root, userdata, obj)

Called to retrieve the first child of obj.

TreeViewFunctions.GetNext(self, root, userdata, obj)

Called to retrieve the object after obj.

TreeViewFunctions.GetPred(self, root, userdata, obj)

Called to retrieve the object before obj.

TreeViewFunctions.GetColumnWidth(self, root, userdata, ...)

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

TreeViewFunctions.GetHeaderColumnWidth(self, root, userdata, ...)

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

TreeViewFunctions.GetMinHeaderHeight(self, root, userdata, area)

Called to retrieve the minimum header height.

TreeViewFunctions.GetLineHeight(self, root, userdata, ...)

Called to retrieve the line height of object obj in column col.

TreeViewFunctions.GetColors(self, root, userdata, ...)

Called to specify the text colors of object obj.

TreeViewFunctions.GetBackgroundColor(self, root, userdata, ...)

Called to specify the background color of line.

TreeViewFunctions.DrawCell(self, root, userdata, ...)

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

TreeViewFunctions.DrawHeaderCell(self, root, userdata, ...)

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

TreeViewFunctions.IsSelected(self, root, userdata, obj)

Called to retrieve the selection status of object obj.

TreeViewFunctions.Select(self, root, userdata, ...)

Called to select object obj.

TreeViewFunctions.IsOpened(self, root, userdata, obj)

Called to retrieve the folding status of object obj.

TreeViewFunctions.Open(self, root, userdata, ...)

Called to open or close object obj.

TreeViewFunctions.GetName(self, root, userdata, obj)

Called to retrieve the name of object obj.

TreeViewFunctions.SetName(self, root, userdata, ...)

Called to set the name of object obj.

TreeViewFunctions.GetID(self, root, userdata, obj)

Called to retrieve the ID of object obj.

TreeViewFunctions.IsChecked(self, root, userdata, ...)

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

TreeViewFunctions.SetCheck(self, root, userdata, ...)

Called to set the checkbox status of object obj.

TreeViewFunctions.IsTristate(self, root, userdata)

Called to retrieve the tristate flag of the tree.

TreeViewFunctions.GetDragType(self, 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.

TreeViewFunctions.AcceptDragObject(self, root, userdata, ...)

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

TreeViewFunctions.GenerateDragArray(self, root, userdata, obj)

Called to generate a drag array for object obj.

TreeViewFunctions.DragStart(self, root, userdata, obj)

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

TreeViewFunctions.SetDragObject(self, root, userdata, obj)

Called to set the drag object to obj.

TreeViewFunctions.InsertObject(self, root, userdata, ...)

Called to insert dragobject as specified.

TreeViewFunctions.CreateContextMenu(self, root, userdata, ...)

Called to build a context menu for object obj and column lColumn.

TreeViewFunctions.ContextMenuCall(self, root, userdata, ...)

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

TreeViewFunctions.GetHeaderSortArrow(self, root, userdata, ...)

Called to retrieve the sort mode of column lColID.

TreeViewFunctions.IsResizeColAllowed(self, root, userdata, ...)

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

TreeViewFunctions.IsMoveColAllowed(self, root, userdata, ...)

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

TreeViewFunctions.InputEvent(self, root, userdata, ...)

Called when an input event is received.

TreeViewFunctions.MouseDown(self, root, userdata, ...)

Called when a mouse down event is received.

TreeViewFunctions.DoubleClick(self, root, userdata, ...)

Called when a mouse double click event is received.

TreeViewFunctions.DeletePressed(self, root, userdata)

Called when a delete event is received.

TreeViewFunctions.HeaderClick(self, root, userdata, ...)

Called when a header has been clicked.

TreeViewFunctions.Scrolled(self, root, userdata, ...)

Called when the tree view has been scrolled.

TreeViewFunctions.PaintFinished(self, root, userdata)

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

TreeViewFunctions.SelectionChanged(self, root, userdata)

Called when selection has changed.

Methods Documentation

TreeViewFunctions.GetFirst(self, root, userdata)

Called to retrieve the first object of the tree.

Parameters
Return type

Any

Returns

The first object.

TreeViewFunctions.GetDown(self, root, userdata, obj)

Called to retrieve the first child of obj.

Parameters
Return type

Any

Returns

The first child of obj.

TreeViewFunctions.GetNext(self, root, userdata, obj)

Called to retrieve the object after obj.

Parameters
Return type

Any

Returns

The object after obj.

TreeViewFunctions.GetPred(self, 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(self, 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(self, 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(self, 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(self, root, userdata, obj, col, area)

Called to retrieve the line height of object obj in column col.

Note

Always return a positive value.

Parameters
Return type

int

Returns

The line height.

TreeViewFunctions.GetColors(self, root, userdata, obj, pNormal, pSelected)

Called to specify the text colors of 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.

  • pNormal (int or c4d.Vector) – Set this to the normal text color for obj. Can be a vector or a color ID.

  • pSelected (int or c4d.Vector) – Set this to the selected text color for obj. Can be a vector or a color ID.

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(self, root, userdata, obj, line, col)

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(self, root, userdata, obj, col, drawinfo, bgcolor)

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(self, 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(self, 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(self, 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(self, 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(self, root, userdata, obj, onoff)

Called to open or close object obj.

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

Called to retrieve the name of object obj.

Parameters
Return type

str

Returns

The object name.

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

Called to set the name of object obj.

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

Called to retrieve the ID of object obj.

Parameters
Return type

int

Returns

The object ID.

TreeViewFunctions.IsChecked(self, 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(self, root, userdata, obj, lColumn, bCheck, bcMsg)

Called to set the checkbox status of object obj.

Parameters
TreeViewFunctions.IsTristate(self, 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(self, 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.

DRAGTYPE_RGBA_ARRAY

RGBA color array. The data is a maxon.BaseArray of maxon.ColorA.

DRAGTYPE_BROWSER

Browser drag message. The data is a list of string with the filename.

TreeViewFunctions.AcceptDragObject(self, 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.

    DRAGTYPE_RGBA_ARRAY

    RGBA color array. The data is a maxon.BaseArray of maxon.ColorA.

    DRAGTYPE_BROWSER

    Browser drag message. The data is a list of string with the filename.

  • 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(self, 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(self, root, userdata, obj)

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

New in version R19.024.

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(self, root, userdata, obj)

Called to set the drag object to obj.

New in version R19.024.

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(self, 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.

    DRAGTYPE_RGBA_ARRAY

    RGBA color array. The data is a maxon.BaseArray of maxon.ColorA.

    DRAGTYPE_BROWSER

    Browser drag message. The data is a list of string with the filename.

  • 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(self, root, userdata, obj, lColumn, bc)

Called to build a context menu for object obj and column lColumn.

See also

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(self, 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(self, root, userdata, lColID)

Called to retrieve the sort mode of column lColID.

Parameters
Return type

int

Returns

The sort direction.

TreeViewFunctions.IsResizeColAllowed(self, 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(self, 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(self, root, userdata, pArea, msg)

Called when an input event is received.

Note

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(self, 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(self, 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(self, root, userdata)

Called when a delete event is received.

Parameters
TreeViewFunctions.HeaderClick(self, 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.

    BFM_INPUT_MOUSEMOVE

    Mouse move message.

    BFM_INPUT_WHEELSCROLL

    New in version S22:
    True for scroll events on a classic wheel mouse.
    False for everything else (touchpad, magic mouse).

  • 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 TREEVIEW_MOVE_COLUMN is set to true.

  • mouseY (int) –

    New in version R20: The mouse vertical position local to the header top, or NOTOK if TREEVIEW_MOVE_COLUMN is set to true.

  • ua (c4d.gui.GeUserArea) –

    New in version R20: The header’s user area, or None if TREEVIEW_MOVE_COLUMN is set to true.

Return type

bool

Returns

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

TreeViewFunctions.Scrolled(self, 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(self, root, userdata)

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

Parameters
TreeViewFunctions.SelectionChanged(self, root, userdata)

Called when selection has changed.

Parameters