WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 28ba54a

Browse files
committed
Internals: add AddSettingsHandler(), RemoveSettingsHandler().
1 parent fd06ed8 commit 28ba54a

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

imgui.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4479,11 +4479,11 @@ void ImGui::Initialize(ImGuiContext* context)
44794479
ini_handler.ReadLineFn = WindowSettingsHandler_ReadLine;
44804480
ini_handler.ApplyAllFn = WindowSettingsHandler_ApplyAll;
44814481
ini_handler.WriteAllFn = WindowSettingsHandler_WriteAll;
4482-
g.SettingsHandlers.push_back(ini_handler);
4482+
AddSettingsHandler(&ini_handler);
44834483
}
44844484

44854485
// Add .ini handle for ImGuiTable type
4486-
TableSettingsInstallHandler(context);
4486+
TableSettingsAddSettingsHandler();
44874487

44884488
// Create default viewport
44894489
ImGuiViewportP* viewport = IM_NEW(ImGuiViewportP)();
@@ -11618,6 +11618,20 @@ ImGuiWindowSettings* ImGui::FindOrCreateWindowSettings(const char* name)
1161811618
return CreateNewWindowSettings(name);
1161911619
}
1162011620

11621+
void ImGui::AddSettingsHandler(const ImGuiSettingsHandler* handler)
11622+
{
11623+
ImGuiContext& g = *GImGui;
11624+
IM_ASSERT(FindSettingsHandler(handler->TypeName) == NULL);
11625+
g.SettingsHandlers.push_back(*handler);
11626+
}
11627+
11628+
void ImGui::RemoveSettingsHandler(const char* type_name)
11629+
{
11630+
ImGuiContext& g = *GImGui;
11631+
if (ImGuiSettingsHandler* handler = FindSettingsHandler(type_name))
11632+
g.SettingsHandlers.erase(handler);
11633+
}
11634+
1162111635
ImGuiSettingsHandler* ImGui::FindSettingsHandler(const char* type_name)
1162211636
{
1162311637
ImGuiContext& g = *GImGui;

imgui.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ Index of this file:
6565
// Version
6666
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens)
6767
#define IMGUI_VERSION "1.88 WIP"
68-
#define IMGUI_VERSION_NUM 18709
68+
#define IMGUI_VERSION_NUM 18710
6969
#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx))
7070
#define IMGUI_HAS_TABLE
7171

imgui_internal.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2541,6 +2541,8 @@ namespace ImGui
25412541
IMGUI_API ImGuiWindowSettings* CreateNewWindowSettings(const char* name);
25422542
IMGUI_API ImGuiWindowSettings* FindWindowSettings(ImGuiID id);
25432543
IMGUI_API ImGuiWindowSettings* FindOrCreateWindowSettings(const char* name);
2544+
IMGUI_API void AddSettingsHandler(const ImGuiSettingsHandler* handler);
2545+
IMGUI_API void RemoveSettingsHandler(const char* type_name);
25442546
IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name);
25452547

25462548
// Scrolling
@@ -2744,7 +2746,7 @@ namespace ImGui
27442746
IMGUI_API void TableSaveSettings(ImGuiTable* table);
27452747
IMGUI_API void TableResetSettings(ImGuiTable* table);
27462748
IMGUI_API ImGuiTableSettings* TableGetBoundSettings(ImGuiTable* table);
2747-
IMGUI_API void TableSettingsInstallHandler(ImGuiContext* context);
2749+
IMGUI_API void TableSettingsAddSettingsHandler();
27482750
IMGUI_API ImGuiTableSettings* TableSettingsCreate(ImGuiID id, int columns_count);
27492751
IMGUI_API ImGuiTableSettings* TableSettingsFindByID(ImGuiID id);
27502752

imgui_tables.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3433,9 +3433,8 @@ static void TableSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandle
34333433
}
34343434
}
34353435

3436-
void ImGui::TableSettingsInstallHandler(ImGuiContext* context)
3436+
void ImGui::TableSettingsAddSettingsHandler()
34373437
{
3438-
ImGuiContext& g = *context;
34393438
ImGuiSettingsHandler ini_handler;
34403439
ini_handler.TypeName = "Table";
34413440
ini_handler.TypeHash = ImHashStr("Table");
@@ -3444,7 +3443,7 @@ void ImGui::TableSettingsInstallHandler(ImGuiContext* context)
34443443
ini_handler.ReadLineFn = TableSettingsHandler_ReadLine;
34453444
ini_handler.ApplyAllFn = TableSettingsHandler_ApplyAll;
34463445
ini_handler.WriteAllFn = TableSettingsHandler_WriteAll;
3447-
g.SettingsHandlers.push_back(ini_handler);
3446+
AddSettingsHandler(&ini_handler);
34483447
}
34493448

34503449
//-------------------------------------------------------------------------

0 commit comments

Comments
 (0)