USGS

Isis 3.0 Developer's Reference (API)

Home

GuiParameter.h

Go to the documentation of this file.
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