X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvToolCreatorBase.h;h=2143239f57d991f25e86a8c98379254da0cc46e1;hb=10ec7dc09aeea303fdc6a30449ec69de2f2ccd88;hp=4f7538b4a5aee11909b6dedfaed5356907cba4c9;hpb=f7dee5f397e4efa933ef32507698ff1c1e573c2e;p=clitk.git diff --git a/vv/vvToolCreatorBase.h b/vv/vvToolCreatorBase.h index 4f7538b..2143239 100644 --- a/vv/vvToolCreatorBase.h +++ b/vv/vvToolCreatorBase.h @@ -3,8 +3,8 @@ Program: vv Module: $RCSfile: vvToolCreatorBase.h,v $ Language: C++ - Date: $Date: 2010/01/29 13:54:37 $ - Version: $Revision: 1.1 $ + Date: $Date: 2010/02/24 11:42:42 $ + Version: $Revision: 1.2 $ Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr) Copyright (C) 2008 @@ -28,14 +28,12 @@ #ifndef VVTOOLCREATORBASE_H #define VVTOOLCREATORBASE_H -#include "clitkCommon.h" #include +#include "vvSlicerManager.h" +#include "vvMainWindowBase.h" -// For vvMainWindowToolInfo -#include "vvMainWindow.h" -class vvMainWindow; -// struct vvMainWindowToolInfo; class QAction; +class vvToolBaseBase; //------------------------------------------------------------------------------ class vvToolCreatorBase: public QObject { @@ -43,50 +41,27 @@ class vvToolCreatorBase: public QObject { public: vvToolCreatorBase(QString name); - virtual ~vvToolCreatorBase() {;} - - virtual void Initialize(vvMainWindow * m); - virtual void UpdateEnabledTool(); + virtual ~vvToolCreatorBase() {;} + virtual void InsertToolInMenu(vvMainWindowBase * m); template void CreateTool(); virtual void MenuSpecificToolSlot() = 0; - + vvMainWindowBase * GetMainWindow() const { return mMainWindow; } + QString mToolName; QString mToolMenuName; QString mToolIconFilename; QString mToolTip; QAction * mAction; - vvMainWindow * mMainWindow; - public slots: virtual void MenuToolSlot() { MenuSpecificToolSlot(); } -}; -//------------------------------------------------------------------------------ -//------------------------------------------------------------------------------ -template -class vvToolCreator: public vvToolCreatorBase { -public: - vvToolCreator(QString name):vvToolCreatorBase(name) {;} - virtual void Initialize(vvMainWindow * m); - static vvToolCreator * mSingleton; - virtual void MenuSpecificToolSlot() { CreateTool(); } +protected: + vvMainWindowBase * mMainWindow; + std::vector mListOfTool; }; //------------------------------------------------------------------------------ - -//------------------------------------------------------------------------------ -#define CREATOR(CLASSNAME) vvToolCreator::mSingleton -//------------------------------------------------------------------------------ - - -//------------------------------------------------------------------------------ -#define ADD_TOOL(NAME) \ - template<> \ - vvToolCreator * vvToolCreator::mSingleton = \ - new vvToolCreator(#NAME); -//------------------------------------------------------------------------------ - #include "vvToolCreatorBase.txx" #endif