.. index:: pair: class; EE::UI::Tools::UITabWidgetSplitter .. _doxid-class_e_e_1_1_u_i_1_1_tools_1_1_u_i_tab_widget_splitter: class EE::UI::Tools::UITabWidgetSplitter ======================================== .. toctree:: :hidden: class_EE_UI_Tools_UITabWidgetSplitter_Client.rst .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class UITabWidgetSplitter { public: // typedefs typedef std::function`*, :ref:`UITabWidget::FocusTabBehavior`, std::function onMsgBoxCloseCb)> :target:`TabTryCloseCallback`; // classes class :ref:`Client`; // construction virtual :target:`~UITabWidgetSplitter`(); // methods static UITabWidgetSplitter* :target:`New`(:ref:`Client`* client, :ref:`UISceneNode`* sceneNode); :ref:`UITabWidget`* :target:`createTabWidget`(:ref:`Node`* parent); std::pair<:ref:`UITab`*, :ref:`UIWidget`*> :target:`createWidget`(:ref:`UIWidget`* widget, const std::string& tabName, bool focus = true); std::pair<:ref:`UITab`*, :ref:`UIWidget`*> :target:`createWidgetInTabWidget`(:ref:`UITabWidget`* tabWidget, :ref:`UIWidget`* widget, const std::string& tabName, bool focus = true); std::vector`*, :ref:`UITabWidget`*>> :target:`getTabFromOwnedWidgetId`(const std::string& id); bool :target:`ownedWidgetExists`(:ref:`UIWidget`* widget); bool :target:`removeTabWithOwnedWidgetId`(const std::string& id, bool destroyOwnedNode = true, bool immediateClose = false); :ref:`UITab`* :target:`getTabFromWidget`(:ref:`UIWidget`* widget) const; virtual bool :target:`tryTabClose`(:ref:`UIWidget`* widget, :ref:`UITabWidget::FocusTabBehavior` focusTabBehavior, std::function onMsgBoxCloseCb = {}); virtual bool :target:`tryCloseAllTabs`(:ref:`UIWidget`* widget, :ref:`UITabWidget::FocusTabBehavior` focusTabBehavior); virtual bool :target:`tryCloseOtherTabs`(:ref:`UIWidget`* widget, :ref:`UITabWidget::FocusTabBehavior` focusTabBehavior); virtual bool :target:`tryCloseTabsToDirection`(:ref:`UIWidget`* widget, :ref:`UITabWidget::FocusTabBehavior` focusTabBehavior, bool toTheRight); void :target:`closeTab`(:ref:`UIWidget`* widget, :ref:`UITabWidget::FocusTabBehavior` focusTabBehavior); :ref:`UISplitter`* :target:`split`(const :ref:`SplitDirection`& direction, :ref:`UIWidget`* widget); :ref:`UITabWidget`* :target:`splitTabWidget`(:ref:`SplitDirection` direction, :ref:`UITabWidget`* tabWidget); void :target:`switchToTab`(:ref:`Int32` index); :ref:`UITabWidget`* :target:`findPreviousSplit`(:ref:`UIWidget`* widget); void :target:`switchPreviousSplit`(:ref:`UIWidget`* widget); :ref:`UITabWidget`* :target:`findNextSplit`(:ref:`UIWidget`* widget); void :target:`switchNextSplit`(:ref:`UIWidget`* widget); void :target:`setCurrentWidget`(:ref:`UIWidget`* curWidget); void :target:`focusSomeWidget`(:ref:`Node`* searchFrom = nullptr); :ref:`UIWidget`* :target:`getSomeWidget`(); :ref:`UITabWidget`* :target:`tabWidgetFromWidget`(:ref:`UIWidget`* widget) const; :ref:`UISplitter`* :target:`splitterFromWidget`(:ref:`UIWidget`* widget) const; bool :target:`curWidgetExists`() const; bool :target:`hasSplit`() const; :ref:`UIOrientation` :target:`getMainSplitOrientation`() const; :ref:`UIWidget`* :target:`getCurWidget`() const; const std::vector<:ref:`UITabWidget`*>& :target:`getTabWidgets`() const; :ref:`UITabWidget`* :target:`getFirstTabWidget`() const; :ref:`Node`* :target:`getBaseLayout`() const; :ref:`UISceneNode`* :target:`getUISceneNode`() const; bool :target:`getHideTabBarOnSingleTab`() const; void :target:`setHideTabBarOnSingleTab`(bool hideTabBarOnSingleTab); void :target:`setHideTabBar`(bool hideTabBar); bool :target:`getVisualSplitting`() const; void :target:`setVisualSplitting`(bool visualSplitting); :ref:`Float` :target:`getVisualSplitEdgePercent`() const; void :target:`setVisualSplitEdgePercent`(:ref:`Float` visualSplitEdgePercent); void :target:`setOnTabWidgetCreateCb`(std::function`*)> cb); void :target:`closeSplitter`(:ref:`UISplitter`* splitter); void :target:`addRemainingTabWidgets`(:ref:`Node`* widget); void :target:`closeTabWidgets`(:ref:`UISplitter`* splitter); bool :target:`checkWidgetExists`(:ref:`UIWidget`*) const; bool :target:`isWidgetInAnyWidget`(:ref:`UIWidget`*) const; void :target:`forEachWidget`(std::function`*)> run) const; void :target:`forEachWidgetStoppable`(std::function`*)> run) const; void :target:`forEachWidgetClass`(const std::string& className, std::function`*)> run) const; void :target:`forEachWidgetClassStoppable`(const std::string& className, std::function`*)> run) const; void :target:`forEachWidgetType`(const :ref:`UINodeType`& nodeType, std::function`*)> run) const; void :target:`forEachWidgetTypeStoppable`(const :ref:`UINodeType`& nodeType, std::function`*)> run) const; void :target:`forEachTabWidget`(std::function`*)> run) const; void :target:`forEachTabWidgetStoppable`(std::function`*)> run) const; void :target:`forEachTab`(std::function`*)> run) const; template void :target:`registerSplitterCommands`(T& t); void :target:`registerWidgetType`(const std::string& type, const :ref:`WidgetTypeCallback`& cb); void :target:`unregisterWidgetType`(const std::string& type); nlohmann::json :target:`serializeNode`(:ref:`Node`* node) const; void :target:`unserializeNode`(const nlohmann::json& j, :ref:`UITabWidget`* curTabWidget); nlohmann::json :target:`toJSON`() const; void :target:`fromJSON`(const nlohmann::json& j); void :target:`setTabTryCloseCallback`(:ref:`TabTryCloseCallback` cb); void :target:`setCanCreateSplitFn`(std::function` direction, :ref:`UIWidget`*widget)> fn); };