std::shared_ptr<sigrok::Channel> channel,
std::shared_ptr<pv::data::Analog> data);
- virtual ~AnalogSignal();
+ virtual ~AnalogSignal() = default;
std::shared_ptr<pv::data::SignalData> data() const;
*/
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);
+
+ /**
+ * @copydoc pv::view::Signal::signal_scale_handle_drag_release()
+ */
+ void scale_handle_drag_release();
+
/**
* Paints the background layer of the signal with a QPainter
* @param p the QPainter to paint into.
* @param pp the painting parameters object to paint with..
- **/
+ */
void paint_back(QPainter &p, const ViewItemPaintParams &pp);
/**
* Paints the mid-layer of the signal with a QPainter
* @param p the QPainter to paint into.
* @param pp the painting parameters object to paint with..
- **/
+ */
void paint_mid(QPainter &p, const ViewItemPaintParams &pp);
private:
int y, int left, const int64_t start, const int64_t end,
const double pixels_offset, const double samples_per_pixel);
+ /**
+ * Computes the scale factor from the scale index.
+ */
+ float scale() const;
+
private:
std::shared_ptr<pv::data::Analog> data_;
- float scale_;
+
+ int scale_index_;
+ int scale_index_drag_offset_;
};
} // namespace view