// (NB: That term "drawing context / DC" lost its meaning a long time ago. Initially was meant to hold transient data only. Nowadays difference between window-> and window->DC-> is dubious.)
// (NB: That term "drawing context / DC" lost its meaning a long time ago. Initially was meant to hold transient data only. Nowadays difference between window-> and window->DC-> is dubious.)
// Pressing CTRL+C while holding on a window copy its content to the clipboard
// Pressing CTRL+C while holding on a window copy its content to the clipboard
// This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope.
// This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope.
// After Begin() we fill the last item / hovered data based on title bar data. It is a standard behavior (to allow creation of context menus on title bar only, etc.).
// After Begin() we fill the last item / hovered data based on title bar data. It is a standard behavior (to allow creation of context menus on title bar only, etc.).
// We remove 1 worth of rounding to Max.x to that text in long menus and small windows don't tend to display over the lower-right rounded area, which looks particularly glitchy.
// We remove 1 worth of rounding to Max.x to that text in long menus and small windows don't tend to display over the lower-right rounded area, which looks particularly glitchy.
ImVec2SizeFullAtLastBegin;// Copy of SizeFull at the end of Begin. This is the reference value we'll use on the next frame to decide if we need scrollbars.
ImVec2SizeFullAtLastBegin;// Copy of SizeFull at the end of Begin. This is the reference value we'll use on the next frame to decide if we need scrollbars.
ImVec2SizeContents;// Size of contents (== extents reach of the drawing cursor) from previous frame. Include decoration, window title, border, menu, etc.
ImVec2SizeContents;// Size of contents (== extents reach of the drawing cursor) from previous frame. Include decoration, window title, border, menu, etc.
ImVec2SizeContentsExplicit;// Size of contents explicitly set by the user via SetNextWindowContentSize()
ImVec2SizeContentsExplicit;// Size of contents explicitly set by the user via SetNextWindowContentSize()
ImRectContentsRegionRect;// Maximum visible content position _in window coordinates_. ~~ (SizeContentsExplicit ? SizeContentsExplicit : Size - ScrollbarSizes) - CursorStartPos, per axis
ImVec2WindowPadding;// Window padding at the time of begin.
ImVec2WindowPadding;// Window padding at the time of begin.
floatWindowRounding;// Window rounding at the time of begin.
floatWindowRounding;// Window rounding at the time of begin.
floatWindowBorderSize;// Window border size at the time of begin.
floatWindowBorderSize;// Window border size at the time of begin.
@ -908,7 +907,7 @@ struct IMGUI_API ImGuiWindow
ImVec2Scroll;
ImVec2Scroll;
ImVec2ScrollTarget;// target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change)
ImVec2ScrollTarget;// target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change)
ImVec2ScrollTargetCenterRatio;// 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered
ImVec2ScrollTargetCenterRatio;// 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered
ImVec2ScrollbarSizes;
ImVec2ScrollbarSizes;// Size taken by scrollbars on each axis
boolScrollbarX,ScrollbarY;
boolScrollbarX,ScrollbarY;
boolActive;// Set to true on Begin(), unless Collapsed
boolActive;// Set to true on Begin(), unless Collapsed
boolWasActive;
boolWasActive;
@ -935,9 +934,10 @@ struct IMGUI_API ImGuiWindow
ImGuiDrawContextDC;// Temporary per-window data, reset at the beginning of the frame
ImGuiDrawContextDC;// Temporary per-window data, reset at the beginning of the frame
ImVector<ImGuiID>IDStack;// ID stack. ID are hashes seeded with the value at the top of the stack
ImVector<ImGuiID>IDStack;// ID stack. ID are hashes seeded with the value at the top of the stack
ImRectWindowRectClipped;// = WindowRect just after setup in Begin(). == window->Rect() for root window.
ImRectOuterRectClipped;// = WindowRect just after setup in Begin(). == window->Rect() for root window.
ImRectInnerRect,InnerClipRect;
ImRectInnerMainRect,InnerClipRect;
ImRectContentsRegionRect;// FIXME: This is currently confusing/misleading. Maximum visible content position ~~ Pos + (SizeContentsExplicit ? SizeContentsExplicit : Size - ScrollbarSizes) - CursorStartPos, per axis
intLastFrameActive;
intLastFrameActive;
floatItemWidthDefault;
floatItemWidthDefault;
ImGuiMenuColumnsMenuColumns;// Simplified columns storage for menu items
ImGuiMenuColumnsMenuColumns;// Simplified columns storage for menu items