00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _ViewFactory_H_ 00015 #define _ViewFactory_H_ 00016 00017 #include "pattern/libhippo.h" 00018 00019 namespace hippodraw { 00020 00021 class FontBase; 00022 class PlotterBase; 00023 class ViewBase; 00024 00035 class MDL_HIPPOPLOT_API ViewFactory 00036 { 00037 protected: 00038 00042 static ViewFactory * m_instance; 00043 00045 ViewFactory(); 00046 00047 private: 00049 ViewFactory( const ViewFactory & ); 00050 00051 public: 00052 00057 virtual ~ViewFactory () {}; 00058 00060 static ViewFactory * instance(); 00061 00063 virtual ViewBase * createView ( PlotterBase * plotter ) const = 0; 00064 00067 virtual FontBase * createFont ( ) const = 0; 00068 00069 }; 00070 00071 } // namespace hippodraw 00072 00073 #endif // _ViewFactory_H_