@ -1800,17 +1800,21 @@ namespace ImGui
IMGUI_API void SetWindowDock ( ImGuiWindow * window , ImGuiID dock_id , ImGuiCond cond ) ;
IMGUI_API void SetWindowDock ( ImGuiWindow * window , ImGuiID dock_id , ImGuiCond cond ) ;
// Docking - Builder function needs to be generally called before the DockSpace() node is submitted.
// Docking - Builder function needs to be generally called before the DockSpace() node is submitted.
// Important: do not hold on ImGuiDockNode* pointers. They may be invalidated by any split/merge/remove operation and every frame.
// - The DockBuilderXXX functions are designed to _eventually_ become a public API, but it is too early to expose it and guarantee stability.
// - You can create dockspace _or_ floating nodes with this API. To create a dockspace node, make sure to set the ImGuiDockNodeFlags_DockSpace flag.
// - If you intend to split the node immediately after creation using DockBuilderSplitNode(), make sure to call DockBuilderSetNodeSize() beforehand.
// - Call DockBuilderFinish() after you are done.
// - Important: do not hold on ImGuiDockNode* pointers! They may be invalidated by any split/merge/remove operation and every frame.
IMGUI_API void DockBuilderDockWindow ( const char * window_name , ImGuiID node_id ) ;
IMGUI_API void DockBuilderDockWindow ( const char * window_name , ImGuiID node_id ) ;
IMGUI_API ImGuiDockNode * DockBuilderGetNode ( ImGuiID node_id ) ;
IMGUI_API ImGuiDockNode * DockBuilderGetNode ( ImGuiID node_id ) ;
inline ImGuiDockNode * DockBuilderGetCentralNode ( ImGuiID node_id ) { ImGuiDockNode * node = DockBuilderGetNode ( node_id ) ; if ( ! node ) return NULL ; return DockNodeGetRootNode ( node ) - > CentralNode ; }
inline ImGuiDockNode * DockBuilderGetCentralNode ( ImGuiID node_id ) { ImGuiDockNode * node = DockBuilderGetNode ( node_id ) ; if ( ! node ) return NULL ; return DockNodeGetRootNode ( node ) - > CentralNode ; }
IMGUI_API ImGuiID DockBuilderAddNode ( ImGuiID node_id , ImGuiDockNodeFlags flags = 0 ) ; // Use (flags == ImGuiDockNodeFlags_DockSpace) to create a dockspace, otherwise it'll create a floating node.
IMGUI_API ImGuiID DockBuilderAddNode ( ImGuiID node_id = 0 , ImGuiDockNodeFlags flags = 0 ) ;
IMGUI_API void DockBuilderRemoveNode ( ImGuiID node_id ) ; // Remove node and all its child, undock all windows
IMGUI_API void DockBuilderRemoveNode ( ImGuiID node_id ) ; // Remove node and all its child, undock all windows
IMGUI_API void DockBuilderRemoveNodeDockedWindows ( ImGuiID node_id , bool clear_persistent_docking_references = true ) ;
IMGUI_API void DockBuilderRemoveNodeDockedWindows ( ImGuiID node_id , bool clear_persistent_docking_references = true ) ;
IMGUI_API void DockBuilderRemoveNodeChildNodes ( ImGuiID node_id ) ; // Remove all split/hierarchy. All remaining docked windows will be re-docked to the root.
IMGUI_API void DockBuilderRemoveNodeChildNodes ( ImGuiID node_id ) ; // Remove all split/hierarchy. All remaining docked windows will be re-docked to the root.
IMGUI_API void DockBuilderSetNodePos ( ImGuiID node_id , ImVec2 pos ) ;
IMGUI_API void DockBuilderSetNodePos ( ImGuiID node_id , ImVec2 pos ) ;
IMGUI_API void DockBuilderSetNodeSize ( ImGuiID node_id , ImVec2 size ) ;
IMGUI_API void DockBuilderSetNodeSize ( ImGuiID node_id , ImVec2 size ) ;
IMGUI_API ImGuiID DockBuilderSplitNode ( ImGuiID node_id , ImGuiDir split_dir , float size_ratio_for_node_at_dir , ImGuiID * out_id_dir , ImGuiID * out_id_oth er ) ;
IMGUI_API ImGuiID DockBuilderSplitNode ( ImGuiID node_id , ImGuiDir split_dir , float size_ratio_for_node_at_dir , ImGuiID * out_id_at_ dir , ImGuiID * out_id_at_opp osi te_di r ) ;
IMGUI_API void DockBuilderCopyDockSpace ( ImGuiID src_dockspace_id , ImGuiID dst_dockspace_id , ImVector < const char * > * in_window_remap_pairs ) ;
IMGUI_API void DockBuilderCopyDockSpace ( ImGuiID src_dockspace_id , ImGuiID dst_dockspace_id , ImVector < const char * > * in_window_remap_pairs ) ;
IMGUI_API void DockBuilderCopyNode ( ImGuiID src_node_id , ImGuiID dst_node_id , ImVector < ImGuiID > * out_node_remap_pairs ) ;
IMGUI_API void DockBuilderCopyNode ( ImGuiID src_node_id , ImGuiID dst_node_id , ImVector < ImGuiID > * out_node_remap_pairs ) ;
IMGUI_API void DockBuilderCopyWindowSettings ( const char * src_name , const char * dst_name ) ;
IMGUI_API void DockBuilderCopyWindowSettings ( const char * src_name , const char * dst_name ) ;