1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://www.centreleonberard.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18 #ifndef VVTOOLMANAGER_H
19 #define VVTOOLMANAGER_H
20 #include "clitkCommon.h"
22 class vvToolCreatorBase;
23 class vvMainWindowBase;
27 //------------------------------------------------------------------------------
28 // Manage a list of ToolCreator. Each tool will be automagically
29 // inserted into a list at construction time, before main. Then the
30 // MainWindow will call the 'Initialize' to insert the tool in the
36 /// Get or build unique instance with this method
37 static vvToolManager * GetInstance();
39 /// Add a tool creator in the list (called before main, via static member initialization)
40 static void AddTool(vvToolCreatorBase * v);
42 /// Called in MainWindow, insert all tools into the menu
43 static void InsertToolsInMenu(vvMainWindowBase * m);
45 /// Called in MainWindow, make the tools enabled/disabled
46 static void EnableToolsInMenu(vvMainWindowBase * m, bool enable);
48 std::vector<vvToolCreatorBase *> & GetListOfTools() { return mListOfTools; }
50 vvToolCreatorBase * GetToolCreatorFromName(QString toolTypeName);
54 /// Singleton object pointer
55 static vvToolManager * mSingleton;
57 /// list of all tool creators
58 std::vector<vvToolCreatorBase *> mListOfTools;
60 //------------------------------------------------------------------------------