mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	+ extraded bits of metrics into DebugNodeDockNodeFlags()
This commit is contained in:
		| @@ -144,6 +144,8 @@ Docking+Viewports Branch: | |||||||
|  |  | ||||||
| - Docking: Clicking on the right-most close button of a docking node closes all windows. (#4186) | - Docking: Clicking on the right-most close button of a docking node closes all windows. (#4186) | ||||||
| - Docking: Fix IsWindowAppearing() and ImGuiCond_Appearing on docked windows. (#4177, #3982, #1497, #1061) | - Docking: Fix IsWindowAppearing() and ImGuiCond_Appearing on docked windows. (#4177, #3982, #1497, #1061) | ||||||
|  | - Docking: (Internal/Experimental) Removed DockNodeFlagsOverrideClear flags from ImGuiWindowClass as | ||||||
|  |   it is ambiguous how to apply them and we haven't got a use out of them yet. | ||||||
| - Viewports: Fix popup/tooltip created without a parent window from being given a ParentViewportId value | - Viewports: Fix popup/tooltip created without a parent window from being given a ParentViewportId value | ||||||
|   from the implicit/fallback window. (#4236, #2409) |   from the implicit/fallback window. (#4236, #2409) | ||||||
| - Backends: Vulkan: Fix the use of the incorrect fence for secondary viewports. (#4208) [@FunMiles] | - Backends: Vulkan: Fix the use of the incorrect fence for secondary viewports. (#4208) [@FunMiles] | ||||||
|   | |||||||
							
								
								
									
										39
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -13442,7 +13442,7 @@ 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 &= ~window->WindowClass.DockNodeFlagsOverrideClear; | ||||||
|             node->LocalFlags |= window->WindowClass.DockNodeFlagsOverrideSet; |             node->LocalFlags |= window->WindowClass.DockNodeFlagsOverrideSet; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| @@ -16677,6 +16677,33 @@ void ImGui::DebugNodeColumns(ImGuiOldColumns* columns) | |||||||
|     TreePop(); |     TreePop(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static void DebugNodeDockNodeFlags(ImGuiDockNodeFlags* p_flags, const char* label, bool enabled) | ||||||
|  | { | ||||||
|  |     using namespace ImGui; | ||||||
|  |     PushID(label); | ||||||
|  |     PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0.0f, 0.0f)); | ||||||
|  |     Text("%s:", label); | ||||||
|  |     if (!enabled) | ||||||
|  |         PushDisabled(); | ||||||
|  |     CheckboxFlags("NoSplit", p_flags, ImGuiDockNodeFlags_NoSplit); | ||||||
|  |     CheckboxFlags("NoResize", p_flags, ImGuiDockNodeFlags_NoResize); | ||||||
|  |     CheckboxFlags("NoResizeX", p_flags, ImGuiDockNodeFlags_NoResizeX); | ||||||
|  |     CheckboxFlags("NoResizeY",p_flags, ImGuiDockNodeFlags_NoResizeY); | ||||||
|  |     CheckboxFlags("NoTabBar", p_flags, ImGuiDockNodeFlags_NoTabBar); | ||||||
|  |     CheckboxFlags("HiddenTabBar", p_flags, ImGuiDockNodeFlags_HiddenTabBar); | ||||||
|  |     CheckboxFlags("NoWindowMenuButton", p_flags, ImGuiDockNodeFlags_NoWindowMenuButton); | ||||||
|  |     CheckboxFlags("NoCloseButton", p_flags, ImGuiDockNodeFlags_NoCloseButton); | ||||||
|  |     CheckboxFlags("NoDocking", p_flags, ImGuiDockNodeFlags_NoDocking); | ||||||
|  |     CheckboxFlags("NoDockingSplitMe", p_flags, ImGuiDockNodeFlags_NoDockingSplitMe); | ||||||
|  |     CheckboxFlags("NoDockingSplitOther", p_flags, ImGuiDockNodeFlags_NoDockingSplitOther); | ||||||
|  |     CheckboxFlags("NoDockingOverMe", p_flags, ImGuiDockNodeFlags_NoDockingOverMe); | ||||||
|  |     CheckboxFlags("NoDockingOverOther", p_flags, ImGuiDockNodeFlags_NoDockingOverOther); | ||||||
|  |     if (!enabled) | ||||||
|  |         PopDisabled(); | ||||||
|  |     PopStyleVar(); | ||||||
|  |     PopID(); | ||||||
|  | } | ||||||
|  |  | ||||||
| // [DEBUG] Display contents of ImDockNode | // [DEBUG] Display contents of ImDockNode | ||||||
| void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label) | void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label) | ||||||
| { | { | ||||||
| @@ -16709,15 +16736,7 @@ void ImGui::DebugNodeDockNode(ImGuiDockNode* node, const char* label) | |||||||
|             node->WantLockSizeOnce ? " WantLockSizeOnce" : ""); |             node->WantLockSizeOnce ? " WantLockSizeOnce" : ""); | ||||||
|         if (TreeNode("flags", "LocalFlags: 0x%04X SharedFlags: 0x%04X", node->LocalFlags, node->SharedFlags)) |         if (TreeNode("flags", "LocalFlags: 0x%04X SharedFlags: 0x%04X", node->LocalFlags, node->SharedFlags)) | ||||||
|         { |         { | ||||||
|             CheckboxFlags("LocalFlags: NoDocking", &node->LocalFlags, ImGuiDockNodeFlags_NoDocking); |             DebugNodeDockNodeFlags(&node->LocalFlags, "LocalFlags", true); | ||||||
|             CheckboxFlags("LocalFlags: NoSplit", &node->LocalFlags, ImGuiDockNodeFlags_NoSplit); |  | ||||||
|             CheckboxFlags("LocalFlags: NoResize", &node->LocalFlags, ImGuiDockNodeFlags_NoResize); |  | ||||||
|             CheckboxFlags("LocalFlags: NoResizeX", &node->LocalFlags, ImGuiDockNodeFlags_NoResizeX); |  | ||||||
|             CheckboxFlags("LocalFlags: NoResizeY", &node->LocalFlags, ImGuiDockNodeFlags_NoResizeY); |  | ||||||
|             CheckboxFlags("LocalFlags: NoTabBar", &node->LocalFlags, ImGuiDockNodeFlags_NoTabBar); |  | ||||||
|             CheckboxFlags("LocalFlags: HiddenTabBar", &node->LocalFlags, ImGuiDockNodeFlags_HiddenTabBar); |  | ||||||
|             CheckboxFlags("LocalFlags: NoWindowMenuButton", &node->LocalFlags, ImGuiDockNodeFlags_NoWindowMenuButton); |  | ||||||
|             CheckboxFlags("LocalFlags: NoCloseButton", &node->LocalFlags, ImGuiDockNodeFlags_NoCloseButton); |  | ||||||
|             TreePop(); |             TreePop(); | ||||||
|         } |         } | ||||||
|         if (node->ParentNode) |         if (node->ParentNode) | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -2068,7 +2068,6 @@ struct ImGuiWindowClass | |||||||
|     ImGuiViewportFlags  ViewportFlagsOverrideClear; // Viewport flags to clear when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. |     ImGuiViewportFlags  ViewportFlagsOverrideClear; // Viewport flags to clear when a window of this class owns a viewport. This allows you to enforce OS decoration or task bar icon, override the defaults on a per-window basis. | ||||||
|     ImGuiTabItemFlags   TabItemFlagsOverrideSet;    // [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. |     ImGuiTabItemFlags   TabItemFlagsOverrideSet;    // [EXPERIMENTAL] TabItem flags to set when a window of this class gets submitted into a dock node tab bar. May use with ImGuiTabItemFlags_Leading or ImGuiTabItemFlags_Trailing. | ||||||
|     ImGuiDockNodeFlags  DockNodeFlagsOverrideSet;   // [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) |     ImGuiDockNodeFlags  DockNodeFlagsOverrideSet;   // [EXPERIMENTAL] Dock node flags to set when a window of this class is hosted by a dock node (it doesn't have to be selected!) | ||||||
|     ImGuiDockNodeFlags  DockNodeFlagsOverrideClear; // [EXPERIMENTAL] |  | ||||||
|     bool                DockingAlwaysTabBar;        // Set to true to enforce single floating windows of this class always having their own docking node (equivalent of setting the global io.ConfigDockingAlwaysTabBar) |     bool                DockingAlwaysTabBar;        // Set to true to enforce single floating windows of this class always having their own docking node (equivalent of setting the global io.ConfigDockingAlwaysTabBar) | ||||||
|     bool                DockingAllowUnclassed;      // Set to true to allow windows of this class to be docked/merged with an unclassed window. // FIXME-DOCK: Move to DockNodeFlags override? |     bool                DockingAllowUnclassed;      // Set to true to allow windows of this class to be docked/merged with an unclassed window. // FIXME-DOCK: Move to DockNodeFlags override? | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user