#include <QColor>
#include <QPainter>
+#include <QPen>
#include <QRect>
#include <QString>
#include <stdint.h>
+#include <libsigrok/libsigrok.h>
+
+#include "selectableitem.h"
+
namespace pv {
namespace data {
namespace view {
-class Signal
+class Signal : public SelectableItem
{
+ Q_OBJECT
+
private:
static const int LabelHitPadding;
- static const int LabelHighlightRadius;
+
+ static const QPen SignalAxisPen;
protected:
- Signal(QString name);
+ Signal(const sr_probe *const probe);
public:
/**
*/
void set_v_offset(int v_offset);
- /**
- * Returns true if the signal has been selected by the user.
- */
- bool selected() const;
-
- /**
- * Selects or deselects the signal.
- */
- void select(bool select = true);
-
/**
* Paints the signal with a QPainter
* @param p the QPainter to paint into.
bool pt_in_label_rect(int y, int left, int right,
const QPoint &point);
+protected:
+
+ /**
+ * Paints a zero axis across the viewport.
+ * @param p the QPainter to paint into.
+ * @param y the y-offset of the axis.
+ * @param left the x-coordinate of the left edge of the view.
+ * @param right the x-coordinate of the right edge of the view.
+ */
+ void paint_axis(QPainter &p, int y, int left, int right);
+
private:
/**
QRectF get_label_rect(int y, int right);
protected:
+ const sr_probe *const _probe;
+
QString _name;
QColor _colour;
int _v_offset;
- bool _selected;
-
QSizeF _text_size;
};