|
Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
00001 #ifndef __qSlicerAnnotationModulePropertyDialog_h 00002 #define __qSlicerAnnotationModulePropertyDialog_h 00003 00004 #include <QLineEdit> 00005 #include "ui_qSlicerAnnotationModulePropertyDialog.h" 00006 00007 #include "qSlicerAbstractModuleWidget.h" 00008 00009 #include "vtkStdString.h" 00010 00011 class vtkSlicerAnnotationModuleLogic; 00012 class vtkMRMLAnnotationLinesNode; 00013 class vtkMRMLAnnotationControlPointsNode; 00014 class vtkMRMLAnnotationNode; 00015 class vtkMRMLNode; 00016 class vtkMRMLAnnotationDisplayNode; 00017 class vtkMRMLAnnotationLineDisplayNode; 00018 class vtkMRMLAnnotationPointDisplayNode; 00019 class vtkMRMLAnnotationRulerNode; 00020 class vtkMRMLAnnotationAngleNode; 00021 class vtkMRMLAnnotationFiducialNode; 00022 00024 class qSlicerAnnotationModulePropertyDialog : public QDialog 00025 { 00026 Q_OBJECT 00027 00028 public: 00029 qSlicerAnnotationModulePropertyDialog(const char * id, vtkSlicerAnnotationModuleLogic* logic); 00030 ~qSlicerAnnotationModulePropertyDialog(); 00031 00032 const char * GetID() { return this->m_id; } 00033 00034 00035 void updateTextFromTable(QString text); 00036 void updateValue(QString valueString); 00037 00038 void saveStateForUndo(vtkMRMLNode* node); 00039 void undo(vtkMRMLNode* node); 00040 void SetButtonText(int type); 00041 void updateLockUnlockStatus(bool isLock); 00042 00043 static void toQColor(const double* color, QColor &qcolor); 00044 static void toColor(const QColor &qcolor, double* color); 00045 static void formatValueToChar(const char* format, std::vector<double> vv, QString &valueString ); 00046 00049 void getAllColor(QColor &qcolor); 00051 void updateAllColorButton(); 00052 00056 void setColorOnAnnotationDisplayNodes(const char *id, QColor qcolor); 00057 00058 protected: 00060 void updateTypeLabelText(); 00062 void updateIDLabelText(); 00064 void updateNameText(); 00065 protected slots: 00066 00067 void onNameLineEditChanged(); 00070 void onAllColorChanged(QColor qcolor); 00072 void onHierarchyPointSizeChanged(double value); 00074 void onHierarchyPointSizeDefaultButtonClicked(); 00076 void onHierarchyTextScaleChanged(double value); 00078 void onHierarchyTextScaleDefaultButtonClicked(); 00080 void onHierarchyPointGlyphChanged(QString value); 00082 void onHierarchyPointGlyphTypeDefaultButtonClicked(); 00083 00084 00085 void onSizeSmallPushButtonClicked(); 00086 void onSizeMediumPushButtonClicked(); 00087 void onSizeLargePushButtonClicked(); 00088 00089 void onCoordinateChanged(QString text); 00090 00091 void onPointsTableWidgetChanged(QTableWidgetItem *tableItem); 00092 void onPointColorChanged(QColor qcolor); 00093 void onPointSelectedColorChanged(QColor qcolor); 00094 void onPointSizeChanged(double value); 00095 void onPointOpacityChanged(double value); 00096 void onPointAmbientChanged(double value); 00097 void onPointDiffuseChanged(double value); 00098 void onPointSpecularChanged(double value); 00099 void onPointGlyphChanged(QString value); 00100 void onLineColorChanged(QColor qcolor); 00101 void onLineSelectedColorChanged(QColor qcolor); 00102 void onLineWidthChanged(double value); 00103 void onLineLabelPositionChanged(double value); 00104 void onLineLabelVisibilityStateChanged(int state); 00105 void onLineTickSpacingChanged(); 00106 void onLineMaxTicksChanged(double value); 00107 void onLineOpacityChanged(double value); 00108 void onLineAmbientChanged(double value); 00109 void onLineDiffuseChanged(double value); 00110 void onLineSpecularChanged(double value); 00111 00112 void onDescriptionTextChanged(); 00113 void onTextChanged(); 00114 void onRASCoordinatesChanged(double *coords); 00115 void onDialogRejected(); 00116 void onDialogAccepted(); 00117 void onTextUnselectedColorChanged(QColor qcolor); 00118 void onTextSelectedColorChanged(QColor qcolor); 00119 void onTextScaleChanged(double value); 00120 void onTextOpacityChanged(double value); 00121 00122 void onLockUnlockButtonClicked(); 00123 void onVisibleInvisibleButtonClicked(); 00124 00125 00126 signals: 00127 void coordinateChanged(QString, char*); 00128 void textChanged(); 00129 void textChanged(const QString &); 00130 void dialogRejected(); 00131 void dialogAccepted(); 00132 void doublePropertyChanged(double, char*, int); 00133 void colorPropertyChanged(QColor, char*, int); 00134 void itemChanged(QTableWidgetItem *); 00135 void coordinatesChanged(double*); 00136 00137 private: 00138 00139 void saveLinesNode(vtkMRMLAnnotationLinesNode* node); 00140 void saveControlPoints(vtkMRMLAnnotationControlPointsNode* node); 00141 void saveAnnotationNode(vtkMRMLAnnotationNode* node); 00142 void undoLinesNode(vtkMRMLAnnotationLinesNode* node); 00143 void undoControlPoints(vtkMRMLAnnotationControlPointsNode* node); 00144 void undoAnnotationNode(vtkMRMLAnnotationNode* node); 00145 00146 // approved code starts here 00147 Ui::qSlicerAnnotationModulePropertyDialog ui; 00148 00149 vtkStdString m_id; 00150 vtkSlicerAnnotationModuleLogic* m_logic; 00151 00152 // create the slot and signal connections 00153 void createConnection(); 00154 00155 // initialize the GUI in respect to values from the logic 00156 void initialize(); 00157 00158 // lock/unlock the complete interface 00159 void lockUnlockInterface(bool lock); 00160 }; 00161 00162 #endif
1.7.4