mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-15 01:17:00 +00:00
Columns/Internals: (Breaking): Renamed data structures. (#125, #513, #913, #1204, #1444, #2142, #2707)
This commit is contained in:
parent
72de6f3360
commit
c0ac4fb788
@ -2188,7 +2188,7 @@ static void SetCursorPosYAndSetupForPrevLine(float pos_y, float line_height)
|
|||||||
window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y);
|
window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y);
|
||||||
window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHereY() can properly function after the end of our clipper usage.
|
window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHereY() can properly function after the end of our clipper usage.
|
||||||
window->DC.PrevLineSize.y = (line_height - g.Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list.
|
window->DC.PrevLineSize.y = (line_height - g.Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list.
|
||||||
if (ImGuiColumns* columns = window->DC.CurrentColumns)
|
if (ImGuiOldColumns* columns = window->DC.CurrentColumns)
|
||||||
columns->LineMinY = window->DC.CursorPos.y; // Setting this so that cell Y position are set properly
|
columns->LineMinY = window->DC.CursorPos.y; // Setting this so that cell Y position are set properly
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2802,7 +2802,7 @@ ImGuiWindow::~ImGuiWindow()
|
|||||||
IM_ASSERT(DrawList == &DrawListInst);
|
IM_ASSERT(DrawList == &DrawListInst);
|
||||||
IM_DELETE(Name);
|
IM_DELETE(Name);
|
||||||
for (int i = 0; i != ColumnsStorage.Size; i++)
|
for (int i = 0; i != ColumnsStorage.Size; i++)
|
||||||
ColumnsStorage[i].~ImGuiColumns();
|
ColumnsStorage[i].~ImGuiOldColumns();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
|
ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
|
||||||
@ -10600,7 +10600,7 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// [DEBUG] Display contents of Columns
|
// [DEBUG] Display contents of Columns
|
||||||
void ImGui::DebugNodeColumns(ImGuiColumns* columns)
|
void ImGui::DebugNodeColumns(ImGuiOldColumns* columns)
|
||||||
{
|
{
|
||||||
if (!TreeNode((void*)(uintptr_t)columns->ID, "Columns Id: 0x%08X, Count: %d, Flags: 0x%04X", columns->ID, columns->Count, columns->Flags))
|
if (!TreeNode((void*)(uintptr_t)columns->ID, "Columns Id: 0x%08X, Count: %d, Flags: 0x%04X", columns->ID, columns->Count, columns->Flags))
|
||||||
return;
|
return;
|
||||||
@ -10858,7 +10858,7 @@ void ImGui::DebugNodeWindowsList(ImVector<ImGuiWindow*>* windows, const char* la
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
void ImGui::ShowMetricsWindow(bool*) {}
|
void ImGui::ShowMetricsWindow(bool*) {}
|
||||||
void ImGui::DebugNodeColumns(ImGuiColumns*) {}
|
void ImGui::DebugNodeColumns(ImGuiOldColumns*) {}
|
||||||
void ImGui::DebugNodeDrawList(ImGuiWindow*, const ImDrawList*, const char*) {}
|
void ImGui::DebugNodeDrawList(ImGuiWindow*, const ImDrawList*, const char*) {}
|
||||||
void ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox(ImGuiWindow*, const ImDrawList*, const ImDrawCmd*, bool, bool) {}
|
void ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox(ImGuiWindow*, const ImDrawList*, const ImDrawCmd*, bool, bool) {}
|
||||||
void ImGui::DebugNodeStorage(ImGuiStorage*, const char*) {}
|
void ImGui::DebugNodeStorage(ImGuiStorage*, const char*) {}
|
||||||
|
@ -92,8 +92,6 @@ struct ImRect; // An axis-aligned rectangle (2 points)
|
|||||||
struct ImDrawDataBuilder; // Helper to build a ImDrawData instance
|
struct ImDrawDataBuilder; // Helper to build a ImDrawData instance
|
||||||
struct ImDrawListSharedData; // Data shared between all ImDrawList instances
|
struct ImDrawListSharedData; // Data shared between all ImDrawList instances
|
||||||
struct ImGuiColorMod; // Stacked color modifier, backup of modified data so we can restore it
|
struct ImGuiColorMod; // Stacked color modifier, backup of modified data so we can restore it
|
||||||
struct ImGuiColumnData; // Storage data for a single column
|
|
||||||
struct ImGuiColumns; // Storage data for a columns set
|
|
||||||
struct ImGuiContext; // Main Dear ImGui context
|
struct ImGuiContext; // Main Dear ImGui context
|
||||||
struct ImGuiContextHook; // Hook for extensions like ImGuiTestEngine
|
struct ImGuiContextHook; // Hook for extensions like ImGuiTestEngine
|
||||||
struct ImGuiDataTypeInfo; // Type information associated to a ImGuiDataType enum
|
struct ImGuiDataTypeInfo; // Type information associated to a ImGuiDataType enum
|
||||||
@ -105,6 +103,8 @@ struct ImGuiNavMoveResult; // Result of a gamepad/keyboard directional
|
|||||||
struct ImGuiMetricsConfig; // Storage for ShowMetricsWindow() and DebugNodeXXX() functions
|
struct ImGuiMetricsConfig; // Storage for ShowMetricsWindow() and DebugNodeXXX() functions
|
||||||
struct ImGuiNextWindowData; // Storage for SetNextWindow** functions
|
struct ImGuiNextWindowData; // Storage for SetNextWindow** functions
|
||||||
struct ImGuiNextItemData; // Storage for SetNextItem** functions
|
struct ImGuiNextItemData; // Storage for SetNextItem** functions
|
||||||
|
struct ImGuiOldColumnData; // Storage data for a single column for legacy Columns() api
|
||||||
|
struct ImGuiOldColumns; // Storage data for a columns set for legacy Columns() api
|
||||||
struct ImGuiPopupData; // Storage for current popup stack
|
struct ImGuiPopupData; // Storage for current popup stack
|
||||||
struct ImGuiSettingsHandler; // Storage for one type registered in the .ini file
|
struct ImGuiSettingsHandler; // Storage for one type registered in the .ini file
|
||||||
struct ImGuiStackSizes; // Storage of stack sizes for debugging/asserting
|
struct ImGuiStackSizes; // Storage of stack sizes for debugging/asserting
|
||||||
@ -1011,17 +1011,17 @@ enum ImGuiOldColumnFlags_
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ImGuiColumnData
|
struct ImGuiOldColumnData
|
||||||
{
|
{
|
||||||
float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
|
float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right)
|
||||||
float OffsetNormBeforeResize;
|
float OffsetNormBeforeResize;
|
||||||
ImGuiOldColumnFlags Flags; // Not exposed
|
ImGuiOldColumnFlags Flags; // Not exposed
|
||||||
ImRect ClipRect;
|
ImRect ClipRect;
|
||||||
|
|
||||||
ImGuiColumnData() { memset(this, 0, sizeof(*this)); }
|
ImGuiOldColumnData() { memset(this, 0, sizeof(*this)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ImGuiColumns
|
struct ImGuiOldColumns
|
||||||
{
|
{
|
||||||
ImGuiID ID;
|
ImGuiID ID;
|
||||||
ImGuiOldColumnFlags Flags;
|
ImGuiOldColumnFlags Flags;
|
||||||
@ -1036,10 +1036,10 @@ struct ImGuiColumns
|
|||||||
ImRect HostInitialClipRect; // Backup of ClipRect at the time of BeginColumns()
|
ImRect HostInitialClipRect; // Backup of ClipRect at the time of BeginColumns()
|
||||||
ImRect HostBackupClipRect; // Backup of ClipRect during PushColumnsBackground()/PopColumnsBackground()
|
ImRect HostBackupClipRect; // Backup of ClipRect during PushColumnsBackground()/PopColumnsBackground()
|
||||||
ImRect HostBackupParentWorkRect;//Backup of WorkRect at the time of BeginColumns()
|
ImRect HostBackupParentWorkRect;//Backup of WorkRect at the time of BeginColumns()
|
||||||
ImVector<ImGuiColumnData> Columns;
|
ImVector<ImGuiOldColumnData> Columns;
|
||||||
ImDrawListSplitter Splitter;
|
ImDrawListSplitter Splitter;
|
||||||
|
|
||||||
ImGuiColumns() { memset(this, 0, sizeof(*this)); }
|
ImGuiOldColumns() { memset(this, 0, sizeof(*this)); }
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -1578,7 +1578,7 @@ struct IMGUI_API ImGuiWindowTempData
|
|||||||
ImU32 TreeJumpToParentOnPopMask; // Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary.
|
ImU32 TreeJumpToParentOnPopMask; // Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary.
|
||||||
ImVector<ImGuiWindow*> ChildWindows;
|
ImVector<ImGuiWindow*> ChildWindows;
|
||||||
ImGuiStorage* StateStorage; // Current persistent per-window storage (store e.g. tree node open/close state)
|
ImGuiStorage* StateStorage; // Current persistent per-window storage (store e.g. tree node open/close state)
|
||||||
ImGuiColumns* CurrentColumns; // Current columns set
|
ImGuiOldColumns* CurrentColumns; // Current columns set
|
||||||
ImGuiLayoutType LayoutType;
|
ImGuiLayoutType LayoutType;
|
||||||
ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin()
|
ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin()
|
||||||
int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign)
|
int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign)
|
||||||
@ -1664,7 +1664,7 @@ struct IMGUI_API ImGuiWindow
|
|||||||
float LastTimeActive; // Last timestamp the window was Active (using float as we don't need high precision there)
|
float LastTimeActive; // Last timestamp the window was Active (using float as we don't need high precision there)
|
||||||
float ItemWidthDefault;
|
float ItemWidthDefault;
|
||||||
ImGuiStorage StateStorage;
|
ImGuiStorage StateStorage;
|
||||||
ImVector<ImGuiColumns> ColumnsStorage;
|
ImVector<ImGuiOldColumns> ColumnsStorage;
|
||||||
float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale()
|
float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale()
|
||||||
int SettingsOffset; // Offset into SettingsWindows[] (offsets are always valid as we only grow the array from the back)
|
int SettingsOffset; // Offset into SettingsWindows[] (offsets are always valid as we only grow the array from the back)
|
||||||
|
|
||||||
@ -1970,9 +1970,9 @@ namespace ImGui
|
|||||||
IMGUI_API void PushColumnsBackground();
|
IMGUI_API void PushColumnsBackground();
|
||||||
IMGUI_API void PopColumnsBackground();
|
IMGUI_API void PopColumnsBackground();
|
||||||
IMGUI_API ImGuiID GetColumnsID(const char* str_id, int count);
|
IMGUI_API ImGuiID GetColumnsID(const char* str_id, int count);
|
||||||
IMGUI_API ImGuiColumns* FindOrCreateColumns(ImGuiWindow* window, ImGuiID id);
|
IMGUI_API ImGuiOldColumns* FindOrCreateColumns(ImGuiWindow* window, ImGuiID id);
|
||||||
IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm);
|
IMGUI_API float GetColumnOffsetFromNorm(const ImGuiOldColumns* columns, float offset_norm);
|
||||||
IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns* columns, float offset);
|
IMGUI_API float GetColumnNormFromOffset(const ImGuiOldColumns* columns, float offset);
|
||||||
|
|
||||||
// Tab Bars
|
// Tab Bars
|
||||||
IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags);
|
IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags);
|
||||||
@ -2085,7 +2085,7 @@ namespace ImGui
|
|||||||
inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(window->DC.LastItemRect.Min, window->DC.LastItemRect.Max, col); }
|
inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(window->DC.LastItemRect.Min, window->DC.LastItemRect.Max, col); }
|
||||||
inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; }
|
inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; }
|
||||||
|
|
||||||
IMGUI_API void DebugNodeColumns(ImGuiColumns* columns);
|
IMGUI_API void DebugNodeColumns(ImGuiOldColumns* columns);
|
||||||
IMGUI_API void DebugNodeDrawList(ImGuiWindow* window, const ImDrawList* draw_list, const char* label);
|
IMGUI_API void DebugNodeDrawList(ImGuiWindow* window, const ImDrawList* draw_list, const char* label);
|
||||||
IMGUI_API void DebugNodeDrawCmdShowMeshAndBoundingBox(ImGuiWindow* window, const ImDrawList* draw_list, const ImDrawCmd* draw_cmd, bool show_mesh, bool show_aabb);
|
IMGUI_API void DebugNodeDrawCmdShowMeshAndBoundingBox(ImGuiWindow* window, const ImDrawList* draw_list, const ImDrawCmd* draw_cmd, bool show_mesh, bool show_aabb);
|
||||||
IMGUI_API void DebugNodeStorage(ImGuiStorage* storage, const char* label);
|
IMGUI_API void DebugNodeStorage(ImGuiStorage* storage, const char* label);
|
||||||
|
@ -1351,7 +1351,7 @@ void ImGui::SeparatorEx(ImGuiSeparatorFlags flags)
|
|||||||
if (g.GroupStack.Size > 0 && g.GroupStack.back().WindowID == window->ID)
|
if (g.GroupStack.Size > 0 && g.GroupStack.back().WindowID == window->ID)
|
||||||
x1 += window->DC.Indent.x;
|
x1 += window->DC.Indent.x;
|
||||||
|
|
||||||
ImGuiColumns* columns = (flags & ImGuiSeparatorFlags_SpanAllColumns) ? window->DC.CurrentColumns : NULL;
|
ImGuiOldColumns* columns = (flags & ImGuiSeparatorFlags_SpanAllColumns) ? window->DC.CurrentColumns : NULL;
|
||||||
if (columns)
|
if (columns)
|
||||||
PushColumnsBackground();
|
PushColumnsBackground();
|
||||||
|
|
||||||
@ -7907,19 +7907,19 @@ int ImGui::GetColumnsCount()
|
|||||||
return window->DC.CurrentColumns ? window->DC.CurrentColumns->Count : 1;
|
return window->DC.CurrentColumns ? window->DC.CurrentColumns->Count : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
float ImGui::GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm)
|
float ImGui::GetColumnOffsetFromNorm(const ImGuiOldColumns* columns, float offset_norm)
|
||||||
{
|
{
|
||||||
return offset_norm * (columns->OffMaxX - columns->OffMinX);
|
return offset_norm * (columns->OffMaxX - columns->OffMinX);
|
||||||
}
|
}
|
||||||
|
|
||||||
float ImGui::GetColumnNormFromOffset(const ImGuiColumns* columns, float offset)
|
float ImGui::GetColumnNormFromOffset(const ImGuiOldColumns* columns, float offset)
|
||||||
{
|
{
|
||||||
return offset / (columns->OffMaxX - columns->OffMinX);
|
return offset / (columns->OffMaxX - columns->OffMinX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const float COLUMNS_HIT_RECT_HALF_WIDTH = 4.0f;
|
static const float COLUMNS_HIT_RECT_HALF_WIDTH = 4.0f;
|
||||||
|
|
||||||
static float GetDraggedColumnOffset(ImGuiColumns* columns, int column_index)
|
static float GetDraggedColumnOffset(ImGuiOldColumns* columns, int column_index)
|
||||||
{
|
{
|
||||||
// Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing
|
// Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing
|
||||||
// window creates a feedback loop because we store normalized positions. So while dragging we enforce absolute positioning.
|
// window creates a feedback loop because we store normalized positions. So while dragging we enforce absolute positioning.
|
||||||
@ -7939,7 +7939,7 @@ static float GetDraggedColumnOffset(ImGuiColumns* columns, int column_index)
|
|||||||
float ImGui::GetColumnOffset(int column_index)
|
float ImGui::GetColumnOffset(int column_index)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (columns == NULL)
|
if (columns == NULL)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|
||||||
@ -7952,7 +7952,7 @@ float ImGui::GetColumnOffset(int column_index)
|
|||||||
return x_offset;
|
return x_offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
static float GetColumnWidthEx(ImGuiColumns* columns, int column_index, bool before_resize = false)
|
static float GetColumnWidthEx(ImGuiOldColumns* columns, int column_index, bool before_resize = false)
|
||||||
{
|
{
|
||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
column_index = columns->Current;
|
column_index = columns->Current;
|
||||||
@ -7969,7 +7969,7 @@ float ImGui::GetColumnWidth(int column_index)
|
|||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (columns == NULL)
|
if (columns == NULL)
|
||||||
return GetContentRegionAvail().x;
|
return GetContentRegionAvail().x;
|
||||||
|
|
||||||
@ -7982,7 +7982,7 @@ void ImGui::SetColumnOffset(int column_index, float offset)
|
|||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = g.CurrentWindow;
|
ImGuiWindow* window = g.CurrentWindow;
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
IM_ASSERT(columns != NULL);
|
IM_ASSERT(columns != NULL);
|
||||||
|
|
||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
@ -8003,7 +8003,7 @@ void ImGui::SetColumnOffset(int column_index, float offset)
|
|||||||
void ImGui::SetColumnWidth(int column_index, float width)
|
void ImGui::SetColumnWidth(int column_index, float width)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
IM_ASSERT(columns != NULL);
|
IM_ASSERT(columns != NULL);
|
||||||
|
|
||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
@ -8014,11 +8014,11 @@ void ImGui::SetColumnWidth(int column_index, float width)
|
|||||||
void ImGui::PushColumnClipRect(int column_index)
|
void ImGui::PushColumnClipRect(int column_index)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (column_index < 0)
|
if (column_index < 0)
|
||||||
column_index = columns->Current;
|
column_index = columns->Current;
|
||||||
|
|
||||||
ImGuiColumnData* column = &columns->Columns[column_index];
|
ImGuiOldColumnData* column = &columns->Columns[column_index];
|
||||||
PushClipRect(column->ClipRect.Min, column->ClipRect.Max, false);
|
PushClipRect(column->ClipRect.Min, column->ClipRect.Max, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -8026,7 +8026,7 @@ void ImGui::PushColumnClipRect(int column_index)
|
|||||||
void ImGui::PushColumnsBackground()
|
void ImGui::PushColumnsBackground()
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (columns->Count == 1)
|
if (columns->Count == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -8039,7 +8039,7 @@ void ImGui::PushColumnsBackground()
|
|||||||
void ImGui::PopColumnsBackground()
|
void ImGui::PopColumnsBackground()
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindowRead();
|
ImGuiWindow* window = GetCurrentWindowRead();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (columns->Count == 1)
|
if (columns->Count == 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -8048,15 +8048,15 @@ void ImGui::PopColumnsBackground()
|
|||||||
columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1);
|
columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiColumns* ImGui::FindOrCreateColumns(ImGuiWindow* window, ImGuiID id)
|
ImGuiOldColumns* ImGui::FindOrCreateColumns(ImGuiWindow* window, ImGuiID id)
|
||||||
{
|
{
|
||||||
// We have few columns per window so for now we don't need bother much with turning this into a faster lookup.
|
// We have few columns per window so for now we don't need bother much with turning this into a faster lookup.
|
||||||
for (int n = 0; n < window->ColumnsStorage.Size; n++)
|
for (int n = 0; n < window->ColumnsStorage.Size; n++)
|
||||||
if (window->ColumnsStorage[n].ID == id)
|
if (window->ColumnsStorage[n].ID == id)
|
||||||
return &window->ColumnsStorage[n];
|
return &window->ColumnsStorage[n];
|
||||||
|
|
||||||
window->ColumnsStorage.push_back(ImGuiColumns());
|
window->ColumnsStorage.push_back(ImGuiOldColumns());
|
||||||
ImGuiColumns* columns = &window->ColumnsStorage.back();
|
ImGuiOldColumns* columns = &window->ColumnsStorage.back();
|
||||||
columns->ID = id;
|
columns->ID = id;
|
||||||
return columns;
|
return columns;
|
||||||
}
|
}
|
||||||
@ -8084,7 +8084,7 @@ void ImGui::BeginColumns(const char* str_id, int columns_count, ImGuiOldColumnFl
|
|||||||
|
|
||||||
// Acquire storage for the columns set
|
// Acquire storage for the columns set
|
||||||
ImGuiID id = GetColumnsID(str_id, columns_count);
|
ImGuiID id = GetColumnsID(str_id, columns_count);
|
||||||
ImGuiColumns* columns = FindOrCreateColumns(window, id);
|
ImGuiOldColumns* columns = FindOrCreateColumns(window, id);
|
||||||
IM_ASSERT(columns->ID == id);
|
IM_ASSERT(columns->ID == id);
|
||||||
columns->Current = 0;
|
columns->Current = 0;
|
||||||
columns->Count = columns_count;
|
columns->Count = columns_count;
|
||||||
@ -8118,7 +8118,7 @@ void ImGui::BeginColumns(const char* str_id, int columns_count, ImGuiOldColumnFl
|
|||||||
columns->Columns.reserve(columns_count + 1);
|
columns->Columns.reserve(columns_count + 1);
|
||||||
for (int n = 0; n < columns_count + 1; n++)
|
for (int n = 0; n < columns_count + 1; n++)
|
||||||
{
|
{
|
||||||
ImGuiColumnData column;
|
ImGuiOldColumnData column;
|
||||||
column.OffsetNorm = n / (float)columns_count;
|
column.OffsetNorm = n / (float)columns_count;
|
||||||
columns->Columns.push_back(column);
|
columns->Columns.push_back(column);
|
||||||
}
|
}
|
||||||
@ -8127,7 +8127,7 @@ void ImGui::BeginColumns(const char* str_id, int columns_count, ImGuiOldColumnFl
|
|||||||
for (int n = 0; n < columns_count; n++)
|
for (int n = 0; n < columns_count; n++)
|
||||||
{
|
{
|
||||||
// Compute clipping rectangle
|
// Compute clipping rectangle
|
||||||
ImGuiColumnData* column = &columns->Columns[n];
|
ImGuiOldColumnData* column = &columns->Columns[n];
|
||||||
float clip_x1 = IM_ROUND(window->Pos.x + GetColumnOffset(n));
|
float clip_x1 = IM_ROUND(window->Pos.x + GetColumnOffset(n));
|
||||||
float clip_x2 = IM_ROUND(window->Pos.x + GetColumnOffset(n + 1) - 1.0f);
|
float clip_x2 = IM_ROUND(window->Pos.x + GetColumnOffset(n + 1) - 1.0f);
|
||||||
column->ClipRect = ImRect(clip_x1, -FLT_MAX, clip_x2, +FLT_MAX);
|
column->ClipRect = ImRect(clip_x1, -FLT_MAX, clip_x2, +FLT_MAX);
|
||||||
@ -8158,7 +8158,7 @@ void ImGui::NextColumn()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
|
|
||||||
if (columns->Count == 1)
|
if (columns->Count == 1)
|
||||||
{
|
{
|
||||||
@ -8175,7 +8175,7 @@ void ImGui::NextColumn()
|
|||||||
|
|
||||||
// Optimization: avoid PopClipRect() + SetCurrentChannel() + PushClipRect()
|
// Optimization: avoid PopClipRect() + SetCurrentChannel() + PushClipRect()
|
||||||
// (which would needlessly attempt to update commands in the wrong channel, then pop or overwrite them),
|
// (which would needlessly attempt to update commands in the wrong channel, then pop or overwrite them),
|
||||||
ImGuiColumnData* column = &columns->Columns[columns->Current];
|
ImGuiOldColumnData* column = &columns->Columns[columns->Current];
|
||||||
SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
|
SetWindowClipRectBeforeSetChannel(window, column->ClipRect);
|
||||||
columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1);
|
columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1);
|
||||||
|
|
||||||
@ -8210,7 +8210,7 @@ void ImGui::EndColumns()
|
|||||||
{
|
{
|
||||||
ImGuiContext& g = *GImGui;
|
ImGuiContext& g = *GImGui;
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
IM_ASSERT(columns != NULL);
|
IM_ASSERT(columns != NULL);
|
||||||
|
|
||||||
PopItemWidth();
|
PopItemWidth();
|
||||||
@ -8237,7 +8237,7 @@ void ImGui::EndColumns()
|
|||||||
int dragging_column = -1;
|
int dragging_column = -1;
|
||||||
for (int n = 1; n < columns->Count; n++)
|
for (int n = 1; n < columns->Count; n++)
|
||||||
{
|
{
|
||||||
ImGuiColumnData* column = &columns->Columns[n];
|
ImGuiOldColumnData* column = &columns->Columns[n];
|
||||||
float x = window->Pos.x + GetColumnOffset(n);
|
float x = window->Pos.x + GetColumnOffset(n);
|
||||||
const ImGuiID column_id = columns->ID + ImGuiID(n);
|
const ImGuiID column_id = columns->ID + ImGuiID(n);
|
||||||
const float column_hit_hw = COLUMNS_HIT_RECT_HALF_WIDTH;
|
const float column_hit_hw = COLUMNS_HIT_RECT_HALF_WIDTH;
|
||||||
@ -8289,7 +8289,7 @@ void ImGui::Columns(int columns_count, const char* id, bool border)
|
|||||||
|
|
||||||
ImGuiOldColumnFlags flags = (border ? 0 : ImGuiOldColumnFlags_NoBorder);
|
ImGuiOldColumnFlags flags = (border ? 0 : ImGuiOldColumnFlags_NoBorder);
|
||||||
//flags |= ImGuiOldColumnFlags_NoPreserveWidths; // NB: Legacy behavior
|
//flags |= ImGuiOldColumnFlags_NoPreserveWidths; // NB: Legacy behavior
|
||||||
ImGuiColumns* columns = window->DC.CurrentColumns;
|
ImGuiOldColumns* columns = window->DC.CurrentColumns;
|
||||||
if (columns != NULL && columns->Count == columns_count && columns->Flags == flags)
|
if (columns != NULL && columns->Count == columns_count && columns->Flags == flags)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user