00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _AxisModelXML_H_ 00015 #define _AxisModelXML_H_ 00016 00017 #include "BaseXML.h" 00018 00019 #include "axes/AxesType.h" 00020 00021 namespace hippodraw { 00022 00023 class AxisModelBase; 00024 class AxisTickXML; 00025 00031 class MDL_HIPPOPLOT_API AxisModelXML : virtual public BaseXML 00032 { 00033 00034 private: 00035 00037 static AxisModelXML * s_instance; 00038 00041 AxisTickXML * m_axistick_xml; 00042 00044 std::string m_autorange; 00045 00047 std::string m_low; 00048 00050 std::string m_high; 00051 00053 std::string m_scale_factor; 00054 00056 std::string m_log; 00057 00061 std::string m_auto_tick; 00062 00064 AxisModelXML ( const AxisModelXML & ); 00065 00068 void createChildren ( XmlElement &, const AxisModelBase & ); 00069 00072 void createChildren ( const XmlElement * element, AxisModelBase * model ); 00073 00074 public: 00075 00078 AxisModelXML ( XmlController * controller ); 00079 00082 ~AxisModelXML (); 00083 00086 void setAttributes ( XmlElement & tag, const AxisModelBase & plotter ); 00087 00090 void setAttributes ( AxisModelBase * model, const XmlElement * element ); 00091 00093 hippodraw::Axes::Type getAxis ( const XmlElement * element, 00094 const std::string & tagname ); 00095 00098 bool isLog ( const XmlElement * element ); 00099 00100 }; 00101 00102 } // namespace hippodraw 00103 00104 #endif // _AxisModelXML_H_