]> sigrok.org Git - pulseview.git/blobdiff - pv/view/logicsignal.hpp
LogicSignal: Apply scale handle dragging
[pulseview.git] / pv / view / logicsignal.hpp
index 7eb67dec836b1b86731177188985c2e134ab0603..dfc883f505e49ae87e708bb43f1036fed98d5728 100644 (file)
@@ -31,12 +31,15 @@ class QIcon;
 class QToolBar;
 
 namespace sigrok {
-class Device;
 class TriggerMatchType;
 }
 
 namespace pv {
 
+namespace devices {
+class Device;
+}
+
 namespace data {
 class Logic;
 }
@@ -48,9 +51,6 @@ class LogicSignal : public Signal
        Q_OBJECT
 
 private:
-       static const int SignalHeight;
-       static const int SignalMargin;
-
        static const float Oversampling;
 
        static const QColor EdgeColour;
@@ -65,7 +65,7 @@ private:
 
 public:
        LogicSignal(pv::Session &session,
-               std::shared_ptr<sigrok::Device> device,
+               std::shared_ptr<devices::Device> device,
                std::shared_ptr<sigrok::Channel> channel,
                std::shared_ptr<pv::data::Logic> data);
 
@@ -83,6 +83,17 @@ public:
         */
        std::pair<int, int> v_extents() const;
 
+       /**
+        * Returns the offset to show the drag handle.
+        */
+       int scale_handle_offset() const;
+
+       /**
+        * Handles the scale handle being dragged to an offset.
+        * @param offset the offset the scale handle was dragged to.
+        */
+       void scale_handle_dragged(int offset);
+
        /**
         * Paints the background layer of the signal with a QPainter
         * @param p the QPainter to paint into.
@@ -127,7 +138,9 @@ private Q_SLOTS:
        void on_trigger();
 
 private:
-       std::shared_ptr<sigrok::Device> device_;
+       int signal_height_;
+
+       std::shared_ptr<pv::devices::Device> device_;
        std::shared_ptr<pv::data::Logic> data_;
 
        const sigrok::TriggerMatchType *trigger_match_;