00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _ViewFactory_H_ 00015 #define _ViewFactory_H_ 00016 00017 #include "pattern/libhippo.h" 00018 00019 class FontBase; 00020 class PlotterBase; 00021 class ViewBase; 00022 00033 class MDL_HIPPOPLOT_API ViewFactory 00034 { 00035 protected: 00036 00040 static ViewFactory * m_instance; 00041 00043 ViewFactory(); 00044 00045 private: 00047 ViewFactory( const ViewFactory & ); 00048 00049 public: 00050 00055 virtual ~ViewFactory () {}; 00056 00058 static ViewFactory * instance(); 00059 00061 virtual ViewBase * createView ( PlotterBase * plotter ) const = 0; 00062 00065 virtual FontBase * createFont ( ) const = 0; 00066 00067 }; 00068 00069 #endif // _ViewFactory_H_