]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/property.h
pv::prop::Int: Removed assert from Int::get_widget
[pulseview.git] / pv / prop / property.h
index 002c91161faffd053d2a690e15f641a65282de9d..0b4bc7b0ed9223bca1f20706688924812d41a51f 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef PULSEVIEW_PV_PROP_PROPERTY_H
 #define PULSEVIEW_PV_PROP_PROPERTY_H
 
+#include <glib.h>
+
 #include <boost/function.hpp>
 
 #include <QString>
@@ -31,18 +33,30 @@ class QWidget;
 namespace pv {
 namespace prop {
 
-class Property
+class Property : public QObject
 {
+       Q_OBJECT;
+
+public:
+       typedef boost::function<GVariant* ()> Getter;
+       typedef boost::function<void (GVariant*)> Setter;
+
 protected:
-       Property(QString name);
+       Property(QString name, Getter getter, Setter setter);
 
 public:
        const QString& name() const;
 
-       virtual QWidget* get_widget(QWidget *parent) = 0;
+       virtual QWidget* get_widget(QWidget *parent,
+               bool auto_commit = false) = 0;
+       virtual bool labeled_widget() const;
 
        virtual void commit() = 0;
 
+protected:
+       const Getter _getter;
+       const Setter _setter;
+
 private:
        QString _name;
 };