#if defined(Hiro_TreeView) struct mTreeView : mWidget { Declare(TreeView) using mObject::remove; auto append(sTreeViewItem item) -> type&; auto backgroundColor() const -> Color; auto doActivate() const -> void; auto doChange() const -> void; auto doContext() const -> void; auto doToggle(sTreeViewItem item) const -> void; auto foregroundColor() const -> Color; auto item(const string& path) const -> TreeViewItem; auto itemCount() const -> uint; auto items() const -> vector; auto onActivate(const function& callback = {}) -> type&; auto onChange(const function& callback = {}) -> type&; auto onContext(const function& callback = {}) -> type&; auto onToggle(const function& callback = {}) -> type&; auto remove(sTreeViewItem item) -> type&; auto reset() -> type&; auto selected() const -> TreeViewItem; auto setBackgroundColor(Color color = {}) -> type&; auto setForegroundColor(Color color = {}) -> type&; auto setParent(mObject* parent = nullptr, int offset = -1) -> type&; //private: struct State { Color backgroundColor; Color foregroundColor; vector items; function onActivate; function onChange; function onContext; function onToggle; string selectedPath; } state; auto destruct() -> void override; }; #endif