qSlicerAbstractModule.h

Go to the documentation of this file.
00001 /*=auto=========================================================================
00002 
00003  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) 
00004  All Rights Reserved.
00005 
00006  See Doc/copyright/copyright.txt
00007  or http://www.slicer.org/copyright/copyright.txt for details.
00008 
00009  Program:   3D Slicer
00010 
00011 =========================================================================auto=*/
00012 #ifndef __qSlicerAbstractModule_h
00013 #define __qSlicerAbstractModule_h
00014 
00016 #include <QObject>
00017 
00019 #include <qCTKPimpl.h>
00020 
00022 #include "qSlicerBaseQTBaseExport.h"
00023 
00024 class qSlicerAbstractModuleWidget;
00025 class vtkSlicerLogic; 
00026 class vtkSlicerApplicationLogic;
00027 class vtkMRMLScene;
00028 class QAction; 
00029 class qSlicerAbstractModulePrivate;
00030 
00031 
00032 #define qSlicerGetTitleMacro(_TITLE)               \
00033   static QString staticTitle() { return _TITLE; }  \
00034   virtual QString title()const { return _TITLE; }
00035 
00045 class Q_SLICER_BASE_QTBASE_EXPORT qSlicerAbstractModule : public QObject
00046 {
00049   Q_OBJECT
00050 
00053   Q_PROPERTY(QString Name READ name)
00054   Q_PROPERTY(QString Title READ title)
00055   Q_PROPERTY(QString Category READ category)
00056   Q_PROPERTY(QString Contributor READ contributor)
00057 
00058 public:
00059 
00060   typedef QObject Superclass;
00063   qSlicerAbstractModule(QObject *parent=0);
00064 
00065   virtual void printAdditionalInfo();
00066 
00069   QString slicerWikiUrl()const{ return "http://www.slicer.org/slicerWiki/index.php"; }
00070 
00074   void initialize(vtkSlicerApplicationLogic* appLogic);
00075   inline bool initialized() { return this->Initialized; }
00076 
00079   virtual QString name()const;
00080   virtual void setName(const QString& name); 
00081   
00084   virtual QString title()const = 0;
00085   virtual QString category()const;
00086   virtual QString contributor()const;
00087 
00091   virtual QString helpText()const;
00092   virtual QString acknowledgementText()const;
00093 
00098   qSlicerAbstractModuleWidget* widgetRepresentation();
00099 
00103   void setAppLogic(vtkSlicerApplicationLogic* appLogic);
00104   vtkSlicerApplicationLogic* appLogic() const;
00105 
00110   vtkSlicerLogic* logic();
00111 
00114   vtkMRMLScene* mrmlScene() const;
00115 
00119   bool isEnabled()const;
00120   
00121 public slots:
00122 
00125   virtual void setEnabled(bool enabled);
00126 
00129   virtual void setMRMLScene(vtkMRMLScene*);
00130 
00131 protected:
00134   virtual void setup() = 0;
00135 
00138   virtual qSlicerAbstractModuleWidget* createWidgetRepresentation() = 0;
00139 
00143   virtual vtkSlicerLogic* createLogic() = 0;
00144   
00145 
00146 private:
00147   QCTK_DECLARE_PRIVATE(qSlicerAbstractModule);
00148 
00151   bool Initialized;
00152 };
00153 
00154 #endif

Generated on 6 Apr 2011 for Slicer3 by  doxygen 1.6.1