Represents a dock node in the layout tree. More...
#include <layout_definition.h>
Public Member Functions | |
| bool | IsSplit () const |
| bool | IsLeaf () const |
| bool | IsRoot () const |
| void | AddPanel (const LayoutPanel &panel) |
| void | Split (ImGuiDir direction, float ratio) |
| LayoutPanel * | FindPanel (const std::string &panel_id) |
| size_t | CountPanels () const |
| std::unique_ptr< DockNode > | Clone () const |
Public Attributes | |
| DockNodeType | type = DockNodeType::Leaf |
| ImGuiID | node_id = 0 |
| ImGuiDir | split_dir = ImGuiDir_None |
| float | split_ratio = 0.5f |
| std::unique_ptr< DockNode > | child_left |
| std::unique_ptr< DockNode > | child_right |
| std::vector< LayoutPanel > | panels |
| ImGuiDockNodeFlags | flags = ImGuiDockNodeFlags_None |
Represents a dock node in the layout tree.
Hierarchical structure representing the docking layout. Can be a split (with two children) or a leaf (containing panels).
Definition at line 68 of file layout_definition.h.
|
inline |
Definition at line 87 of file layout_definition.h.
References yaze::editor::layout_designer::Split, and type.
Referenced by yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawNodeProperties(), and yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode().
|
inline |
Definition at line 88 of file layout_definition.h.
References yaze::editor::layout_designer::Leaf, yaze::editor::layout_designer::Root, and type.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), and yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode().
|
inline |
Definition at line 89 of file layout_definition.h.
References yaze::editor::layout_designer::Root, and type.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree().
| void yaze::editor::layout_designer::DockNode::AddPanel | ( | const LayoutPanel & | panel | ) |
Definition at line 13 of file layout_definition.cc.
References panels, yaze::editor::layout_designer::Split, and type.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget().
| void yaze::editor::layout_designer::DockNode::Split | ( | ImGuiDir | direction, |
| float | ratio ) |
Definition at line 21 of file layout_definition.cc.
References child_left, child_right, yaze::editor::layout_designer::Leaf, panels, yaze::editor::layout_designer::Split, split_dir, split_ratio, and type.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget().
| LayoutPanel * yaze::editor::layout_designer::DockNode::FindPanel | ( | const std::string & | panel_id | ) |
Definition at line 42 of file layout_definition.cc.
References child_left, child_right, yaze::editor::layout_designer::Leaf, panels, and type.
| size_t yaze::editor::layout_designer::DockNode::CountPanels | ( | ) | const |
Definition at line 67 of file layout_definition.cc.
References child_left, child_right, yaze::editor::layout_designer::Leaf, panels, yaze::editor::layout_designer::Root, yaze::editor::layout_designer::LayoutPanel::size, and type.
| std::unique_ptr< DockNode > yaze::editor::layout_designer::DockNode::Clone | ( | ) | const |
Definition at line 82 of file layout_definition.cc.
References child_left, child_right, flags, node_id, panels, split_dir, split_ratio, and type.
| DockNodeType yaze::editor::layout_designer::DockNode::type = DockNodeType::Leaf |
Definition at line 69 of file layout_definition.h.
Referenced by AddPanel(), Clone(), CountPanels(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), FindPanel(), IsLeaf(), IsRoot(), IsSplit(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| ImGuiID yaze::editor::layout_designer::DockNode::node_id = 0 |
Definition at line 70 of file layout_definition.h.
Referenced by Clone().
| ImGuiDir yaze::editor::layout_designer::DockNode::split_dir = ImGuiDir_None |
Definition at line 73 of file layout_definition.h.
Referenced by yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), Clone(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawNodeProperties(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| float yaze::editor::layout_designer::DockNode::split_ratio = 0.5f |
Definition at line 74 of file layout_definition.h.
Referenced by yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), Clone(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawNodeProperties(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| std::unique_ptr<DockNode> yaze::editor::layout_designer::DockNode::child_left |
Definition at line 77 of file layout_definition.h.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget(), yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), Clone(), CountPanels(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), FindPanel(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| std::unique_ptr<DockNode> yaze::editor::layout_designer::DockNode::child_right |
Definition at line 78 of file layout_definition.h.
Referenced by yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget(), yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), Clone(), CountPanels(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), FindPanel(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| std::vector<LayoutPanel> yaze::editor::layout_designer::DockNode::panels |
Definition at line 81 of file layout_definition.h.
Referenced by AddPanel(), yaze::editor::layout_designer::LayoutDesignerWindow::AddPanelToTarget(), yaze::editor::layout_designer::anonymous_namespace{layout_designer_window.cc}::ApplyLayoutToDockspace(), Clone(), CountPanels(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNodeTree(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawNodeProperties(), FindPanel(), yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode(), yaze::editor::layout_designer::LayoutSerializer::SerializeDockNode(), and Split().
| ImGuiDockNodeFlags yaze::editor::layout_designer::DockNode::flags = ImGuiDockNodeFlags_None |
Definition at line 84 of file layout_definition.h.
Referenced by Clone(), yaze::editor::layout_designer::LayoutDesignerWindow::DeleteNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawDockNode(), yaze::editor::layout_designer::LayoutDesignerWindow::DrawNodeProperties(), and yaze::editor::layout_designer::LayoutDesignerWindow::GenerateDockBuilderCode().