]> Creatis software - clitk.git/blob - vv/vvToolManager.cxx
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolManager.cxx
1 /*=========================================================================
2   Program:   vv                     http://www.creatis.insa-lyon.fr/rio/vv
3
4   Authors belong to:
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
8
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.
12
13   It is distributed under dual licence
14
15   - BSD        See included LICENSE.txt file
16   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
18
19 #include "vvToolManager.h"
20 #include "vvToolCreatorBase.h"
21 #include "vvMainWindowBase.h"
22 #include <QAction>
23 //------------------------------------------------------------------------------
24 /// Unique static instance
25 vvToolManager* vvToolManager::mSingleton=0;
26 //------------------------------------------------------------------------------
27
28
29 //------------------------------------------------------------------------------
30 vvToolManager * vvToolManager::GetInstance()
31 {
32   if (mSingleton == 0) {
33     mSingleton = new vvToolManager;
34   }
35   return mSingleton;
36 }
37 //------------------------------------------------------------------------------
38
39
40 //------------------------------------------------------------------------------
41 void vvToolManager::AddTool(vvToolCreatorBase * v)
42 {
43   //std::cout << "Adding the tool <" << v->mToolName.toStdString() << ">." << std::endl;
44   GetInstance()->mListOfTools.push_back(v);
45 }
46 //------------------------------------------------------------------------------
47
48
49 //------------------------------------------------------------------------------
50 void vvToolManager::InsertToolsInMenu(vvMainWindowBase * m)
51 {
52   for(unsigned int i=0; i<GetInstance()->mListOfTools.size(); i++) {
53     GetInstance()->mListOfTools[i]->InsertToolInMenu(m);
54   }
55 }
56 //------------------------------------------------------------------------------
57
58
59 //------------------------------------------------------------------------------
60 void vvToolManager::EnableToolsInMenu(vvMainWindowBase * m, bool enable){
61   std::vector<vvToolCreatorBase *>::iterator it;
62   for(it=GetInstance()->mListOfTools.begin(); it!=GetInstance()->mListOfTools.end(); ++it){
63     if((*it)->mAction){
64       (*it)->mAction->setEnabled(enable);
65     }
66   }
67 }
68 //------------------------------------------------------------------------------
69
70
71 //------------------------------------------------------------------------------
72 vvToolCreatorBase * vvToolManager::GetToolCreatorFromName(QString toolTypeName)
73 {
74   std::vector<vvToolCreatorBase *> & v = vvToolManager::GetInstance()->GetListOfTools();
75   int index=-1;
76   for(uint i=0; i<v.size(); i++) {
77     // DD(v[i]->mToolName.toStdString());
78     if (v[i]->mToolName == toolTypeName) {
79       index = i;
80     }
81   }
82   if (index == -1) {
83     std::cerr << "Error, ToolCreator named '" << toolTypeName.toStdString() 
84               << "' does not exist. Abort." << std::endl;
85     return NULL;
86   }
87   return v[index];
88 }
89 //------------------------------------------------------------------------------
90
91