Enum: Use slider instead of combo box for contiguous ranges
[pulseview.git] / pv / prop / enum.hpp
index 7216508ca75fcf1f3590fa8febea78b681eb498c..1434e7e9e0419aa301b03b9d21febcd2f0f66a7a 100644 (file)
 
 #include <QMetaType>
 
+using std::pair;
+using std::vector;
+
 Q_DECLARE_METATYPE(Glib::VariantBase);
 
 class QComboBox;
+class QLabel;
+class QSlider;
 
 namespace pv {
 namespace prop {
@@ -39,25 +44,33 @@ class Enum : public Property
        Q_OBJECT;
 
 public:
-       Enum(QString name, std::vector<std::pair<Glib::VariantBase, QString> > values,
+       Enum(QString name, QString desc,
+               vector<pair<Glib::VariantBase, QString> > values,
                Getter getter, Setter setter);
 
        virtual ~Enum() = default;
 
        QWidget* get_widget(QWidget *parent, bool auto_commit);
+       void update_widget();
 
        void commit();
 
 private Q_SLOTS:
-       void on_current_item_changed(int);
+       void on_current_index_changed(int);
+       void on_value_changed(int);
 
 private:
-       const std::vector< std::pair<Glib::VariantBase, QString> > values_;
+       const vector< pair<Glib::VariantBase, QString> > values_;
+       bool is_range_;
 
        QComboBox *selector_;
+
+       QWidget *slider_layout_widget_;
+       QSlider *slider_;
+       QLabel *slider_label_;
 };
 
-} // prop
-} // pv
+}  // namespace prop
+}  // namespace pv
 
 #endif // PULSEVIEW_PV_PROP_ENUM_HPP