diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-16 09:51:00 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-16 09:51:00 -0400 |
| commit | 66ebed74456f76277597b3b07f3e67cc45388ece (patch) | |
| tree | 5e7d0c429867a294bca78269124954ce0a4823fc /src/vendor-imgui-ext.cpp | |
| parent | c1ad6ceeb301bc1f2a4f850e08587748a6d9107b (diff) | |
pke: update FontRender text (editor: for ui-box)
Diffstat (limited to 'src/vendor-imgui-ext.cpp')
| -rw-r--r-- | src/vendor-imgui-ext.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/vendor-imgui-ext.cpp b/src/vendor-imgui-ext.cpp new file mode 100644 index 0000000..743261b --- /dev/null +++ b/src/vendor-imgui-ext.cpp @@ -0,0 +1,42 @@ + +#include "vendor-imgui-ext.hpp" +#include "imgui_internal.h" + +// copy-pasted +// TODO submit PR so this isn't necessary +template<typename T> +bool ImGui::CheckboxFlagsT(const char* label, T* flags, T flags_value) +{ + bool all_on = (*flags & flags_value) == flags_value; + bool any_on = (*flags & flags_value) != 0; + bool pressed; + if (!all_on && any_on) + { + ImGuiContext& g = *GImGui; + g.NextItemData.ItemFlags |= ImGuiItemFlags_MixedValue; + pressed = Checkbox(label, &all_on); + } + else + { + pressed = Checkbox(label, &all_on); + + } + if (pressed) + { + if (all_on) + *flags |= flags_value; + else + *flags &= ~flags_value; + } + return pressed; +} + +bool ImGui::CheckboxFlags(const char* label, long int* flags, long int flags_value) +{ + return CheckboxFlagsT(label, flags, flags_value); +} + +bool ImGui::CheckboxFlags(const char* label, unsigned long int* flags, unsigned long int flags_value) +{ + return CheckboxFlagsT(label, flags, flags_value); +} |
