14 bool m_is_predefined;
\r
17 css_length(const css_length& val);
\r
19 css_length& operator=(const css_length& val);
\r
20 css_length& operator=(float val);
\r
21 bool is_predefined() const;
\r
22 void predef(int val);
\r
24 void set_value(float val, css_units units);
\r
26 css_units units() const;
\r
27 int calc_percent(int width) const;
\r
28 void fromString(const tstring& str, const tstring& predefs = _t(""), int defValue = 0);
\r
31 // css_length inlines
\r
33 inline css_length::css_length()
\r
37 m_units = css_units_none;
\r
38 m_is_predefined = false;
\r
41 inline css_length::css_length(const css_length& val)
\r
43 if(val.is_predefined())
\r
45 m_predef = val.m_predef;
\r
48 m_value = val.m_value;
\r
50 m_units = val.m_units;
\r
51 m_is_predefined = val.m_is_predefined;
\r
54 inline css_length& css_length::operator=(const css_length& val)
\r
56 if(val.is_predefined())
\r
58 m_predef = val.m_predef;
\r
61 m_value = val.m_value;
\r
63 m_units = val.m_units;
\r
64 m_is_predefined = val.m_is_predefined;
\r
68 inline css_length& css_length::operator=(float val)
\r
71 m_units = css_units_px;
\r
72 m_is_predefined = false;
\r
76 inline bool css_length::is_predefined() const
\r
78 return m_is_predefined;
\r
81 inline void css_length::predef(int val)
\r
84 m_is_predefined = true;
\r
87 inline int css_length::predef() const
\r
96 inline void css_length::set_value(float val, css_units units)
\r
99 m_is_predefined = false;
\r
103 inline float css_length::val() const
\r
105 if(!m_is_predefined)
\r
112 inline css_units css_length::units() const
\r
117 inline int css_length::calc_percent(int width) const
\r
119 if(!is_predefined())
\r
121 if(units() == css_units_percentage)
\r
123 return (int) ((double) width * (double) m_value / 100.0);
\r
126 return (int) val();
\r