1 ////////////////////////////////////////////////////////////////////////////// 2 // Name: SVGLength.h 3 // Author: Alex Thuering 4 // Copyright: (c) 2005 Alex Thuering 5 // Licence: wxWindows licence 6 // Notes: generated by generate.py 7 ////////////////////////////////////////////////////////////////////////////// 8 9 #ifndef WX_SVG_LENGTH_H 10 #define WX_SVG_LENGTH_H 11 12 #include "String_wxsvg.h" 13 #include "SVGLengthCalculate.h" 14 #include "math.h" 15 16 17 enum wxSVG_LENGTHTYPE 18 { 19 wxSVG_LENGTHTYPE_UNKNOWN = 0, 20 wxSVG_LENGTHTYPE_NUMBER = 1, 21 wxSVG_LENGTHTYPE_PERCENTAGE = 2, 22 wxSVG_LENGTHTYPE_EMS = 3, 23 wxSVG_LENGTHTYPE_EXS = 4, 24 wxSVG_LENGTHTYPE_PX = 5, 25 wxSVG_LENGTHTYPE_CM = 6, 26 wxSVG_LENGTHTYPE_MM = 7, 27 wxSVG_LENGTHTYPE_IN = 8, 28 wxSVG_LENGTHTYPE_PT = 9, 29 wxSVG_LENGTHTYPE_PC = 10 30 }; 31 32 class wxSVGLength 33 { 34 protected: 35 wxSVG_LENGTHTYPE m_unitType; 36 double m_value; 37 double m_valueInSpecifiedUnits; 38 39 public: GetUnitType()40 inline wxSVG_LENGTHTYPE GetUnitType() const { return m_unitType; } SetUnitType(const wxSVG_LENGTHTYPE & n)41 inline void SetUnitType(const wxSVG_LENGTHTYPE& n) { m_unitType = n; } 42 43 public: wxSVGLength()44 wxSVGLength() : m_unitType(wxSVG_LENGTHTYPE_UNKNOWN), m_value(0), m_valueInSpecifiedUnits(0) {} wxSVGLength(double v)45 wxSVGLength(double v) : m_unitType(wxSVG_LENGTHTYPE_NUMBER), m_value(v), m_valueInSpecifiedUnits(v) {} wxSVGLength(wxSVG_LENGTHTYPE unitType,double v)46 wxSVGLength(wxSVG_LENGTHTYPE unitType, double v): m_unitType(unitType) { SetValueInSpecifiedUnits(v); } wxSVGLength(const wxSVGLength & l)47 wxSVGLength(const wxSVGLength& l): m_unitType(l.m_unitType), m_value(l.m_value), m_valueInSpecifiedUnits(l.m_valueInSpecifiedUnits) {} ~wxSVGLength()48 virtual ~wxSVGLength() {} 49 GetValue()50 inline double GetValue() const { return m_value; } SetValue(double n)51 inline void SetValue(double n) { m_unitType = wxSVG_LENGTHTYPE_NUMBER; m_valueInSpecifiedUnits = n; m_value = n; } 52 inline operator double() const { return GetValue(); } 53 GetValueInSpecifiedUnits()54 double GetValueInSpecifiedUnits() const { return m_valueInSpecifiedUnits; } 55 void SetValueInSpecifiedUnits(double n); 56 57 wxString GetValueAsString() const; 58 void SetValueAsString(const wxString& n); 59 ToViewportWidth(float viewportWidth)60 inline void ToViewportWidth(float viewportWidth) { m_value = m_valueInSpecifiedUnits*viewportWidth/100; } ToViewportHeight(float viewportHeight)61 inline void ToViewportHeight(float viewportHeight) { m_value = m_valueInSpecifiedUnits*viewportHeight/100; } ToViewportSize(float viewportWidth,float viewportHeight)62 inline void ToViewportSize(float viewportWidth, float viewportHeight) 63 { 64 m_value = m_valueInSpecifiedUnits* 65 sqrt(viewportWidth*viewportWidth + viewportHeight*viewportHeight)/sqrt(2.0)/100; 66 } 67 68 virtual void NewValueSpecifiedUnits(wxSVG_LENGTHTYPE unitType, double valueInSpecifiedUnits); 69 virtual void ConvertToSpecifiedUnits(wxSVG_LENGTHTYPE unitType); 70 }; 71 72 #endif // WX_SVG_LENGTH_H 73