mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-26 05:27:01 +00:00
Added PushId() GetId() variants that takes string range to avoid user making unnecessary copies
This commit is contained in:
parent
750b6c9224
commit
a143e2e772
18
imgui.cpp
18
imgui.cpp
@ -1275,7 +1275,7 @@ public:
|
|||||||
ImGuiWindow(const char* name);
|
ImGuiWindow(const char* name);
|
||||||
~ImGuiWindow();
|
~ImGuiWindow();
|
||||||
|
|
||||||
ImGuiID GetID(const char* str);
|
ImGuiID GetID(const char* str, const char* str_end = NULL);
|
||||||
ImGuiID GetID(const void* ptr);
|
ImGuiID GetID(const void* ptr);
|
||||||
|
|
||||||
bool FocusItemRegister(bool is_active, bool tab_stop = true); // Return true if focus is requested
|
bool FocusItemRegister(bool is_active, bool tab_stop = true); // Return true if focus is requested
|
||||||
@ -1621,10 +1621,10 @@ ImGuiWindow::~ImGuiWindow()
|
|||||||
Name = NULL;
|
Name = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGuiID ImGuiWindow::GetID(const char* str)
|
ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
|
||||||
{
|
{
|
||||||
ImGuiID seed = IDStack.back();
|
ImGuiID seed = IDStack.back();
|
||||||
const ImGuiID id = ImHash(str, 0, seed);
|
const ImGuiID id = ImHash(str, str_end ? str_end - str : 0, seed);
|
||||||
RegisterAliveId(id);
|
RegisterAliveId(id);
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -4948,6 +4948,12 @@ void ImGui::PushID(const char* str_id)
|
|||||||
window->IDStack.push_back(window->GetID(str_id));
|
window->IDStack.push_back(window->GetID(str_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ImGui::PushID(const char* str_id_begin, const char* str_id_end)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
window->IDStack.push_back(window->GetID(str_id_begin, str_id_end));
|
||||||
|
}
|
||||||
|
|
||||||
void ImGui::PushID(const void* ptr_id)
|
void ImGui::PushID(const void* ptr_id)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
@ -4973,6 +4979,12 @@ ImGuiID ImGui::GetID(const char* str_id)
|
|||||||
return window->GetID(str_id);
|
return window->GetID(str_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end)
|
||||||
|
{
|
||||||
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
return window->GetID(str_id_begin, str_id_end);
|
||||||
|
}
|
||||||
|
|
||||||
ImGuiID ImGui::GetID(const void* ptr_id)
|
ImGuiID ImGui::GetID(const void* ptr_id)
|
||||||
{
|
{
|
||||||
ImGuiWindow* window = GetCurrentWindow();
|
ImGuiWindow* window = GetCurrentWindow();
|
||||||
|
2
imgui.h
2
imgui.h
@ -260,10 +260,12 @@ namespace ImGui
|
|||||||
// If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them
|
// If you are creating widgets in a loop you most likely want to push a unique identifier so ImGui can differentiate them
|
||||||
// You can also use "##extra" within your widget name to distinguish them from each others (see 'Programmer Guide')
|
// You can also use "##extra" within your widget name to distinguish them from each others (see 'Programmer Guide')
|
||||||
IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack!
|
IMGUI_API void PushID(const char* str_id); // push identifier into the ID stack. IDs are hash of the *entire* stack!
|
||||||
|
IMGUI_API void PushID(const char* str_id_begin, const char* str_id_end);
|
||||||
IMGUI_API void PushID(const void* ptr_id);
|
IMGUI_API void PushID(const void* ptr_id);
|
||||||
IMGUI_API void PushID(const int int_id);
|
IMGUI_API void PushID(const int int_id);
|
||||||
IMGUI_API void PopID();
|
IMGUI_API void PopID();
|
||||||
IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). useful if you want to query into ImGuiStorage yourself. otherwise rarely needed
|
IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). useful if you want to query into ImGuiStorage yourself. otherwise rarely needed
|
||||||
|
IMGUI_API ImGuiID GetID(const char* str_id_begin, const char* str_id_end);
|
||||||
IMGUI_API ImGuiID GetID(const void* ptr_id);
|
IMGUI_API ImGuiID GetID(const void* ptr_id);
|
||||||
|
|
||||||
// Widgets
|
// Widgets
|
||||||
|
Loading…
Reference in New Issue
Block a user