#if defined(Hiro_TabFrame) struct mTabFrame : mWidget { Declare(TabFrame) using mObject::remove; friend class mTabFrameItem; auto append(sTabFrameItem item) -> type&; auto doChange() const -> void; auto doClose(sTabFrameItem item) const -> void; auto doMove(sTabFrameItem from, sTabFrameItem to) const -> void; auto item(uint position) const -> TabFrameItem; auto itemCount() const -> uint; auto items() const -> vector; auto navigation() const -> Navigation; auto onChange(const function& callback = {}) -> type&; auto onClose(const function& callback = {}) -> type&; auto onMove(const function& callback = {}) -> type&; auto remove(sTabFrameItem item) -> type&; auto reset() -> type&; auto selected() const -> TabFrameItem; auto setEnabled(bool enabled = true) -> type& override; auto setFont(const Font& font = {}) -> type& override; auto setNavigation(Navigation navigation = Navigation::Top) -> type&; auto setParent(mObject* object = nullptr, int offset = -1) -> type& override; auto setVisible(bool visible = true) -> type& override; //private: struct State { vector items; Navigation navigation = Navigation::Top; function onChange; function onClose; function onMove; } state; auto destruct() -> void override; }; #endif