mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Internals: shuffling some sections (2)
This commit is contained in:
parent
f466cfc2ca
commit
5f752a5ba9
191
imgui_internal.h
191
imgui_internal.h
@ -17,7 +17,8 @@ Index of this file:
|
|||||||
// [SECTION] Macros
|
// [SECTION] Macros
|
||||||
// [SECTION] Generic helpers
|
// [SECTION] Generic helpers
|
||||||
// [SECTION] ImDrawList support
|
// [SECTION] ImDrawList support
|
||||||
// [SECTION] Misc flags, enums and data structures
|
// [SECTION] Widgets support: flags, enums, data structures
|
||||||
|
// [SECTION] Columns support
|
||||||
// [SECTION] Settings support
|
// [SECTION] Settings support
|
||||||
// [SECTION] ImGuiContext (main imgui context)
|
// [SECTION] ImGuiContext (main imgui context)
|
||||||
// [SECTION] ImGuiWindowTempData, ImGuiWindow
|
// [SECTION] ImGuiWindowTempData, ImGuiWindow
|
||||||
@ -552,9 +553,45 @@ struct ImDrawDataBuilder
|
|||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// [SECTION] Misc flags, enums and data structures
|
// [SECTION] Widgets support: flags, enums, data structures
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
|
||||||
|
// This is going to be exposed in imgui.h when stabilized enough.
|
||||||
|
enum ImGuiItemFlags_
|
||||||
|
{
|
||||||
|
ImGuiItemFlags_None = 0,
|
||||||
|
ImGuiItemFlags_NoTabStop = 1 << 0, // false
|
||||||
|
ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
|
||||||
|
ImGuiItemFlags_Disabled = 1 << 2, // false // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211
|
||||||
|
ImGuiItemFlags_NoNav = 1 << 3, // false
|
||||||
|
ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, // false
|
||||||
|
ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // MenuItem/Selectable() automatically closes current Popup window
|
||||||
|
ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
|
||||||
|
ImGuiItemFlags_Default_ = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
// Storage for LastItem data
|
||||||
|
enum ImGuiItemStatusFlags_
|
||||||
|
{
|
||||||
|
ImGuiItemStatusFlags_None = 0,
|
||||||
|
ImGuiItemStatusFlags_HoveredRect = 1 << 0,
|
||||||
|
ImGuiItemStatusFlags_HasDisplayRect = 1 << 1,
|
||||||
|
ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
|
||||||
|
ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected" because reporting the change allows us to handle clipping with less issues.
|
||||||
|
ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state.
|
||||||
|
ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
|
||||||
|
ImGuiItemStatusFlags_Deactivated = 1 << 6 // Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
|
||||||
|
|
||||||
|
#ifdef IMGUI_ENABLE_TEST_ENGINE
|
||||||
|
, // [imgui_tests only]
|
||||||
|
ImGuiItemStatusFlags_Openable = 1 << 10, //
|
||||||
|
ImGuiItemStatusFlags_Opened = 1 << 11, //
|
||||||
|
ImGuiItemStatusFlags_Checkable = 1 << 12, //
|
||||||
|
ImGuiItemStatusFlags_Checked = 1 << 13 //
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
enum ImGuiButtonFlags_
|
enum ImGuiButtonFlags_
|
||||||
{
|
{
|
||||||
ImGuiButtonFlags_None = 0,
|
ImGuiButtonFlags_None = 0,
|
||||||
@ -597,17 +634,6 @@ enum ImGuiDragFlags_
|
|||||||
ImGuiDragFlags_Vertical = 1 << 0
|
ImGuiDragFlags_Vertical = 1 << 0
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ImGuiColumnsFlags_
|
|
||||||
{
|
|
||||||
// Default: 0
|
|
||||||
ImGuiColumnsFlags_None = 0,
|
|
||||||
ImGuiColumnsFlags_NoBorder = 1 << 0, // Disable column dividers
|
|
||||||
ImGuiColumnsFlags_NoResize = 1 << 1, // Disable resizing columns when clicking on the dividers
|
|
||||||
ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, // Disable column width preservation when adjusting columns
|
|
||||||
ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, // Disable forcing columns to fit within window
|
|
||||||
ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 // (WIP) Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove.
|
|
||||||
};
|
|
||||||
|
|
||||||
// Extend ImGuiSelectableFlags_
|
// Extend ImGuiSelectableFlags_
|
||||||
enum ImGuiSelectableFlagsPrivate_
|
enum ImGuiSelectableFlagsPrivate_
|
||||||
{
|
{
|
||||||
@ -634,42 +660,6 @@ enum ImGuiSeparatorFlags_
|
|||||||
ImGuiSeparatorFlags_SpanAllColumns = 1 << 2
|
ImGuiSeparatorFlags_SpanAllColumns = 1 << 2
|
||||||
};
|
};
|
||||||
|
|
||||||
// Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin().
|
|
||||||
// This is going to be exposed in imgui.h when stabilized enough.
|
|
||||||
enum ImGuiItemFlags_
|
|
||||||
{
|
|
||||||
ImGuiItemFlags_None = 0,
|
|
||||||
ImGuiItemFlags_NoTabStop = 1 << 0, // false
|
|
||||||
ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings.
|
|
||||||
ImGuiItemFlags_Disabled = 1 << 2, // false // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211
|
|
||||||
ImGuiItemFlags_NoNav = 1 << 3, // false
|
|
||||||
ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, // false
|
|
||||||
ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // MenuItem/Selectable() automatically closes current Popup window
|
|
||||||
ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)
|
|
||||||
ImGuiItemFlags_Default_ = 0
|
|
||||||
};
|
|
||||||
|
|
||||||
// Storage for LastItem data
|
|
||||||
enum ImGuiItemStatusFlags_
|
|
||||||
{
|
|
||||||
ImGuiItemStatusFlags_None = 0,
|
|
||||||
ImGuiItemStatusFlags_HoveredRect = 1 << 0,
|
|
||||||
ImGuiItemStatusFlags_HasDisplayRect = 1 << 1,
|
|
||||||
ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets)
|
|
||||||
ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected" because reporting the change allows us to handle clipping with less issues.
|
|
||||||
ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state.
|
|
||||||
ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.
|
|
||||||
ImGuiItemStatusFlags_Deactivated = 1 << 6 // Only valid if ImGuiItemStatusFlags_HasDeactivated is set.
|
|
||||||
|
|
||||||
#ifdef IMGUI_ENABLE_TEST_ENGINE
|
|
||||||
, // [imgui_tests only]
|
|
||||||
ImGuiItemStatusFlags_Openable = 1 << 10, //
|
|
||||||
ImGuiItemStatusFlags_Opened = 1 << 11, //
|
|
||||||
ImGuiItemStatusFlags_Checkable = 1 << 12, //
|
|
||||||
ImGuiItemStatusFlags_Checked = 1 << 13 //
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
enum ImGuiTextFlags_
|
enum ImGuiTextFlags_
|
||||||
{
|
{
|
||||||
ImGuiTextFlags_None = 0,
|
ImGuiTextFlags_None = 0,
|
||||||
@ -897,50 +887,6 @@ struct ImGuiPopupData
|
|||||||
ImGuiPopupData() { PopupId = 0; Window = SourceWindow = NULL; OpenFrameCount = -1; OpenParentId = 0; }
|
ImGuiPopupData() { PopupId = 0; Window = SourceWindow = NULL; OpenFrameCount = -1; OpenParentId = 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ImGuiColumnData
|
|
||||||
{
|
|
||||||
float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
|
|
||||||
float OffsetNormBeforeResize;
|
|
||||||
ImGuiColumnsFlags Flags; // Not exposed
|
|
||||||
ImRect ClipRect;
|
|
||||||
|
|
||||||
ImGuiColumnData() { OffsetNorm = OffsetNormBeforeResize = 0.0f; Flags = ImGuiColumnsFlags_None; }
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ImGuiColumns
|
|
||||||
{
|
|
||||||
ImGuiID ID;
|
|
||||||
ImGuiColumnsFlags Flags;
|
|
||||||
bool IsFirstFrame;
|
|
||||||
bool IsBeingResized;
|
|
||||||
int Current;
|
|
||||||
int Count;
|
|
||||||
float OffMinX, OffMaxX; // Offsets from HostWorkRect.Min.x
|
|
||||||
float LineMinY, LineMaxY;
|
|
||||||
float HostCursorPosY; // Backup of CursorPos at the time of BeginColumns()
|
|
||||||
float HostCursorMaxPosX; // Backup of CursorMaxPos at the time of BeginColumns()
|
|
||||||
ImRect HostClipRect; // Backup of ClipRect at the time of BeginColumns()
|
|
||||||
ImRect HostWorkRect; // Backup of WorkRect at the time of BeginColumns()
|
|
||||||
ImVector<ImGuiColumnData> Columns;
|
|
||||||
ImDrawListSplitter Splitter;
|
|
||||||
|
|
||||||
ImGuiColumns() { Clear(); }
|
|
||||||
void Clear()
|
|
||||||
{
|
|
||||||
ID = 0;
|
|
||||||
Flags = ImGuiColumnsFlags_None;
|
|
||||||
IsFirstFrame = false;
|
|
||||||
IsBeingResized = false;
|
|
||||||
Current = 0;
|
|
||||||
Count = 1;
|
|
||||||
OffMinX = OffMaxX = 0.0f;
|
|
||||||
LineMinY = LineMaxY = 0.0f;
|
|
||||||
HostCursorPosY = 0.0f;
|
|
||||||
HostCursorMaxPosX = 0.0f;
|
|
||||||
Columns.clear();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ImGuiNavMoveResult
|
struct ImGuiNavMoveResult
|
||||||
{
|
{
|
||||||
ImGuiWindow* Window; // Best candidate window
|
ImGuiWindow* Window; // Best candidate window
|
||||||
@ -1025,6 +971,65 @@ struct ImGuiPtrOrIndex
|
|||||||
ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; }
|
ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// [SECTION] Columns support
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
enum ImGuiColumnsFlags_
|
||||||
|
{
|
||||||
|
// Default: 0
|
||||||
|
ImGuiColumnsFlags_None = 0,
|
||||||
|
ImGuiColumnsFlags_NoBorder = 1 << 0, // Disable column dividers
|
||||||
|
ImGuiColumnsFlags_NoResize = 1 << 1, // Disable resizing columns when clicking on the dividers
|
||||||
|
ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, // Disable column width preservation when adjusting columns
|
||||||
|
ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, // Disable forcing columns to fit within window
|
||||||
|
ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 // (WIP) Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove.
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ImGuiColumnData
|
||||||
|
{
|
||||||
|
float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
|
||||||
|
float OffsetNormBeforeResize;
|
||||||
|
ImGuiColumnsFlags Flags; // Not exposed
|
||||||
|
ImRect ClipRect;
|
||||||
|
|
||||||
|
ImGuiColumnData() { OffsetNorm = OffsetNormBeforeResize = 0.0f; Flags = ImGuiColumnsFlags_None; }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ImGuiColumns
|
||||||
|
{
|
||||||
|
ImGuiID ID;
|
||||||
|
ImGuiColumnsFlags Flags;
|
||||||
|
bool IsFirstFrame;
|
||||||
|
bool IsBeingResized;
|
||||||
|
int Current;
|
||||||
|
int Count;
|
||||||
|
float OffMinX, OffMaxX; // Offsets from HostWorkRect.Min.x
|
||||||
|
float LineMinY, LineMaxY;
|
||||||
|
float HostCursorPosY; // Backup of CursorPos at the time of BeginColumns()
|
||||||
|
float HostCursorMaxPosX; // Backup of CursorMaxPos at the time of BeginColumns()
|
||||||
|
ImRect HostClipRect; // Backup of ClipRect at the time of BeginColumns()
|
||||||
|
ImRect HostWorkRect; // Backup of WorkRect at the time of BeginColumns()
|
||||||
|
ImVector<ImGuiColumnData> Columns;
|
||||||
|
ImDrawListSplitter Splitter;
|
||||||
|
|
||||||
|
ImGuiColumns() { Clear(); }
|
||||||
|
void Clear()
|
||||||
|
{
|
||||||
|
ID = 0;
|
||||||
|
Flags = ImGuiColumnsFlags_None;
|
||||||
|
IsFirstFrame = false;
|
||||||
|
IsBeingResized = false;
|
||||||
|
Current = 0;
|
||||||
|
Count = 1;
|
||||||
|
OffMinX = OffMaxX = 0.0f;
|
||||||
|
LineMinY = LineMaxY = 0.0f;
|
||||||
|
HostCursorPosY = 0.0f;
|
||||||
|
HostCursorMaxPosX = 0.0f;
|
||||||
|
Columns.clear();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// [SECTION] Settings support
|
// [SECTION] Settings support
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user