1 /*=========================================================================
4 Module: $RCSfile: vvToolManager.h,v $
6 Date: $Date: 2010/02/24 11:42:42 $
7 Version: $Revision: 1.3 $
8 Author : David Sarrut (david.sarrut@creatis.insa-lyon.fr)
11 Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
12 CREATIS-LRMN http://www.creatis.insa-lyon.fr
14 This program is free software: you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation, version 3 of the License.
18 This program is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 GNU General Public License for more details.
23 You should have received a copy of the GNU General Public License
24 along with this program. If not, see <http://www.gnu.org/licenses/>.
26 =========================================================================*/
28 #ifndef VVTOOLMANAGER_H
29 #define VVTOOLMANAGER_H
31 #include "clitkCommon.h"
33 class vvToolCreatorBase;
34 class vvMainWindowBase;
36 //------------------------------------------------------------------------------
37 // Manage a list of ToolCreator. Each tool will be automagically
38 // inserted into a list at construction time, before main. Then the
39 // MainWindow will call the 'Initialize' to insert the tool in the
45 /// Get or build unique instance with this method
46 static vvToolManager * GetInstance();
48 /// Add a tool creator in the list (called before main, via static member initialization)
49 static void AddTool(vvToolCreatorBase * v);
51 /// Called in MainWindow, insert all tools into the menu
52 static void InsertToolsInMenu(vvMainWindowBase * m);
56 /// Singleton object pointer
57 static vvToolManager * mSingleton;
59 /// list of all tool creators
60 std::vector<vvToolCreatorBase *> mListOfTools;
62 //------------------------------------------------------------------------------