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
1.6.1