|
@@ -3782,45 +3782,6 @@ ImGuiWindow::~ImGuiWindow()
|
|
|
ColumnsStorage.clear_destruct();
|
|
|
}
|
|
|
|
|
|
-ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
|
|
|
-{
|
|
|
- ImGuiID seed = IDStack.back();
|
|
|
- ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed);
|
|
|
- ImGuiContext& g = *Ctx;
|
|
|
- if (g.DebugHookIdInfo == id)
|
|
|
- ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end);
|
|
|
- return id;
|
|
|
-}
|
|
|
-
|
|
|
-ImGuiID ImGuiWindow::GetID(const void* ptr)
|
|
|
-{
|
|
|
- ImGuiID seed = IDStack.back();
|
|
|
- ImGuiID id = ImHashData(&ptr, sizeof(void*), seed);
|
|
|
- ImGuiContext& g = *Ctx;
|
|
|
- if (g.DebugHookIdInfo == id)
|
|
|
- ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL);
|
|
|
- return id;
|
|
|
-}
|
|
|
-
|
|
|
-ImGuiID ImGuiWindow::GetID(int n)
|
|
|
-{
|
|
|
- ImGuiID seed = IDStack.back();
|
|
|
- ImGuiID id = ImHashData(&n, sizeof(n), seed);
|
|
|
- ImGuiContext& g = *Ctx;
|
|
|
- if (g.DebugHookIdInfo == id)
|
|
|
- ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL);
|
|
|
- return id;
|
|
|
-}
|
|
|
-
|
|
|
-// This is only used in rare/specific situations to manufacture an ID out of nowhere.
|
|
|
-ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs)
|
|
|
-{
|
|
|
- ImGuiID seed = IDStack.back();
|
|
|
- ImRect r_rel = ImGui::WindowRectAbsToRel(this, r_abs);
|
|
|
- ImGuiID id = ImHashData(&r_rel, sizeof(r_rel), seed);
|
|
|
- return id;
|
|
|
-}
|
|
|
-
|
|
|
static void SetCurrentWindow(ImGuiWindow* window)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|
|
@@ -8000,6 +7961,47 @@ bool ImGui::IsRectVisible(const ImVec2& rect_min, const ImVec2& rect_max)
|
|
|
// [SECTION] ID STACK
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
+// This is one of the very rare legacy case where we use ImGuiWindow methods,
|
|
|
+// it should ideally be flattened at some point but it's been used a lots by widgets.
|
|
|
+ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
|
|
|
+{
|
|
|
+ ImGuiID seed = IDStack.back();
|
|
|
+ ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed);
|
|
|
+ ImGuiContext& g = *Ctx;
|
|
|
+ if (g.DebugHookIdInfo == id)
|
|
|
+ ImGui::DebugHookIdInfo(id, ImGuiDataType_String, str, str_end);
|
|
|
+ return id;
|
|
|
+}
|
|
|
+
|
|
|
+ImGuiID ImGuiWindow::GetID(const void* ptr)
|
|
|
+{
|
|
|
+ ImGuiID seed = IDStack.back();
|
|
|
+ ImGuiID id = ImHashData(&ptr, sizeof(void*), seed);
|
|
|
+ ImGuiContext& g = *Ctx;
|
|
|
+ if (g.DebugHookIdInfo == id)
|
|
|
+ ImGui::DebugHookIdInfo(id, ImGuiDataType_Pointer, ptr, NULL);
|
|
|
+ return id;
|
|
|
+}
|
|
|
+
|
|
|
+ImGuiID ImGuiWindow::GetID(int n)
|
|
|
+{
|
|
|
+ ImGuiID seed = IDStack.back();
|
|
|
+ ImGuiID id = ImHashData(&n, sizeof(n), seed);
|
|
|
+ ImGuiContext& g = *Ctx;
|
|
|
+ if (g.DebugHookIdInfo == id)
|
|
|
+ ImGui::DebugHookIdInfo(id, ImGuiDataType_S32, (void*)(intptr_t)n, NULL);
|
|
|
+ return id;
|
|
|
+}
|
|
|
+
|
|
|
+// This is only used in rare/specific situations to manufacture an ID out of nowhere.
|
|
|
+ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs)
|
|
|
+{
|
|
|
+ ImGuiID seed = IDStack.back();
|
|
|
+ ImRect r_rel = ImGui::WindowRectAbsToRel(this, r_abs);
|
|
|
+ ImGuiID id = ImHashData(&r_rel, sizeof(r_rel), seed);
|
|
|
+ return id;
|
|
|
+}
|
|
|
+
|
|
|
void ImGui::PushID(const char* str_id)
|
|
|
{
|
|
|
ImGuiContext& g = *GImGui;
|