|
Isis 3.0 Developer's Reference (API) |
Home |
00001 #ifndef Isis_GuiParameter_h 00002 #define Isis_GuiParameter_h 00003 00027 #include <QGridLayout> 00028 #include <QLabel> 00029 #include <QLineEdit> 00030 #include <QMenu> 00031 #include <QObject> 00032 #include <QString> 00033 #include <QToolButton> 00034 00035 namespace Isis { 00036 class UserInterface; 00037 00050 class GuiParameter : public QObject { 00051 00052 Q_OBJECT 00053 00054 public: 00055 00056 GuiParameter(QGridLayout *grid, UserInterface &ui, int group, int param); 00057 virtual ~GuiParameter(); 00058 00060 QString Name() const { 00061 return p_name; 00062 }; 00063 00064 void SetToDefault(); 00065 00066 void SetToCurrent(); 00067 00068 virtual QString Value() = 0; 00069 00070 virtual void Set(QString newValue) = 0; 00071 00072 void SetEnabled(bool enabled, bool isParentCombo=false); 00073 00075 bool IsEnabled() const { 00076 return p_label->isEnabled(); 00077 } 00078 00079 virtual bool IsModified(); 00080 00081 void Update(); 00082 00083 void RememberWidget(QWidget *w); 00084 00085 QWidget *AddHelpers(QObject *lo); 00086 00087 virtual std::vector<QString> Exclusions(); 00088 00089 enum ParameterType { IntegerWidget, DoubleWidget, StringWidget, 00090 ListWidget, FileNameWidget, CubeWidget, 00091 BooleanWidget, ComboWidget 00092 }; 00093 ParameterType Type() { 00094 return p_type; 00095 }; 00096 00097 protected: 00098 00099 QToolButton *p_fileButton; 00100 QLineEdit *p_lineEdit; 00101 00102 int p_group; 00103 int p_param; 00104 QString p_name; 00105 UserInterface *p_ui; 00106 00107 QLabel *p_label; 00108 00109 QList<QWidget *> p_widgetList; 00110 00111 ParameterType p_type; 00112 00113 private: 00114 QMenu *p_helperMenu; 00115 00116 signals: 00117 void ValueChanged(); 00118 void HelperTrigger(const QString &); 00119 00120 }; 00121 }; 00122 00123 #endif