2#include "imgui_widgets/utils.h"
11 const entt::meta_custom& custom,
12 const char* fmt0 =
"Min:",
24 if(min_var && min_var.allow_cast<T>())
26 min = min_var.cast<T>();
32 if(max_var && max_var.allow_cast<T>())
34 max = max_var.cast<T>();
40 if(step_var && step_var.try_cast<
float>())
42 step = step_var.cast<
float>();
45 const auto formatted0 = fmt::format(
"{}{}", fmt0, ImGui::GetDataPrintFormat<T>());
46 const auto formatted1 = fmt::format(
"{}{}", fmt1, ImGui::GetDataPrintFormat<T>());
48 std::array<const char*, 2> formats = {{formatted0.c_str(), formatted1.c_str()}};
51 T prev_min = data.min;
52 T prev_max = data.max;
53 result.
changed = ImGui::DragMultiFormatScalarN(
"##",
54 ImGui::GetDataType<T>(),
64 bool min_changed = prev_min != data.min;
65 bool max_changed = prev_max != data.max;
66 if(max_changed && data.max < data.min)
71 if(min_changed && data.min > data.max)
77 ImGui::ActiveItemWrapMousePos();
79 result.edit_finished = ImGui::IsItemDeactivatedAfterEdit();
90 const entt::meta_custom& custom,
91 const char* fmt0 =
"Min:",
94 auto& data = var.cast<
size<T>&>();
102 if(min_var && min_var.allow_cast<T>())
104 min = min_var.cast<T>();
109 if(max_var && max_var.allow_cast<T>())
111 max = max_var.cast<T>();
114 const auto formatted0 = fmt::format(
"{}{}", fmt0, ImGui::GetDataPrintFormat<T>());
115 const auto formatted1 = fmt::format(
"{}{}", fmt1, ImGui::GetDataPrintFormat<T>());
117 std::array<const char*, 2> formats = {{formatted0.c_str(), formatted1.c_str()}};
120 result.
changed = ImGui::DragMultiFormatScalarN(
"##",
121 ImGui::GetDataType<T>(),
128 ImGui::ActiveItemWrapMousePos();
130 result.edit_finished = ImGui::IsItemDeactivatedAfterEdit();
auto get_attribute(const meta_custom &custom, const char *name) -> const meta_any &
auto inspect_size_scalar(rtti::context &ctx, entt::meta_any &var, const var_info &info, const entt::meta_custom &custom, const char *fmt0="Min:", const char *fmt1="Max:") -> inspect_result
auto inspect_range_scalar(rtti::context &ctx, entt::meta_any &var, const var_info &info, const entt::meta_custom &custom, const char *fmt0="Min:", const char *fmt1="Max:") -> inspect_result
Result of an inspection operation indicating what changes occurred.
bool changed
Whether the value was modified during inspection.
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
auto inspect(rtti::context &ctx, entt::meta_any &var, const meta_any_proxy &var_proxy, const var_info &info, const entt::meta_custom &custom) -> inspect_result override
Metadata about a variable being inspected.