00001 #ifndef VARIABLE_VIEW_PLUGIN_H 00002 #define VARIABLE_VIEW_PLUGIN_H 00003 00004 #include <QWidget> 00005 #include <QDialog> 00006 #include "../compiler/compiler.h" 00007 00008 class QLabel; 00009 class QComboBox; 00010 00011 namespace Aseba 00012 { 00015 00016 class TargetVariablesModel; 00017 00018 class VariablesViewPlugin: public QWidget 00019 { 00020 protected: 00021 TargetVariablesModel *variablesModel; 00022 00023 public: 00024 VariablesViewPlugin(TargetVariablesModel* variablesModel); 00025 00026 virtual ~VariablesViewPlugin(); 00027 00028 void invalidateVariableModel(); 00029 00030 protected: 00031 friend class TargetVariablesModel; 00033 virtual void variableValueUpdated(const QString& name, const VariablesDataVector& values) = 0; 00034 }; 00035 00036 class LinearCameraViewVariablesDialog : public QDialog 00037 { 00038 Q_OBJECT 00039 00040 public: 00041 QComboBox* redVariable; 00042 QComboBox* greenVariable; 00043 QComboBox* blueVariable; 00044 QComboBox* valuesRanges; 00045 00046 LinearCameraViewVariablesDialog(TargetVariablesModel* variablesModel); 00047 virtual ~LinearCameraViewVariablesDialog() {} 00048 }; 00049 00050 class LinearCameraViewPlugin: public VariablesViewPlugin 00051 { 00052 Q_OBJECT 00053 00054 public: 00055 LinearCameraViewPlugin(TargetVariablesModel* variablesModel); 00056 00057 virtual void variableValueUpdated(const QString& name, const VariablesDataVector& values); 00058 00059 private: 00060 enum ValuesRange 00061 { 00062 VALUES_RANGE_AUTO = 0, 00063 VALUES_RANGE_8BITS, 00064 VALUES_RANGE_PERCENT 00065 } valuesRange; 00066 QLabel *image; 00067 QString redName, greenName, blueName; 00068 VariablesDataVector red, green, blue; 00069 }; 00070 00072 }; // Aseba 00073 00074 #endif