00001 /* -*- mode: c++ -*- */ 00002 00015 #ifndef _FontBase_H_ 00016 #define _FontBase_H_ 00017 00018 #include <string> 00019 00020 namespace hippodraw 00021 { 00023 namespace FontWeight 00024 { 00025 enum weight{ Light, Normal, DemiBold, Bold, Black, Invisible }; 00026 } 00027 } 00028 00033 class FontBase 00034 { 00035 00036 protected: 00037 00039 FontBase() {}; 00040 00042 FontBase ( const std::string & family, 00043 int pointsize = 12, 00044 int weight = hippodraw::FontWeight::Normal, 00045 bool italic = false ); 00046 00047 public: 00048 00050 virtual ~FontBase(){}; 00051 00053 virtual std::string family() const = 0; 00054 00056 virtual void setFamily( const std::string & family ) = 0; 00057 00059 virtual int pointSize() const = 0; 00060 00062 virtual void setPointSize( int pointsize ) = 0; 00063 00065 virtual int weight() const = 0; 00066 00068 virtual void setWeight( int weight ) = 0; 00069 00072 virtual bool italic () const = 0; 00073 00075 virtual void setItalic( bool enable ) = 0; 00076 00077 }; 00078 00079 #endif //_FontBase_H_