]> Creatis software - clitk.git/blobdiff - vv/vvToolWidgetBase.h
Debug RTStruct conversion with empty struc
[clitk.git] / vv / vvToolWidgetBase.h
index 83f4dcb768adcc8f9bde76a29cf94c0257f4bb01..7a3a5dfdc6e6ac692b58641e628250c72f4cb535 100644 (file)
@@ -3,7 +3,7 @@
 
   Authors belong to: 
   - University of LYON              http://www.universite-lyon.fr/
-  - Léon Bérard cancer center       http://oncora1.lyon.fnclcc.fr
+  - Léon Bérard cancer center       http://www.centreleonberard.fr
   - CREATIS CNRS laboratory         http://www.creatis.insa-lyon.fr
 
   This software is distributed WITHOUT ANY WARRANTY; without even
 
   - 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 <QtGlobal>
+#if QT_VERSION >= 0x050000
+#include <QtUiPlugin/QDesignerExportWidget>
+#else
 #include <QtDesigner/QDesignerExportWidget>
+#endif
 #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();
+  vvToolWidgetBase(vvMainWindowBase * parent=0, Qt::WindowFlags f=Qt::Dialog, bool initialize=true); // default is a dialog
+  virtual ~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;
+  clitk::ImageToImageGenericFilterBase::Pointer mFilter;
+  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
 //------------------------------------------------------------------------------