Skip to main content

ControlTree

The ControlTree class manages a hierarchical list or tree structure of items in a user interface, supporting various interaction features like selection, multi-selection, and item visibility. It allows items to be organized in a parent-child relationship, with functions to manipulate their text, color, icon, and custom data. The class also enables the folding and expansion of tree items, providing both a folded and expanded text representation. It offers texture management with configurable grid layouts and callbacks for user interactions, such as item selection, expansion, and dragging. This control is ideal for representing tree-like or linear structures, such as file explorers, menus, or categorized lists, with rich interaction capabilities.

#include <interface/TellusimControls.h>

Inheritance

Constructors

ControlTree()
explicit ControlTree(Control *parent)

Methods

Selectable flag.

void setSelectable(bool selectable)
bool isSelectable() const

Multi-selection flag.

void setMultiSelection(bool multi_selection)
bool isMultiSelection() const

Folded text.

void setFoldedText(const char *text)
void setFoldedText(const String &text)
String getFoldedText() const

Expanded text.

void setExpandedText(const char *text)
void setExpandedText(const String &text)
String getExpandedText() const

Texture pointer.

void setTexture(Texture &texture, uint32_t rows = 1, uint32_t columns = 1)
Texture getTexture() const

Texture name.

void setTextureName(const char *name, uint32_t rows = 1, uint32_t columns = 1)
void setTextureName(const String &name, uint32_t rows = 1, uint32_t columns = 1)
String getTextureName() const

Texture layout.

void setTextureGrid(uint32_t rows, uint32_t columns)
uint32_t getTextureRows() const
uint32_t getTextureColumns() const

Tree items.

void clearItems()
uint32_t addItem(const char *text, uint32_t parent = Maxu32, bool expanded = true)
uint32_t addItem(const String &text, uint32_t parent = Maxu32, bool expanded = true)
void addItems(const InitializerList<const char*> &items, uint32_t parent = Maxu32)
void removeItem(uint32_t item, bool children = false)
void viewItem(uint32_t item)
uint32_t getNumItems() const
uint32_t getItem(uint32_t index) const

Item hidden flag.

bool switchItemHidden(uint32_t item, bool children = false)
void setItemHidden(uint32_t item, bool hidden, bool children = false)
bool isItemHidden(uint32_t item) const

Item expanded flag.

bool switchItemExpanded(uint32_t item, bool children = false)
void setItemExpanded(uint32_t item, bool expanded, bool children = false)
bool isItemExpanded(uint32_t item) const

Item selected flag.

bool switchItemSelected(uint32_t item, bool children = false)
void setItemSelected(uint32_t item, bool selected, bool children = false)
bool isItemSelected(uint32_t item) const

Item parent.

void setItemParent(uint32_t item, uint32_t parent)
uint32_t getItemParent(uint32_t item) const
bool isItemParent(uint32_t item, uint32_t parent, bool hierarchy = false) const

Item children.

void addItemChild(uint32_t item, uint32_t child)
void removeItemChild(uint32_t item, uint32_t child)
void addItemChildren(uint32_t item, Array<uint32_t> children)
void removeItemChildren(uint32_t item, Array<uint32_t> children)
uint32_t findItemChild(uint32_t item, uint32_t child) const
bool isItemChild(uint32_t item, uint32_t child) const
uint32_t getNumItemChildren(uint32_t item) const
uint32_t getItemChild(uint32_t item, uint32_t index) const
Array<uint32_t> getItemChildren(uint32_t item) const

Item text.

void setItemText(uint32_t item, const char *text)
void setItemText(uint32_t item, const String &text)
String getItemText(uint32_t item) const
uint32_t findItemText(const char *text) const
uint32_t findItemText(const String &text) const

Item color.

void setItemColor(uint32_t item, Color color)
const Color getItemColor(uint32_t item) const

Item icon.

void setItemTexture(uint32_t item, uint32_t row, uint32_t column = 0)
uint32_t getItemTextureRow(uint32_t item) const
uint32_t getItemTextureColumn(uint32_t item) const

Item data.

void setItemData(uint32_t item, void *data)
void *getItemData(uint32_t item) const

Focused item.

uint32_t getFocusedItem() const

Current item.

void setCurrentItem(uint32_t item, bool select = false, bool view = false, bool callback = false)
uint32_t getCurrentItem() const
String getCurrentText() const

Selected items.

void setSelection()
void clearSelection()
void inverseSelection()
uint32_t getNumSelectedItems() const
uint32_t getSelectedItem(uint32_t index) const
Array<uint32_t> getSelectedItems() const

Changed callback.

void setChangedCallback(const ChangedCallback &func)
ChangedCallback getChangedCallback() const

Dragged callback.

void setDraggedCallback(const DraggedCallback &func)
DraggedCallback getDraggedCallback() const

Dropped callback.

void setDroppedCallback(const DroppedCallback &func)
DroppedCallback getDroppedCallback() const

Clicked callback.

void setClickedCallback(const ClickedCallback &func)
void setClicked2Callback(const ClickedCallback &func)
void setClickedRightCallback(const ClickedCallback &func)
ClickedCallback getClickedCallback() const
ClickedCallback getClicked2Callback() const
ClickedCallback getClickedRightCallback() const

Expanded callback.

void setExpandedCallback(const ExpandedCallback &func)
ExpandedCallback getExpandedCallback() const

Selected callback.

void setSelectedCallback(const SelectedCallback &func)
SelectedCallback getSelectedCallback() const

Types

using ChangedCallback = Function<void(ControlTree, uint32_t item)>
using DraggedCallback = Function<bool(ControlTree, uint32_t item)>
using DroppedCallback = Function<void(ControlTree, uint32_t item)>
using ClickedCallback = Function<void(ControlTree, uint32_t item)>
using ExpandedCallback = Function<void(ControlTree, uint32_t item)>
using SelectedCallback = Function<void(ControlTree)>