7#include <quantify/unit_macros.h>
11export import quantify;
14constexpr double DPI = 92.0;
18 UNIT(pixel,
"px", 1, 1)
23SCALE_CONVERSION(cydui::dimensions::screen::scale, quantify::distance::scale)
24 SCALE_FORWARD_CONVERSION((it / ((100.0 / 2.54) *
DPI))) SCALE_BACKWARD_CONVERSION(it * ((100.0 / 2.54) *
DPI))
26export namespace
cydui::dimensions {
38 bool operator==(
const parameter& other)
const {
39 return name == other.name;
47 struct compute_result_t;
49 template <
typename ...>
50 struct is_dimension: std::false_type {};
52 template <
typename... Args>
53 struct is_dimension<dimension<Args...>>: std::true_type {};
55 template <
typename... Args>
56 constexpr bool is_dimension_v = is_dimension<Args...>::value;
58 template <
typename ...>
59 struct is_expression: std::false_type {};
61 template <
typename... Args>
62 struct is_expression<expression<Args...>>: std::true_type {};
64 template <
typename... Args>
65 constexpr bool is_expression_v = is_expression<Args...>::value;
76operator""_px(
long double value)
noexcept {
77 return {
static_cast<double>(value)};
81operator""_px(
unsigned long long value)
noexcept {
82 return {
static_cast<double>(value)};
85export constexpr cydui::dimensions::parameter<cydui::dimensions::screen_measure>
86operator""_param(
const char* str,
unsigned long len)
noexcept {
87 return {std::string{str, len}};
90export template<
typename T>
91struct std::hash<
cydui::dimensions::parameter<T>> {
92 std::size_t operator()(
const cydui::dimensions::parameter<T>& param)
const noexcept {
93 return std::hash<std::string>{}(param.name);
bool operator==(const data_series_t &lhs, const data_series_t &rhs)
quantify::quantity_t< screen::pixel, double > screen_measure