summaryrefslogtreecommitdiffhomepage
path: root/editor/inspectors.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'editor/inspectors.cpp')
-rw-r--r--editor/inspectors.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/editor/inspectors.cpp b/editor/inspectors.cpp
new file mode 100644
index 00000000..d91bc70f
--- /dev/null
+++ b/editor/inspectors.cpp
@@ -0,0 +1,36 @@
+#include "app.hpp"
+#include <Corrade/Containers/GrowableArray.h>
+
+namespace floormat {
+
+namespace {
+constexpr inline size_t max_inspectors = 2;
+} // namespace
+
+void app::reserve_inspector_array()
+{
+ arrayReserve(inspectors, max_inspectors);
+}
+
+void app::add_inspector(popup_target p)
+{
+ if (inspectors.size() >= max_inspectors)
+ arrayRemove(inspectors, 1 + inspectors.size() - max_inspectors);
+
+ arrayAppend(inspectors, p);
+}
+
+void app::erase_inspector(size_t index, ptrdiff_t count)
+{
+ fm_assert(count >= 0);
+ fm_assert(index < inspectors.size());
+ fm_assert(index + (size_t)count <= inspectors.size());
+ arrayRemove(inspectors, index, (size_t)count);
+}
+
+void app::kill_inspectors()
+{
+ arrayResize(inspectors, 0);
+}
+
+} // namespace floormat