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.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/editor/imgui-raii.cpp b/editor/imgui-raii.cpp
index 05e9edab..458de973 100644
--- a/editor/imgui-raii.cpp
+++ b/editor/imgui-raii.cpp
@@ -28,6 +28,11 @@ void text(StringView str, ImGuiTextFlags flags) { ImGui::TextEx(str.data(), str.
raii_wrapper::raii_wrapper(raii_wrapper::F fn) : dtor{fn} {}
raii_wrapper::~raii_wrapper() { if (dtor) dtor(); }
raii_wrapper::raii_wrapper(raii_wrapper&& other) noexcept : dtor{other.dtor} { other.dtor = nullptr; }
+raii_wrapper& raii_wrapper::operator=(raii_wrapper&& other) noexcept
+{
+ dtor = std::exchange(other.dtor, nullptr);
+ return *this;
+}
raii_wrapper::operator bool() const noexcept { return dtor != nullptr; }
raii_wrapper push_style_color(ImGuiCol_ var, const Color4& value)
@@ -62,6 +67,12 @@ raii_wrapper tree_node(Containers::StringView name, ImGuiTreeNodeFlags flags)
return {};
}
+raii_wrapper begin_disabled(bool is_disabled)
+{
+ ImGui::BeginDisabled(is_disabled);
+ return {&ImGui::EndDisabled};
+}
+
raii_wrapper begin_list_box(Containers::StringView name, ImVec2 size)
{
if (ImGui::BeginListBox(name.data(), size))