// When a Dockspace transitioned form implicit to explicit this may be called a second time
// It is possible that the node has already been claimed by a docked window which appeared before the DockSpace() node, so we overwrite IsDockSpace again.
// The limitation with this call is that your window won't have a menu bar.
// Even though we could pass window flags, it would also require the user to be able to call BeginMenuBar() somehow meaning we can't Begin/End in a single function.
// So if you want a menu bar you need to repeat this code manually ourselves. As with advanced other Docking API, we may change this function signature.
// FIXME: When overwriting dst_dockspace_id, windows that aren't part of our dockspace family but that are docked in a same node will be split apart,
// FIXME: When overwriting dst_dockspace_id, windows that aren't part of our dockspace window class but that are docked in a same node will be split apart,
// whereas we could attempt to at least keep them together in a new, same floating node.
// Draw List API (ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListFlags, ImDrawList, ImDrawData)
@ -102,7 +102,7 @@ struct ImColor; // Helper functions to create a color that c
typedefvoid*ImTextureID;// User data to identify a texture (this is whatever to you want it to be! read the FAQ about ImTextureID in imgui.cpp)
#endif
structImGuiContext;// ImGui context (opaque)
structImGuiDockFamily;// Docking family for dock filtering
structImGuiWindowClass;// Window class/family for docking filtering or high-level identifiation of windows by user
structImGuiIO;// Main configuration and I/O between your application and ImGui
structImGuiInputTextCallbackData;// Shared state of InputText() when using custom ImGuiInputTextCallback (rare/advanced use)
structImGuiListClipper;// Helper to manually clip large list of items
@ -578,10 +578,10 @@ namespace ImGui
// Note: you DO NOT need to call DockSpace() to use most Docking facilities!
// To dock windows: hold SHIFT anywhere while moving windows (if io.ConfigDockingWithShift == true) or drag windows from their title bar (if io.ConfigDockingWithShift = false)
// Use DockSpace() to create an explicit dock node _within_ an existing window. See Docking demo for details.
ImGuiIDDockId;// ID of last known DockNode (even if the DockNode is invisible because it has only 1 active window), or 0 if none.
ImGuiIDDockFamilyId;// ID of dock family if specified
ImGuiIDClassId;// ID of window class if specified
shortDockOrder;// Order of the last time the window was visible within its DockNode. This is used to reorder windows that are reappearing on the same frame. Same value between windows that were active and windows that were none are possible.
ImVec2SizeRef;// [Split node only] Last explicitly written-to size (overridden when using a splitter affecting the node), used to calculate Size.
intSplitAxis;// [Split node only] Split axis (X or Y)
ImGuiDockFamily DockFamily;
ImGuiWindowClass WindowClass;
ImGuiWindow*HostWindow;
ImGuiWindow*VisibleWindow;
@ -1201,6 +1201,7 @@ struct IMGUI_API ImGuiWindow
char*Name;
ImGuiIDID;// == ImHash(Name)
ImGuiWindowFlagsFlags,FlagsPreviousFrame;// See enum ImGuiWindowFlags_
ImGuiWindowClassWindowClass;// Advanced users only. Set with SetNextWindowClass()
ImGuiViewportP*Viewport;// Always set in Begin(), only inactive windows may have a NULL value here
ImGuiIDViewportId;// We backup the viewport id (since the viewport may disappear or never be created if the window is inactive)
ImVec2ViewportPos;// We backup the viewport position (since the viewport may disappear or never be created if the window is inactive)
@ -1247,7 +1248,6 @@ struct IMGUI_API ImGuiWindow
ImGuiCondSetWindowDockAllowFlags;// store acceptable condition flags for SetNextWindowDock() use.
ImVec2SetWindowPosVal;// store window position when using a non-zero Pivot (position set needs to be processed when we know the window size)
ImVec2SetWindowPosPivot;// store window pivot for positioning. ImVec2(0,0) when positioning from top-left corner; ImVec2(0.5f,0.5f) for centering; ImVec2(1,1) for bottom right.
ImGuiDockFamilyDockFamily;// set with SetNextWindowDockFamily()
ImGuiWindowTempDataDC;// Temporary per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the "DC" variable name.
ImVector<ImGuiID>IDStack;// ID stack. ID are hashes seeded with the value at the top of the stack