]> Creatis software - clitk.git/blobdiff - vv/vvToolCreatorBase.h
Protect vtkMPEG2Writer.h which is not anymore in vtk's includes if vtk is not
[clitk.git] / vv / vvToolCreatorBase.h
index 8078d1927bdbe1d1fe4e03273939541758ec66d7..28610f5d6c5f7a5c50693d87a78eaf6608f94f9b 100644 (file)
 ======================================================================-====*/
 #ifndef VVTOOLCREATORBASE_H
 #define VVTOOLCREATORBASE_H
+
+//qt
 #include <QObject>
+
+// vv
 #include "vvSlicerManager.h"
 #include "vvMainWindowBase.h"
 
@@ -32,9 +36,12 @@ class vvToolCreatorBase: public QObject {
   vvToolCreatorBase(QString name);
   virtual ~vvToolCreatorBase() {;}  
   virtual void InsertToolInMenu(vvMainWindowBase * m);
+  virtual void InsertToolInContextMenu();
   template<class ToolType> void CreateTool();
   virtual void MenuSpecificToolSlot() = 0;
   vvMainWindowBase * GetMainWindow() const { return mMainWindow; }
+  void addMenuToContextMenu(QMenu * m);
+  void SetMenuName(std::string m) { m_MenuName = m; }
 
   QString mToolName;
   QString mToolMenuName;
@@ -42,13 +49,18 @@ class vvToolCreatorBase: public QObject {
   QString mToolTip;
   QAction * mAction;
   bool mExperimental;
+  bool mUseContextMenu;
+  QMenu * mToolMenu;
+  std::vector<QAction*> mListOfActions;
 
 public slots:
-  virtual void MenuToolSlot() { MenuSpecificToolSlot(); }
+  virtual void MenuToolSlot();
 
 protected:
   vvMainWindowBase * mMainWindow;
   std::vector<vvToolBaseBase*> mListOfTool;
+  QObject * mSender;
+  std::string m_MenuName;
 };
 //------------------------------------------------------------------------------