16#ifndef AEONGUI_ATTRIBUTE_H
17#define AEONGUI_ATTRIBUTE_H
19#include <unordered_map>
82 Align GetAlign()
const;
86 MinMidMax GetAlignX()
const;
90 MinMidMax GetAlignY()
const;
94 MeetOrSlice GetMeetOrSlice()
const;
96 Align mAlign{Align::XMidYMid};
97 MeetOrSlice mMeetOrSlice{MeetOrSlice::Meet};
105 template<
typename T> T FromString (
const std::string_view aString )
116 template<
typename T> T FromString (
const char *aAttribute,
const std::unordered_map<std::string, std::string>& aAttributes )
118 return T{FromString<T> ( aAttributes.find ( aAttribute ) != aAttributes.end() ? aAttributes.at ( aAttribute ) :
"" ) };
125 template<>
double FromString<double> (
const std::string_view aString );
PreserveAspectRatio()=default
Default constructor. Initializes to xMidYMid meet.
Align
Combined X and Y alignment values for preserveAspectRatio.
Definition Attribute.hpp:61
@ XMaxYMid
Align X-max, Y-mid.
Definition Attribute.hpp:70
@ XMinYMid
Align X-min, Y-mid.
Definition Attribute.hpp:64
@ XMinYMin
Align X-min, Y-min.
Definition Attribute.hpp:63
@ XMaxYMax
Align X-max, Y-max.
Definition Attribute.hpp:71
@ none
Do not force uniform scaling.
Definition Attribute.hpp:62
@ XMidYMax
Align X-mid, Y-max.
Definition Attribute.hpp:68
@ XMidYMid
Align X-mid, Y-mid (default).
Definition Attribute.hpp:67
@ XMaxYMin
Align X-max, Y-min.
Definition Attribute.hpp:69
@ XMidYMin
Align X-mid, Y-min.
Definition Attribute.hpp:66
@ XMinYMax
Align X-min, Y-max.
Definition Attribute.hpp:65
MinMidMax
Axis alignment selector values.
Definition Attribute.hpp:54
@ Min
Align to the minimum (start) edge.
Definition Attribute.hpp:55
@ Mid
Align to the midpoint.
Definition Attribute.hpp:56
@ Max
Align to the maximum (end) edge.
Definition Attribute.hpp:57
MeetOrSlice
Meet-or-slice scaling strategy.
Definition Attribute.hpp:75
SVG viewBox attribute value.
Definition Attribute.hpp:31
double min_x
Minimum X coordinate of the viewport.
Definition Attribute.hpp:32
double height
Height of the viewport.
Definition Attribute.hpp:35
double width
Width of the viewport.
Definition Attribute.hpp:34
double min_y
Minimum Y coordinate of the viewport.
Definition Attribute.hpp:33