karbon
karbon_tool_factory.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef KARBON_TOOL_FACTORY_H_
00022 #define KARBON_TOOL_FACTORY_H_
00023
00024 #include "kactioncollection.h"
00025 #include "karbon_view.h"
00026 #include <koffice_export.h>
00027 #include <vtool.h>
00028
00029 class KARBONBASE_EXPORT KarbonAbstractToolFactory
00030 {
00031 public:
00032 KarbonAbstractToolFactory();
00033 virtual ~KarbonAbstractToolFactory();
00034
00035 virtual VTool * createTool( KActionCollection * ac, KarbonView* view ) = 0;
00036 };
00037
00038 template<class T> class KarbonToolFactory : public KarbonAbstractToolFactory
00039 {
00040 public:
00041 KarbonToolFactory() {}
00042 virtual ~KarbonToolFactory() {}
00043
00044 virtual VTool * createTool( KActionCollection * ac, KarbonView* view )
00045 {
00046 VTool * t = new T( view );
00047 Q_CHECK_PTR(t);
00048 t -> setup(ac);
00049 return t;
00050 }
00051 };
00052
00053 #endif // KARBON_TOOL_FACTORY_H_
00054
|