]> Creatis software - clitk.git/blobdiff - vv/vvToolWidgetBase.h
Romulo: invert matrix in .mat to be consistent with mhd matrices handled by itk
[clitk.git] / vv / vvToolWidgetBase.h
index 83f4dcb768adcc8f9bde76a29cf94c0257f4bb01..0951fa1888b79fc7b6ac3a42b357a7e4cb5375fd 100644 (file)
   - BSD        See included LICENSE.txt file
   - CeCILL-B   http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
 ======================================================================-====*/
+
 #ifndef VVTOOLWIDGETBASE_H
 #define VVTOOLWIDGETBASE_H
+
 #include <QtDesigner/QDesignerExportWidget>
 #include "ui_vvToolWidgetBase.h"
 #include "clitkImageToImageGenericFilter.h"
+
+// qt
+ #include <QCloseEvent>
+
 class vvMainWindowBase;
 
 //------------------------------------------------------------------------------
 class vvToolWidgetBase:
-  public QDialog
+  public QWidget
   public Ui::vvToolWidgetBase 
 {
   Q_OBJECT
   public:
 
-  vvToolWidgetBase(vvMainWindowBase * parent=0, Qt::WindowFlags f=0);
+  vvToolWidgetBase(vvMainWindowBase * parent=0, Qt::WindowFlags f=Qt::Dialog, bool initialize=true); // default is a dialog
   ~vvToolWidgetBase();
 
   virtual void InputIsSelected(vvSlicerManager *m);
   virtual void InputIsSelected(std::vector<vvSlicerManager*> & l);
   void AddInputSelector(QString s, clitk::ImageToImageGenericFilterBase * f, bool allowSkip=false);
   void AddInputSelector(QString s, bool allowSkip=false);
+  void HideInputSelector();
+  void accept();
+  void reject();
 
 public slots:
   virtual void apply() = 0;
   virtual bool close();
   void InputIsSelected();
-  void AnImageIsBeingClosed(vvSlicerManager * m);
+  virtual void AnImageIsBeingClosed(vvSlicerManager * m);
+  virtual void SelectedImageHasChanged(vvSlicerManager * m);
   void show();
+  virtual void keyPressEvent(QKeyEvent *event);
 
 protected:
+  virtual void Initialization();
   void InitializeInputs();
   Ui::vvToolWidgetBase ui;
   clitk::ImageToImageGenericFilterBase * mFilter;
-  vvMainWindowBase * mMainWindowBase;
+  vvMainWindowBase * mMainWindow;
   std::vector<vvSlicerManager*> mSlicerManagersCompatible;
   vvSlicerManager * mCurrentSlicerManager;
   int mCurrentCompatibleIndex;
   vvImage * mCurrentImage;
   bool mIsInitialized;
+  QWidget * mWidgetForTab;
+  
+  // The static members manage all tool instances
+  static QWidget * mStaticWidgetForTab; // <-- MUST BE CHANGED IN VECTOR 
+  static int mTabNumber;
+  static QVBoxLayout * mStaticVerticalLayout;  // <-- MUST BE CHANGED IN VECTOR 
+  static bool mIsAnotherToolWaitInput;
+  virtual void CheckInputList(std::vector<vvSlicerManager*> & l, int & index) { }
+  virtual void closeEvent(QCloseEvent *event);
+  void SwapCurrentWidget();
+  bool mPreventToUseTwoToolsOnSameInput;
 
 }; // end class vvToolWidgetBase
 //------------------------------------------------------------------------------