From ecacc4e197eb8da6c311dad6e37330bcbbfef86e Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Thu, 23 Feb 2023 17:22:32 +0100 Subject: wip --- editor/inspect.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'editor/inspect.cpp') diff --git a/editor/inspect.cpp b/editor/inspect.cpp index 48e4c708..ef06671a 100644 --- a/editor/inspect.cpp +++ b/editor/inspect.cpp @@ -11,11 +11,11 @@ #include #include -namespace floormat { +namespace floormat::entities { namespace { -using entities::erased_constraints::is_magnum_vector; +using erased_constraints::is_magnum_vector; String label_left(StringView label) { @@ -46,7 +46,8 @@ template constexpr bool eqv(const Math::Vector& template void do_inspect_field(void* datum, const erased_accessor& accessor, field_repr repr) { - fm_assert(accessor.check_field_name()); + fm_assert(accessor.check_field_type()); + bool should_disable; switch (accessor.is_enabled(datum)) @@ -64,7 +65,9 @@ template void do_inspect_field(void* datum, const erased_accessor& a accessor.read_fun(datum, accessor.reader, &value); auto orig = value; - if constexpr (!is_magnum_vector) + if constexpr(std::is_same_v) + ret = ImGui::Checkbox(label.data(), &value); + else if constexpr (!is_magnum_vector) { auto [min, max] = accessor.get_range(datum).convert(); constexpr auto igdt = IGDT; @@ -105,13 +108,15 @@ template void do_inspect_field(void* datum, const erased_accessor& a } // namespace -#define MAKE_SPEC(type, repr) \ - template<> void inspect_field(void* datum, const erased_accessor& accessor) { \ +#define MAKE_SPEC(type, repr) \ + template<> \ + void inspect_field(void* datum, const erased_accessor& accessor) { \ do_inspect_field(datum, accessor, (repr)); \ } #define MAKE_SPEC2(type, repr) \ - template<> void inspect_field>(void* datum, const erased_accessor& accessor) { \ + template<> \ + void inspect_field>(void* datum, const erased_accessor& accessor) { \ do_inspect_field(datum, accessor, (repr)); \ } @@ -134,5 +139,6 @@ MAKE_SPEC_REPRS2(std::int16_t) MAKE_SPEC_REPRS2(std::uint32_t) MAKE_SPEC_REPRS2(std::int32_t) MAKE_SPEC_REPRS2(float) +MAKE_SPEC(bool, field_repr::input) -} // namespace floormat +} // namespace floormat::entities -- cgit v1.2.3