Minor bits, placeholder aimed at facilitating merging of Tables branch into Docking
diff --git a/imgui.cpp b/imgui.cpp
index c81ff31..5d58f2f 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -3875,6 +3875,21 @@
ini_handler.WriteAllFn = WindowSettingsHandler_WriteAll;
g.SettingsHandlers.push_back(ini_handler);
}
+
+#if 0 // FIXME-WIP: This is a placeholder to facilitate merging of Tables branch into multiple branches.
+
+ // Add .ini handle for ImGuiTable type
+ {
+ ImGuiSettingsHandler ini_handler;
+ ini_handler.TypeName = "Table";
+ ini_handler.TypeHash = ImHashStr("Table");
+ ini_handler.ReadOpenFn = TableSettingsHandler_ReadOpen;
+ ini_handler.ReadLineFn = TableSettingsHandler_ReadLine;
+ ini_handler.WriteAllFn = TableSettingsHandler_WriteAll;
+ g.SettingsHandlers.push_back(ini_handler);
+ }
+
+#endif
g.Initialized = true;
}
@@ -9806,12 +9821,18 @@
return;
}
- // State
+ // Debugging enums
enum { WRT_OuterRect, WRT_OuterRectClipped, WRT_InnerRect, WRT_InnerClipRect, WRT_WorkRect, WRT_Content, WRT_ContentRegionRect, WRT_Count }; // Windows Rect Type
const char* wrt_rects_names[WRT_Count] = { "OuterRect", "OuterRectClipped", "InnerRect", "InnerClipRect", "WorkRect", "Content", "ContentRegionRect" };
+ enum { TRT_OuterRect, TRT_WorkRect, TRT_HostClipRect, TRT_InnerClipRect, TRT_BackgroundClipRect, TRT_ColumnsRect, TRT_ColumnsClipRect, TRT_ColumnsContentHeadersUsed, TRT_ColumnsContentHeadersDesired, TRT_ColumnsContentRowsFrozen, TRT_ColumnsContentRowsUnfrozen, TRT_Count }; // Tables Rect Type
+ const char* trt_rects_names[TRT_Count] = { "OuterRect", "WorkRect", "HostClipRect", "InnerClipRect", "BackgroundClipRect", "ColumnsRect", "ColumnsClipRect", "ColumnsContentHeadersUsed", "ColumnsContentHeadersDesired", "ColumnsContentRowsFrozen", "ColumnsContentRowsUnfrozen" };
+
+ // State
static bool show_windows_rects = false;
static int show_windows_rect_type = WRT_WorkRect;
static bool show_windows_begin_order = false;
+ static bool show_tables_rects = false;
+ static int show_tables_rect_type = TRT_WorkRect;
static bool show_drawcmd_details = true;
// Basic info
@@ -9825,11 +9846,12 @@
ImGui::Separator();
// Helper functions to display common structures:
- // - NodeDrawList
- // - NodeColumns
- // - NodeWindow
- // - NodeWindows
- // - NodeTabBar
+ // - NodeDrawList()
+ // - NodeColumns()
+ // - NodeWindow()
+ // - NodeWindows()
+ // - NodeTabBar()
+ // - NodeStorage()
struct Funcs
{
static ImRect GetWindowRect(ImGuiWindow* window, int rect_type)
@@ -10057,6 +10079,7 @@
ImGui::TreePop();
}
+ // Details for Popups
if (ImGui::TreeNode("Popups", "Popups (%d)", g.OpenPopupStack.Size))
{
for (int i = 0; i < g.OpenPopupStack.Size; i++)
@@ -10067,6 +10090,7 @@
ImGui::TreePop();
}
+ // Details for TabBars
if (ImGui::TreeNode("TabBars", "Tab Bars (%d)", g.TabBars.GetSize()))
{
for (int n = 0; n < g.TabBars.GetSize(); n++)
@@ -10074,13 +10098,10 @@
ImGui::TreePop();
}
-#if 0
- if (ImGui::TreeNode("Docking"))
- {
- ImGui::TreePop();
- }
-#endif
-
+ // Details for Tables
+ IM_UNUSED(trt_rects_names);
+ IM_UNUSED(show_tables_rects);
+ IM_UNUSED(show_tables_rect_type);
#if 0
if (ImGui::TreeNode("Tables", "Tables (%d)", g.Tables.GetSize()))
{
@@ -10088,6 +10109,15 @@
}
#endif
+ // Details for Docking
+#if 0
+ if (ImGui::TreeNode("Docking"))
+ {
+ ImGui::TreePop();
+ }
+#endif
+
+ // Misc Details
if (ImGui::TreeNode("Internal state"))
{
const char* input_source_names[] = { "None", "Mouse", "Nav", "NavKeyboard", "NavGamepad" }; IM_ASSERT(IM_ARRAYSIZE(input_source_names) == ImGuiInputSource_COUNT);
@@ -10108,6 +10138,7 @@
ImGui::TreePop();
}
+ // Tools
if (ImGui::TreeNode("Tools"))
{
// The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted.
@@ -10120,7 +10151,7 @@
ImGui::Checkbox("Show windows rectangles", &show_windows_rects);
ImGui::SameLine();
ImGui::SetNextItemWidth(ImGui::GetFontSize() * 12);
- show_windows_rects |= ImGui::Combo("##show_windows_rect_type", &show_windows_rect_type, wrt_rects_names, WRT_Count);
+ show_windows_rects |= ImGui::Combo("##show_windows_rect_type", &show_windows_rect_type, wrt_rects_names, WRT_Count, WRT_Count);
if (show_windows_rects && g.NavWindow)
{
ImGui::BulletText("'%s':", g.NavWindow->Name);
@@ -10136,7 +10167,7 @@
ImGui::TreePop();
}
- // Tool: Display windows Rectangles and Begin Order
+ // Overlay: Display windows Rectangles and Begin Order
if (show_windows_rects || show_windows_begin_order)
{
for (int n = 0; n < g.Windows.Size; n++)
@@ -10160,6 +10191,27 @@
}
}
}
+
+ // FIXME-WIP: This is a placeholder to facilitate merging of Tables branch into multiple branches.
+#if 0
+ // Overlay: Display Tables Rectangles
+ if (show_tables_rects)
+ {
+ for (int table_n = 0; table_n < g.Tables.GetSize(); table_n++)
+ {
+ ImGuiTable* table = g.Tables.GetByIndex(table_n);
+ }
+ }
+#endif
+
+ // FIXME-WIP: This is a placeholder to facilitate merging of Docking branch into multiple branches.
+#if 0
+ // Overlay: Display Docking info
+ if (show_docking_nodes && g.IO.KeyCtrl)
+ {
+ }
+#endif
+
ImGui::End();
}
diff --git a/imgui_draw.cpp b/imgui_draw.cpp
index 58acacf..5a8477f 100644
--- a/imgui_draw.cpp
+++ b/imgui_draw.cpp
@@ -1315,7 +1315,7 @@
// Merge previous channel last draw command with current channel first draw command if matching.
last_cmd->ElemCount += ch._CmdBuffer[0].ElemCount;
idx_offset += ch._CmdBuffer[0].ElemCount;
- ch._CmdBuffer.erase(ch._CmdBuffer.Data);
+ ch._CmdBuffer.erase(ch._CmdBuffer.Data); // FIXME-OPT: Improve for multiple merges.
}
if (ch._CmdBuffer.Size > 0)
last_cmd = &ch._CmdBuffer.back();