#if defined(Hiro_TableView) struct mTableView : mWidget { Declare(TableView) using mObject::remove; auto alignment() const -> Alignment; auto append(sTableViewColumn column) -> type&; auto append(sTableViewItem item) -> type&; auto backgroundColor() const -> Color; auto batchable() const -> bool; auto batched() const -> vector; auto bordered() const -> bool; auto column(uint position) const -> TableViewColumn; auto columnCount() const -> uint; auto columns() const -> vector; auto doActivate() const -> void; auto doChange() const -> void; auto doContext() const -> void; auto doEdit(sTableViewCell cell) const -> void; auto doSort(sTableViewColumn column) const -> void; auto doToggle(sTableViewCell cell) const -> void; auto foregroundColor() const -> Color; auto headered() const -> bool; auto item(uint position) const -> TableViewItem; 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 onEdit(const function& callback = {}) -> type&; auto onSort(const function& callback = {}) -> type&; auto onToggle(const function& callback = {}) -> type&; auto remove(sTableViewColumn column) -> type&; auto remove(sTableViewItem item) -> type&; auto reset() -> type&; auto resizeColumns() -> type&; auto selectAll() -> type&; auto selectNone() -> type&; auto selected() const -> TableViewItem; auto setAlignment(Alignment alignment = {}) -> type&; auto setBackgroundColor(Color color = {}) -> type&; auto setBatchable(bool batchable = true) -> type&; auto setBordered(bool bordered = true) -> type&; auto setForegroundColor(Color color = {}) -> type&; auto setHeadered(bool headered = true) -> type&; auto setParent(mObject* parent = nullptr, int offset = -1) -> type& override; auto setSortable(bool sortable = true) -> type&; auto sort() -> type&; auto sortable() const -> bool; //private: struct State { uint activeColumn = 0; Alignment alignment; Color backgroundColor; bool batchable = false; bool bordered = false; vector columns; Color foregroundColor; bool headered = false; vector items; function onActivate; function onChange; function onContext; function onEdit; function onSort; function onToggle; bool sortable = false; } state; auto destruct() -> void override; }; #endif