#include "export.hpp" #include "compat/functional.hpp" #include "slider.hpp" #include #include namespace options { namespace detail { template struct default_value_traits { using element_type = std::decay_t; using value_type = u; static inline value_type from_value(const value_type& val, const value_type&) { return val; } static inline value_type from_storage(const element_type& x) { return static_cast(x); } static inline element_type to_storage(const value_type& val) { return static_cast(val); } }; template struct value_traits : default_value_traits { }; template<> struct value_traits : default_value_traits { static inline slider_value from_value(const slider_value& val, const slider_value& def) { return slider_value(val.cur(), def.min(), def.max()); } }; // Qt uses int a lot in slots so use it for all enums template struct value_traits::value>> : public default_value_traits { }; template<> struct value_traits : public default_value_traits { }; } // ns detail } // ns options