diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2024-01-15 12:56:25 +0100 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-01-15 12:56:25 +0100 | 
| commit | e850be48828ce9cf4767b88707495257c98e88b0 (patch) | |
| tree | 9428226b825611a0b1ad8920dc3b12e5995f11bb /editor/inspectors.cpp | |
| parent | 9a231ffd8bd35108092d218c834544657bfb5986 (diff) | |
b
Diffstat (limited to 'editor/inspectors.cpp')
| -rw-r--r-- | editor/inspectors.cpp | 36 | 
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 | 
