]> Creatis software - clitk.git/blobdiff - vv/vvToolCreatorBase.cxx
- default window level for [0:1] binary image
[clitk.git] / vv / vvToolCreatorBase.cxx
index 394602e37afca3f9ca0b6edc0a9dfcb8abaa7367..e5d60bde56758cbde8adf32252e004563d7e1877 100644 (file)
@@ -15,6 +15,7 @@
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ======================================================================-====*/
+
 #include "vvToolCreatorBase.h"
 #include "vvToolManager.h"
 #include <QAction>
 
 //------------------------------------------------------------------------------
 vvToolCreatorBase::vvToolCreatorBase(QString name): mExperimental(false) { 
+  mUseContextMenu = false;
   mToolName = name;
   vvToolManager::GetInstance()->AddTool(this); 
 }
 //------------------------------------------------------------------------------
 
+//------------------------------------------------------------------------------
+void vvToolCreatorBase::MenuToolSlot() { 
+  mSender = QObject::sender(); 
+  MenuSpecificToolSlot(); 
+}
+//------------------------------------------------------------------------------
+
 
 //------------------------------------------------------------------------------
 void vvToolCreatorBase::InsertToolInMenu(vvMainWindowBase * m) { 
   mMainWindow = m; 
+  if (mUseContextMenu) {
+    InsertToolInContextMenu();
+    return; 
+  }
   // Create main action
   if (mToolIconFilename == "noicon") 
     mAction = new QAction(QString("&").append(mToolMenuName), this);
@@ -47,3 +60,23 @@ void vvToolCreatorBase::InsertToolInMenu(vvMainWindowBase * m) {
 } 
 //------------------------------------------------------------------------------
 
+
+//------------------------------------------------------------------------------
+void vvToolCreatorBase::InsertToolInContextMenu() { 
+  mMainWindow->GetContextMenu()->addMenu(mToolMenu);
+  for(unsigned int i=0; i<mListOfActions.size(); i++) {
+    connect(mListOfActions[i], SIGNAL(triggered()), this, SLOT(MenuToolSlot()));
+  }
+}
+//------------------------------------------------------------------------------
+
+
+//------------------------------------------------------------------------------
+void vvToolCreatorBase::addMenuToContextMenu(QMenu * m) {
+  mToolMenu = m;
+  for(int i=0; i<m->actions().size(); i++) {
+    mListOfActions.push_back(m->actions()[i]);
+  }
+  mUseContextMenu = true;
+}
+//------------------------------------------------------------------------------