@ -12770,7 +12770,7 @@ static void ImGui::DockContextBuildNodesFromSettings(ImGuiContext* ctx, ImGuiDoc
node - > ParentNode - > ChildNodes [ 1 ] = node ;
node - > ParentNode - > ChildNodes [ 1 ] = node ;
node - > SelectedTabId = settings - > SelectedTabId ;
node - > SelectedTabId = settings - > SelectedTabId ;
node - > SplitAxis = ( ImGuiAxis ) settings - > SplitAxis ;
node - > SplitAxis = ( ImGuiAxis ) settings - > SplitAxis ;
node - > LocalFlags | = ( settings - > Flags & ImGuiDockNodeFlags_SavedFlagsMask_ ) ;
node - > Set LocalFlags( settings - > Flags & ImGuiDockNodeFlags_SavedFlagsMask_ ) ;
// Bind host window immediately if it already exist (in case of a rebuild)
// Bind host window immediately if it already exist (in case of a rebuild)
// This is useful as the RootWindowForTitleBarHighlight links necessary to highlight the currently focused node requires node->HostWindow to be set.
// This is useful as the RootWindowForTitleBarHighlight links necessary to highlight the currently focused node requires node->HostWindow to be set.
@ -12912,7 +12912,7 @@ void ImGui::DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req)
new_node - > HostWindow = node - > HostWindow ;
new_node - > HostWindow = node - > HostWindow ;
node = new_node ;
node = new_node ;
}
}
node - > LocalFlags & = ~ ImGuiDockNodeFlags_HiddenTabBar ;
node - > SetLocalFlags( node - > LocalFlags & ~ ImGuiDockNodeFlags_HiddenTabBar ) ;
if ( node ! = payload_node )
if ( node ! = payload_node )
{
{
@ -12950,8 +12950,8 @@ void ImGui::DockContextProcessDock(ImGuiContext* ctx, ImGuiDockRequest* req)
IM_ASSERT ( last_focused_node ! = NULL ) ;
IM_ASSERT ( last_focused_node ! = NULL ) ;
ImGuiDockNode * last_focused_root_node = DockNodeGetRootNode ( last_focused_node ) ;
ImGuiDockNode * last_focused_root_node = DockNodeGetRootNode ( last_focused_node ) ;
IM_ASSERT ( last_focused_root_node = = DockNodeGetRootNode ( payload_node ) ) ;
IM_ASSERT ( last_focused_root_node = = DockNodeGetRootNode ( payload_node ) ) ;
last_focused_node - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ;
last_focused_node - > SetLocalFlags( last_focused_node - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ) ;
node - > LocalFlags & = ~ ImGuiDockNodeFlags_CentralNode ;
node - > SetLocalFlags( node - > LocalFlags & ~ ImGuiDockNodeFlags_CentralNode ) ;
last_focused_root_node - > CentralNode = last_focused_node ;
last_focused_root_node - > CentralNode = last_focused_node ;
}
}
@ -13112,7 +13112,7 @@ bool ImGui::DockContextCalcDropPosForDocking(ImGuiWindow* target, ImGuiDockNode*
ImGuiDockNode : : ImGuiDockNode ( ImGuiID id )
ImGuiDockNode : : ImGuiDockNode ( ImGuiID id )
{
{
ID = id ;
ID = id ;
SharedFlags = LocalFlags = ImGuiDockNodeFlags_None;
SharedFlags = LocalFlags = LocalFlagsInWindows = MergedFlags = ImGuiDockNodeFlags_None;
ParentNode = ChildNodes [ 0 ] = ChildNodes [ 1 ] = NULL ;
ParentNode = ChildNodes [ 0 ] = ChildNodes [ 1 ] = NULL ;
TabBar = NULL ;
TabBar = NULL ;
SplitAxis = ImGuiAxis_None ;
SplitAxis = ImGuiAxis_None ;
@ -13416,6 +13416,7 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
// Remove inactive windows
// Remove inactive windows
// Merge node flags overrides stored in windows
// Merge node flags overrides stored in windows
node - > LocalFlagsInWindows = ImGuiDockNodeFlags_None ;
for ( int window_n = 0 ; window_n < node - > Windows . Size ; window_n + + )
for ( int window_n = 0 ; window_n < node - > Windows . Size ; window_n + + )
{
{
ImGuiWindow * window = node - > Windows [ window_n ] ;
ImGuiWindow * window = node - > Windows [ window_n ] ;
@ -13442,13 +13443,14 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
else
else
{
{
// FIXME-DOCKING: Missing policies for conflict resolution, hence the "Experimental" tag on this.
// FIXME-DOCKING: Missing policies for conflict resolution, hence the "Experimental" tag on this.
//node->LocalFlags &= ~window->WindowClass.DockNodeFlagsOverrideClear;
//node->LocalFlags InWindow &= ~window->WindowClass.DockNodeFlagsOverrideClear;
node - > LocalFlags | = window - > WindowClass . DockNodeFlagsOverrideSet ;
node - > LocalFlags InWindows | = window - > WindowClass . DockNodeFlagsOverrideSet ;
}
}
}
}
node - > UpdateMergedFlags ( ) ;
// Auto-hide tab bar option
// Auto-hide tab bar option
ImGuiDockNodeFlags node_flags = node - > Get MergedFlags( ) ;
ImGuiDockNodeFlags node_flags = node - > MergedFlags;
if ( node - > WantHiddenTabBarUpdate & & node - > Windows . Size = = 1 & & ( node_flags & ImGuiDockNodeFlags_AutoHideTabBar ) & & ! node - > IsHiddenTabBar ( ) )
if ( node - > WantHiddenTabBarUpdate & & node - > Windows . Size = = 1 & & ( node_flags & ImGuiDockNodeFlags_AutoHideTabBar ) & & ! node - > IsHiddenTabBar ( ) )
node - > WantHiddenTabBarToggle = true ;
node - > WantHiddenTabBarToggle = true ;
node - > WantHiddenTabBarUpdate = false ;
node - > WantHiddenTabBarUpdate = false ;
@ -13459,9 +13461,9 @@ static void ImGui::DockNodeUpdateVisibleFlagAndInactiveChilds(ImGuiDockNode* nod
// Apply toggles at a single point of the frame (here!)
// Apply toggles at a single point of the frame (here!)
if ( node - > Windows . Size > 1 )
if ( node - > Windows . Size > 1 )
node - > LocalFlags & = ~ ImGuiDockNodeFlags_HiddenTabBar ;
node - > SetLocalFlags( node - > LocalFlags & ~ ImGuiDockNodeFlags_HiddenTabBar ) ;
else if ( node - > WantHiddenTabBarToggle )
else if ( node - > WantHiddenTabBarToggle )
node - > LocalFlags ^ = ImGuiDockNodeFlags_HiddenTabBar ;
node - > SetLocalFlags( node - > LocalFlags ^ ImGuiDockNodeFlags_HiddenTabBar ) ;
node - > WantHiddenTabBarToggle = false ;
node - > WantHiddenTabBarToggle = false ;
DockNodeUpdateVisibleFlag ( node ) ;
DockNodeUpdateVisibleFlag ( node ) ;
@ -13599,7 +13601,7 @@ static void ImGui::DockNodeUpdate(ImGuiDockNode* node)
}
}
}
}
const ImGuiDockNodeFlags node_flags = node - > Get MergedFlags( ) ;
const ImGuiDockNodeFlags node_flags = node - > MergedFlags;
// Decide if the node will have a close button and a window menu button
// Decide if the node will have a close button and a window menu button
node - > HasWindowMenuButton = ( node - > Windows . Size > 0 ) & & ( node_flags & ImGuiDockNodeFlags_NoWindowMenuButton ) = = 0 ;
node - > HasWindowMenuButton = ( node - > Windows . Size > 0 ) & & ( node_flags & ImGuiDockNodeFlags_NoWindowMenuButton ) = = 0 ;
@ -13851,7 +13853,7 @@ bool ImGui::DockNodeBeginAmendTabBar(ImGuiDockNode* node)
{
{
if ( node - > TabBar = = NULL | | node - > HostWindow = = NULL )
if ( node - > TabBar = = NULL | | node - > HostWindow = = NULL )
return false ;
return false ;
if ( node - > Shar edFlags & ImGuiDockNodeFlags_KeepAliveOnly )
if ( node - > Merg edFlags & ImGuiDockNodeFlags_KeepAliveOnly )
return false ;
return false ;
Begin ( node - > HostWindow - > Name ) ;
Begin ( node - > HostWindow - > Name ) ;
PushOverrideID ( node - > ID ) ;
PushOverrideID ( node - > ID ) ;
@ -13929,7 +13931,7 @@ static void ImGui::DockNodeUpdateTabBar(ImGuiDockNode* node, ImGuiWindow* host_w
ImGuiID focus_tab_id = 0 ;
ImGuiID focus_tab_id = 0 ;
node - > IsFocused = is_focused ;
node - > IsFocused = is_focused ;
const ImGuiDockNodeFlags node_flags = node - > Get MergedFlags( ) ;
const ImGuiDockNodeFlags node_flags = node - > MergedFlags;
const bool has_window_menu_button = ( node_flags & ImGuiDockNodeFlags_NoWindowMenuButton ) = = 0 & & ( style . WindowMenuButtonPosition ! = ImGuiDir_None ) ;
const bool has_window_menu_button = ( node_flags & ImGuiDockNodeFlags_NoWindowMenuButton ) = = 0 & & ( style . WindowMenuButtonPosition ! = ImGuiDir_None ) ;
// In a dock node, the Collapse Button turns into the Window Menu button.
// In a dock node, the Collapse Button turns into the Window Menu button.
@ -14323,8 +14325,8 @@ static void ImGui::DockNodePreviewDockSetup(ImGuiWindow* host_window, ImGuiDockN
IM_ASSERT ( ref_node_for_rect - > IsVisible ) ;
IM_ASSERT ( ref_node_for_rect - > IsVisible ) ;
// Filter, figure out where we are allowed to dock
// Filter, figure out where we are allowed to dock
ImGuiDockNodeFlags src_node_flags = root_payload_as_host ? root_payload_as_host - > GetMergedFlags ( ) : root_payload - > WindowClass . DockNodeFlagsOverrideSet ;
ImGuiDockNodeFlags src_node_flags = root_payload_as_host ? root_payload_as_host - > MergedFlags : root_payload - > WindowClass . DockNodeFlagsOverrideSet ;
ImGuiDockNodeFlags dst_node_flags = host_node ? host_node - > GetMergedFlags ( ) : host_window - > WindowClass . DockNodeFlagsOverrideSet ;
ImGuiDockNodeFlags dst_node_flags = host_node ? host_node - > MergedFlags : host_window - > WindowClass . DockNodeFlagsOverrideSet ;
data - > IsCenterAvailable = true ;
data - > IsCenterAvailable = true ;
if ( is_outer_docking )
if ( is_outer_docking )
data - > IsCenterAvailable = false ;
data - > IsCenterAvailable = false ;
@ -14504,7 +14506,7 @@ static void ImGui::DockNodePreviewDockRender(ImGuiWindow* host_window, ImGuiDock
}
}
// Stop after ImGuiDir_None
// Stop after ImGuiDir_None
if ( ( host_node & & ( host_node - > Get MergedFlags( ) & ImGuiDockNodeFlags_NoSplit ) ) | | g . IO . ConfigDockingNoSplit )
if ( ( host_node & & ( host_node - > MergedFlags & ImGuiDockNodeFlags_NoSplit ) ) | | g . IO . ConfigDockingNoSplit )
return ;
return ;
}
}
}
}
@ -14557,6 +14559,9 @@ void ImGui::DockNodeTreeSplit(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG
child_1 - > SharedFlags = parent_node - > SharedFlags & ImGuiDockNodeFlags_SharedFlagsInheritMask_ ;
child_1 - > SharedFlags = parent_node - > SharedFlags & ImGuiDockNodeFlags_SharedFlagsInheritMask_ ;
child_inheritor - > LocalFlags = parent_node - > LocalFlags & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
child_inheritor - > LocalFlags = parent_node - > LocalFlags & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlags & = ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlags & = ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
child_0 - > UpdateMergedFlags ( ) ;
child_1 - > UpdateMergedFlags ( ) ;
parent_node - > UpdateMergedFlags ( ) ;
if ( child_inheritor - > IsCentralNode ( ) )
if ( child_inheritor - > IsCentralNode ( ) )
DockNodeGetRootNode ( parent_node ) - > CentralNode = child_inheritor ;
DockNodeGetRootNode ( parent_node ) - > CentralNode = child_inheritor ;
}
}
@ -14596,6 +14601,8 @@ void ImGui::DockNodeTreeMerge(ImGuiContext* ctx, ImGuiDockNode* parent_node, ImG
parent_node - > LocalFlags & = ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ; // Preserve Dockspace flag
parent_node - > LocalFlags & = ~ ImGuiDockNodeFlags_LocalFlagsTransferMask_ ; // Preserve Dockspace flag
parent_node - > LocalFlags | = ( child_0 ? child_0 - > LocalFlags : 0 ) & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlags | = ( child_0 ? child_0 - > LocalFlags : 0 ) & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlags | = ( child_1 ? child_1 - > LocalFlags : 0 ) & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlags | = ( child_1 ? child_1 - > LocalFlags : 0 ) & ImGuiDockNodeFlags_LocalFlagsTransferMask_ ;
parent_node - > LocalFlagsInWindows = ( child_0 ? child_0 - > LocalFlagsInWindows : 0 ) | ( child_1 ? child_1 - > LocalFlagsInWindows : 0 ) ; // FIXME: Would be more consistent to update from actual windows
parent_node - > UpdateMergedFlags ( ) ;
if ( child_0 )
if ( child_0 )
{
{
@ -14727,7 +14734,7 @@ void ImGui::DockNodeTreeUpdateSplitter(ImGuiDockNode* node)
bb . Max [ axis ^ 1 ] + = child_1 - > Size [ axis ^ 1 ] ;
bb . Max [ axis ^ 1 ] + = child_1 - > Size [ axis ^ 1 ] ;
//if (g.IO.KeyCtrl) GetForegroundDrawList(g.CurrentWindow->Viewport)->AddRect(bb.Min, bb.Max, IM_COL32(255,0,255,255));
//if (g.IO.KeyCtrl) GetForegroundDrawList(g.CurrentWindow->Viewport)->AddRect(bb.Min, bb.Max, IM_COL32(255,0,255,255));
const ImGuiDockNodeFlags merged_flags = child_0 - > Get MergedFlags( ) | child_1 - > GetMergedFlags( ) ;
const ImGuiDockNodeFlags merged_flags = child_0 - > MergedFlags | child_1 - > MergedFlags; // Merged flags for BOTH childs
const ImGuiDockNodeFlags no_resize_axis_flag = ( axis = = ImGuiAxis_X ) ? ImGuiDockNodeFlags_NoResizeX : ImGuiDockNodeFlags_NoResizeY ;
const ImGuiDockNodeFlags no_resize_axis_flag = ( axis = = ImGuiAxis_X ) ? ImGuiDockNodeFlags_NoResizeX : ImGuiDockNodeFlags_NoResizeY ;
if ( ( merged_flags & ImGuiDockNodeFlags_NoResize ) | | ( merged_flags & no_resize_axis_flag ) )
if ( ( merged_flags & ImGuiDockNodeFlags_NoResize ) | | ( merged_flags & no_resize_axis_flag ) )
{
{
@ -14921,7 +14928,7 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags
{
{
IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X created \n " , id ) ;
IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X created \n " , id ) ;
node = DockContextAddNode ( ctx , id ) ;
node = DockContextAddNode ( ctx , id ) ;
node - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ;
node - > SetLocalFlags( ImGuiDockNodeFlags_CentralNode ) ;
}
}
if ( window_class & & window_class - > ClassId ! = node - > WindowClass . ClassId )
if ( window_class & & window_class - > ClassId ! = node - > WindowClass . ClassId )
IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X: setup WindowClass 0x%08X -> 0x%08X \n " , id , node - > WindowClass . ClassId , window_class - > ClassId ) ;
IMGUI_DEBUG_LOG_DOCKING ( " DockSpace: dockspace node 0x%08X: setup WindowClass 0x%08X -> 0x%08X \n " , id , node - > WindowClass . ClassId , window_class - > ClassId ) ;
@ -14933,10 +14940,10 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags
if ( node - > LastFrameActive = = g . FrameCount & & ! ( flags & ImGuiDockNodeFlags_KeepAliveOnly ) )
if ( node - > LastFrameActive = = g . FrameCount & & ! ( flags & ImGuiDockNodeFlags_KeepAliveOnly ) )
{
{
IM_ASSERT ( node - > IsDockSpace ( ) = = false & & " Cannot call DockSpace() twice a frame with the same ID " ) ;
IM_ASSERT ( node - > IsDockSpace ( ) = = false & & " Cannot call DockSpace() twice a frame with the same ID " ) ;
node - > LocalFlags | = ImGuiDockNodeFlags_DockSpace ;
node - > SetLocalFlags( node - > LocalFlags | ImGuiDockNodeFlags_DockSpace ) ;
return id ;
return id ;
}
}
node - > LocalFlags | = ImGuiDockNodeFlags_DockSpace ;
node - > SetLocalFlags( node - > LocalFlags | ImGuiDockNodeFlags_DockSpace ) ;
// Keep alive mode, this is allow windows docked into this node so stay docked even if they are not visible
// Keep alive mode, this is allow windows docked into this node so stay docked even if they are not visible
if ( flags & ImGuiDockNodeFlags_KeepAliveOnly )
if ( flags & ImGuiDockNodeFlags_KeepAliveOnly )
@ -14988,7 +14995,7 @@ ImGuiID ImGui::DockSpace(ImGuiID id, const ImVec2& size_arg, ImGuiDockNodeFlags
// The specific sub-property of _CentralNode we are interested in recovering here is the "Don't delete when empty" property,
// The specific sub-property of _CentralNode we are interested in recovering here is the "Don't delete when empty" property,
// as it doesn't make sense for an empty dockspace to not have this property.
// as it doesn't make sense for an empty dockspace to not have this property.
if ( node - > IsLeafNode ( ) & & ! node - > IsCentralNode ( ) )
if ( node - > IsLeafNode ( ) & & ! node - > IsCentralNode ( ) )
node - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ;
node - > SetLocalFlags( node - > LocalFlags | ImGuiDockNodeFlags_CentralNode ) ;
// Update the node
// Update the node
DockNodeUpdate ( node ) ;
DockNodeUpdate ( node ) ;
@ -15127,7 +15134,7 @@ ImGuiID ImGui::DockBuilderAddNode(ImGuiID id, ImGuiDockNodeFlags flags)
else
else
{
{
node = DockContextAddNode ( ctx , id ) ;
node = DockContextAddNode ( ctx , id ) ;
node - > LocalFlags = flags ;
node - > SetLocalFlags( flags ) ;
}
}
node - > LastFrameAlive = ctx - > FrameCount ; // Set this otherwise BeginDocked will undock during the same frame.
node - > LastFrameAlive = ctx - > FrameCount ; // Set this otherwise BeginDocked will undock during the same frame.
return node - > ID ;
return node - > ID ;
@ -15142,7 +15149,7 @@ void ImGui::DockBuilderRemoveNode(ImGuiID node_id)
DockBuilderRemoveNodeDockedWindows ( node_id , true ) ;
DockBuilderRemoveNodeDockedWindows ( node_id , true ) ;
DockBuilderRemoveNodeChildNodes ( node_id ) ;
DockBuilderRemoveNodeChildNodes ( node_id ) ;
if ( node - > IsCentralNode ( ) & & node - > ParentNode )
if ( node - > IsCentralNode ( ) & & node - > ParentNode )
node - > ParentNode - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ;
node - > ParentNode - > SetLocalFlags( node - > ParentNode - > LocalFlags | ImGuiDockNodeFlags_CentralNode ) ;
DockContextRemoveNode ( ctx , node , true ) ;
DockContextRemoveNode ( ctx , node , true ) ;
}
}
@ -15212,8 +15219,8 @@ void ImGui::DockBuilderRemoveNodeChildNodes(ImGuiID root_id)
}
}
else if ( has_central_node )
else if ( has_central_node )
{
{
root_node - > LocalFlags | = ImGuiDockNodeFlags_CentralNode ;
root_node - > CentralNode = root_node ;
root_node - > CentralNode = root_node ;
root_node - > SetLocalFlags ( root_node - > LocalFlags | ImGuiDockNodeFlags_CentralNode ) ;
}
}
}
}
@ -15295,10 +15302,12 @@ static ImGuiDockNode* DockBuilderCopyNodeRec(ImGuiDockNode* src_node, ImGuiID ds
ImGuiDockNode * dst_node = ImGui : : DockContextAddNode ( ctx , dst_node_id_if_known ) ;
ImGuiDockNode * dst_node = ImGui : : DockContextAddNode ( ctx , dst_node_id_if_known ) ;
dst_node - > SharedFlags = src_node - > SharedFlags ;
dst_node - > SharedFlags = src_node - > SharedFlags ;
dst_node - > LocalFlags = src_node - > LocalFlags ;
dst_node - > LocalFlags = src_node - > LocalFlags ;
dst_node - > LocalFlagsInWindows = ImGuiDockNodeFlags_None ;
dst_node - > Pos = src_node - > Pos ;
dst_node - > Pos = src_node - > Pos ;
dst_node - > Size = src_node - > Size ;
dst_node - > Size = src_node - > Size ;
dst_node - > SizeRef = src_node - > SizeRef ;
dst_node - > SizeRef = src_node - > SizeRef ;
dst_node - > SplitAxis = src_node - > SplitAxis ;
dst_node - > SplitAxis = src_node - > SplitAxis ;
dst_node - > UpdateMergedFlags ( ) ;
out_node_remap_pairs - > push_back ( src_node - > ID ) ;
out_node_remap_pairs - > push_back ( src_node - > ID ) ;
out_node_remap_pairs - > push_back ( dst_node - > ID ) ;
out_node_remap_pairs - > push_back ( dst_node - > ID ) ;
@ -15606,7 +15615,7 @@ void ImGui::BeginDocked(ImGuiWindow* window, bool* p_open)
window - > DockIsActive = true ;
window - > DockIsActive = true ;
window - > DockNodeIsVisible = true ;
window - > DockNodeIsVisible = true ;
window - > DockTabIsVisible = false ;
window - > DockTabIsVisible = false ;
if ( node - > Shar edFlags & ImGuiDockNodeFlags_KeepAliveOnly )
if ( node - > Merg edFlags & ImGuiDockNodeFlags_KeepAliveOnly )
return ;
return ;
// When the window is selected we mark it as visible.
// When the window is selected we mark it as visible.
@ -16734,9 +16743,16 @@ void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label)
node - > IsCentralNode ( ) ? " IsCentralNode " : " " ,
node - > IsCentralNode ( ) ? " IsCentralNode " : " " ,
is_alive ? " IsAlive " : " " , is_active ? " IsActive " : " " ,
is_alive ? " IsAlive " : " " , is_active ? " IsActive " : " " ,
node - > WantLockSizeOnce ? " WantLockSizeOnce " : " " ) ;
node - > WantLockSizeOnce ? " WantLockSizeOnce " : " " ) ;
if ( TreeNode ( " flags " , " LocalFlags: 0x%04X SharedFlags : 0x%04X" , node - > LocalFlags, node - > SharedFlags ) )
if ( TreeNode ( " flags " , " Flags Merged: 0x%04X, Local: 0x%04X, InWindows: 0x%04X, Shared : 0x%04X" , node - > MergedFlags, node - > LocalFlags, node - > LocalFlagsInWindow s, node - > SharedFlags ) )
{
{
DebugNodeDockNodeFlags ( & node - > LocalFlags , " LocalFlags " , true ) ;
if ( BeginTable ( " flags " , 4 ) )
{
TableNextColumn ( ) ; DebugNodeDockNodeFlags ( & node - > MergedFlags , " MergedFlags " , false ) ;
TableNextColumn ( ) ; DebugNodeDockNodeFlags ( & node - > LocalFlags , " LocalFlags " , true ) ;
TableNextColumn ( ) ; DebugNodeDockNodeFlags ( & node - > LocalFlagsInWindows , " LocalFlagsInWindows " , false ) ;
TableNextColumn ( ) ; DebugNodeDockNodeFlags ( & node - > SharedFlags , " SharedFlags " , true ) ;
EndTable ( ) ;
}
TreePop ( ) ;
TreePop ( ) ;
}
}
if ( node - > ParentNode )
if ( node - > ParentNode )