Use libsigrok C++ bindings (patch version 7).
[pulseview.git] / pv / prop / property.h
index 6ab83193963c3d0a8f6b470c2bd551c41ad625ac..0d1b53160ca2381997ce5aa621b6b8dcd47a30d3 100644 (file)
 #ifndef PULSEVIEW_PV_PROP_PROPERTY_H
 #define PULSEVIEW_PV_PROP_PROPERTY_H
 
-#include <glib-2.0/glib.h>
-
-#include <boost/function.hpp>
+#include <glibmm-2.4/glibmm.h>
 
+#include <functional>
 #include <QString>
 #include <QWidget>
 
@@ -33,11 +32,13 @@ 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;
+       typedef std::function<Glib::VariantBase ()> Getter;
+       typedef std::function<void (Glib::VariantBase)> Setter;
 
 protected:
        Property(QString name, Getter getter, Setter setter);
@@ -45,7 +46,9 @@ protected:
 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;