* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
-#define PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
+#ifndef PULSEVIEW_PV_VIEW_ANALOGSIGNAL_HPP
+#define PULSEVIEW_PV_VIEW_ANALOGSIGNAL_HPP
#include "signal.hpp"
std::shared_ptr<pv::data::Analog> analog_data() const;
- void set_scale(float scale);
-
/**
* Computes the vertical extents of the contents of this row item.
* @return A pair containing the minimum and maximum y-values.
*/
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 RowItemPaintParams &pp);
+ 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 RowItemPaintParams &pp);
+ void paint_mid(QPainter &p, const ViewItemPaintParams &pp);
private:
void paint_trace(QPainter &p,
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
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_ANALOGSIGNAL_H
+#endif // PULSEVIEW_PV_VIEW_ANALOGSIGNAL_HPP