summaryrefslogtreecommitdiff
path: root/src/vendor-imgui-ext.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-06-16 09:51:00 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-06-16 09:51:00 -0400
commit66ebed74456f76277597b3b07f3e67cc45388ece (patch)
tree5e7d0c429867a294bca78269124954ce0a4823fc /src/vendor-imgui-ext.cpp
parentc1ad6ceeb301bc1f2a4f850e08587748a6d9107b (diff)
pke: update FontRender text (editor: for ui-box)
Diffstat (limited to 'src/vendor-imgui-ext.cpp')
-rw-r--r--src/vendor-imgui-ext.cpp42
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);
+}