summaryrefslogtreecommitdiffhomepage
path: root/editor/imgui-raii.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/imgui-raii.cpp')
-rw-r--r--editor/imgui-raii.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/editor/imgui-raii.cpp b/editor/imgui-raii.cpp
index e499f21c..c348eea6 100644
--- a/editor/imgui-raii.cpp
+++ b/editor/imgui-raii.cpp
@@ -1,4 +1,5 @@
#include "imgui-raii.hpp"
+#include "compat/assert.hpp"
#include <Corrade/Containers/StringView.h>
#include <Magnum/Magnum.h>
#include <Magnum/Math/Color.h>
@@ -23,7 +24,10 @@ font_saver::font_saver(float size) : font_saver{*ImGui::GetCurrentContext(), siz
style_saver::style_saver() : style{ImGui::GetStyle()} {}
style_saver::~style_saver() { ImGui::GetStyle() = style; }
-void text(StringView str, ImGuiTextFlags flags) { ImGui::TextEx(str.data(), str.data() + str.size(), flags); }
+void text(StringView str, ImGuiTextFlags flags)
+{
+ ImGui::TextEx(str.data(), str.data() + str.size(), flags);
+}
raii_wrapper::raii_wrapper(raii_wrapper::F fn) : dtor{fn} {}
raii_wrapper::~raii_wrapper() { if (dtor) dtor(); }
@@ -61,6 +65,7 @@ raii_wrapper push_style_var(ImGuiStyleVar_ var, Vector2 value)
raii_wrapper tree_node(Containers::StringView name, ImGuiTreeNodeFlags flags)
{
+ fm_assert(name.flags() & StringViewFlag::NullTerminated);
if (ImGui::TreeNodeEx(name.data(), flags))
return {&ImGui::TreePop};
else
@@ -75,6 +80,8 @@ raii_wrapper begin_disabled(bool is_disabled)
raii_wrapper begin_combo(StringView name, StringView preview, ImGuiComboFlags flags)
{
+ fm_assert(name.flags() & StringViewFlag::NullTerminated);
+ fm_assert(preview.flags() & StringViewFlag::NullTerminated);
if (ImGui::BeginCombo(name.data(), preview.data(), flags))
return {&ImGui::EndCombo};
else
@@ -83,6 +90,7 @@ raii_wrapper begin_combo(StringView name, StringView preview, ImGuiComboFlags fl
raii_wrapper begin_popup(StringView name, ImGuiWindowFlags flags)
{
+ fm_assert(name.flags() & StringViewFlag::NullTerminated);
if (ImGui::BeginPopup(name.data(), flags))
return {&ImGui::EndPopup};
else
@@ -91,15 +99,17 @@ raii_wrapper begin_popup(StringView name, ImGuiWindowFlags flags)
raii_wrapper begin_list_box(Containers::StringView name, ImVec2 size)
{
+ fm_assert(name.flags() & StringViewFlag::NullTerminated);
if (ImGui::BeginListBox(name.data(), size))
return {&ImGui::EndListBox};
else
return {};
}
-raii_wrapper begin_table(const char* id, int ncols, ImGuiTableFlags flags, const ImVec2& outer_size, float inner_width)
+raii_wrapper begin_table(StringView id, int ncols, ImGuiTableFlags flags, const ImVec2& outer_size, float inner_width)
{
- if (ImGui::BeginTable(id, ncols, flags, outer_size, inner_width))
+ fm_assert(id.flags() & StringViewFlag::NullTerminated);
+ if (ImGui::BeginTable(id.data(), ncols, flags, outer_size, inner_width))
return {&ImGui::EndTable};
else
return {};