mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	Docking: Moving types in imgui.h
This commit is contained in:
		
							
								
								
									
										60
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								imgui.h
									
									
									
									
									
								
							@@ -17,7 +17,7 @@ Index of this file:
 | 
			
		||||
// ImVector<>
 | 
			
		||||
// ImGuiStyle
 | 
			
		||||
// ImGuiIO
 | 
			
		||||
// Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload, ImGuiWindowClass)
 | 
			
		||||
// Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiWindowClass, ImGuiPayload)
 | 
			
		||||
// Obsolete functions
 | 
			
		||||
// Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor)
 | 
			
		||||
// Draw List API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData)
 | 
			
		||||
@@ -887,21 +887,6 @@ enum ImGuiTabItemFlags_
 | 
			
		||||
    ImGuiTabItemFlags_NoPushId                      = 1 << 3    // Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem()
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flags for ImGui::DockSpace(), shared/inherited by child nodes.
 | 
			
		||||
// (Some flags can be applied to individual nodes directly)
 | 
			
		||||
// FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api.
 | 
			
		||||
enum ImGuiDockNodeFlags_
 | 
			
		||||
{
 | 
			
		||||
    ImGuiDockNodeFlags_None                         = 0,
 | 
			
		||||
    ImGuiDockNodeFlags_KeepAliveOnly                = 1 << 0,   // Shared       // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
 | 
			
		||||
    //ImGuiDockNodeFlags_NoCentralNode              = 1 << 1,   // Shared       // Disable Central Node (the node which can stay empty)
 | 
			
		||||
    ImGuiDockNodeFlags_NoDockingInCentralNode       = 1 << 2,   // Shared       // Disable docking inside the Central Node, which will be always kept empty.
 | 
			
		||||
    ImGuiDockNodeFlags_PassthruCentralNode          = 1 << 3,   // Shared       // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
 | 
			
		||||
    ImGuiDockNodeFlags_NoSplit                      = 1 << 4,   // Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved.
 | 
			
		||||
    ImGuiDockNodeFlags_NoResize                     = 1 << 5,   // Shared/Local // Disable resizing node using the splitter/separators. Useful with programatically setup dockspaces. 
 | 
			
		||||
    ImGuiDockNodeFlags_AutoHideTabBar               = 1 << 6    // Shared/Local // Tab bar will automatically hide when there is a single window in the dock node.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flags for ImGui::IsWindowFocused()
 | 
			
		||||
enum ImGuiFocusedFlags_
 | 
			
		||||
{
 | 
			
		||||
@@ -930,6 +915,21 @@ enum ImGuiHoveredFlags_
 | 
			
		||||
    ImGuiHoveredFlags_RootAndChildWindows           = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flags for ImGui::DockSpace(), shared/inherited by child nodes.
 | 
			
		||||
// (Some flags can be applied to individual nodes directly)
 | 
			
		||||
// FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api.
 | 
			
		||||
enum ImGuiDockNodeFlags_
 | 
			
		||||
{
 | 
			
		||||
    ImGuiDockNodeFlags_None                         = 0,
 | 
			
		||||
    ImGuiDockNodeFlags_KeepAliveOnly                = 1 << 0,   // Shared       // Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.
 | 
			
		||||
    //ImGuiDockNodeFlags_NoCentralNode              = 1 << 1,   // Shared       // Disable Central Node (the node which can stay empty)
 | 
			
		||||
    ImGuiDockNodeFlags_NoDockingInCentralNode       = 1 << 2,   // Shared       // Disable docking inside the Central Node, which will be always kept empty.
 | 
			
		||||
    ImGuiDockNodeFlags_PassthruCentralNode          = 1 << 3,   // Shared       // Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.
 | 
			
		||||
    ImGuiDockNodeFlags_NoSplit                      = 1 << 4,   // Shared/Local // Disable splitting the node into smaller nodes. Useful e.g. when embedding dockspaces into a main root one (the root one may have splitting disabled to reduce confusion). Note: when turned off, existing splits will be preserved.
 | 
			
		||||
    ImGuiDockNodeFlags_NoResize                     = 1 << 5,   // Shared/Local // Disable resizing node using the splitter/separators. Useful with programatically setup dockspaces. 
 | 
			
		||||
    ImGuiDockNodeFlags_AutoHideTabBar               = 1 << 6    // Shared/Local // Tab bar will automatically hide when there is a single window in the dock node.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()
 | 
			
		||||
enum ImGuiDragDropFlags_
 | 
			
		||||
{
 | 
			
		||||
@@ -1582,6 +1582,20 @@ struct ImGuiSizeCallbackData
 | 
			
		||||
    ImVec2  DesiredSize;    // Read-write.  Desired size, based on user's mouse position. Write to this field to restrain resizing.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// [BETA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions.
 | 
			
		||||
// Provide hints to the platform back-end via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.) and OS level parent/child relationships.
 | 
			
		||||
struct ImGuiWindowClass
 | 
			
		||||
{
 | 
			
		||||
    ImGuiID             ClassId;                    // User data. 0 = Default class (unclassed)
 | 
			
		||||
    ImGuiID             ParentViewportId;           // Hint for the platform back-end. If non-zero, the platform back-end can create a parent<>child relationship between the platform windows. Not conforming back-ends are free to e.g. parent every viewport to the main viewport or not.
 | 
			
		||||
    ImGuiViewportFlags  ViewportFlagsOverrideMask;  // Viewport flags to override 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  ViewportFlagsOverrideValue; // Viewport flags values to override when a window of this class owns a viewport.
 | 
			
		||||
    bool                DockingAlwaysTabBar;        // Set to true to enforce windows of this class always having their own tab (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.
 | 
			
		||||
 | 
			
		||||
    ImGuiWindowClass() { ClassId = 0; ParentViewportId = 0; ViewportFlagsOverrideMask = ViewportFlagsOverrideValue = 0x00; DockingAlwaysTabBar = false; DockingAllowUnclassed = true; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload()
 | 
			
		||||
struct ImGuiPayload
 | 
			
		||||
{
 | 
			
		||||
@@ -1604,20 +1618,6 @@ struct ImGuiPayload
 | 
			
		||||
    bool IsDelivery() const                 { return Delivery; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// [BETA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions.
 | 
			
		||||
// Provide hints to the platform back-end via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.) and OS level parent/child relationships.
 | 
			
		||||
struct ImGuiWindowClass
 | 
			
		||||
{
 | 
			
		||||
    ImGuiID             ClassId;                    // User data. 0 = Default class (unclassed)
 | 
			
		||||
    ImGuiID             ParentViewportId;           // Hint for the platform back-end. If non-zero, the platform back-end can create a parent<>child relationship between the platform windows. Not conforming back-ends are free to e.g. parent every viewport to the main viewport or not.
 | 
			
		||||
    ImGuiViewportFlags  ViewportFlagsOverrideMask;  // Viewport flags to override 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  ViewportFlagsOverrideValue; // Viewport flags values to override when a window of this class owns a viewport.
 | 
			
		||||
    bool                DockingAlwaysTabBar;        // Set to true to enforce windows of this class always having their own tab (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.
 | 
			
		||||
 | 
			
		||||
    ImGuiWindowClass()  { ClassId = 0; ParentViewportId = 0; ViewportFlagsOverrideMask = ViewportFlagsOverrideValue = 0x00; DockingAlwaysTabBar = false; DockingAllowUnclassed = true; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//-----------------------------------------------------------------------------
 | 
			
		||||
// Obsolete functions (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details)
 | 
			
		||||
// Please keep your copy of dear imgui up to date! Occasionally set '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' in imconfig.h to stay ahead.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user