{
Q_OBJECT
+public:
+ /**
+ * Allowed values for the multi-segment display mode.
+ *
+ * Note: Consider these locations when updating the list:
+ * *
+ * @ref View::set_segment_display_mode
+ * @ref View::on_segment_changed
+ * @ref AnalogSignal::get_analog_segment_to_paint
+ * @ref AnalogSignal::get_logic_segment_to_paint
+ * @ref LogicSignal::get_logic_segment_to_paint
+ * @ref StandardBar
+ */
+ enum SegmentDisplayMode {
+ ShowLastSegmentOnly = 1,
+ ShowLastCompleteSegmentOnly,
+ ShowSingleSegmentOnly,
+ ShowAllSegments,
+ ShowAccumulatedIntensity
+ };
+
private:
static const QPen AxisPen;
static const int LabelHitPadding;
- static const QColor BrightGrayBGColour;
- static const QColor DarkGrayBGColour;
+ static const QColor BrightGrayBGColor;
+ static const QColor DarkGrayBGColor;
protected:
Trace(shared_ptr<data::SignalBase> channel);
shared_ptr<data::SignalBase> base() const;
/**
- * Sets the name of the signal.
+ * Configures the segment display mode to use.
*/
- virtual void set_name(QString name);
-
- /**
- * Set the colour of the signal.
- */
- virtual void set_colour(QColor colour);
+ virtual void set_segment_display_mode(SegmentDisplayMode mode);
/**
* Paints the signal label.
*/
QRectF label_rect(const QRectF &rect) const;
+ void set_current_segment(const int segment);
+
+ int get_current_segment() const;
+
protected:
/**
* Paints the background layer of the signal with a QPainter.
*/
void paint_axis(QPainter &p, ViewItemPaintParams &pp, int y);
- void add_colour_option(QWidget *parent, QFormLayout *form);
+ void add_color_option(QWidget *parent, QFormLayout *form);
void create_popup_form();
protected Q_SLOTS:
virtual void on_name_changed(const QString &text);
- virtual void on_colour_changed(const QColor &colour);
+ virtual void on_color_changed(const QColor &color);
void on_popup_closed();
private Q_SLOTS:
void on_nameedit_changed(const QString &name);
- void on_colouredit_changed(const QColor &colour);
+ void on_coloredit_changed(const QColor &color);
protected:
shared_ptr<data::SignalBase> base_;
+ QPen axis_pen_;
+
+ SegmentDisplayMode segment_display_mode_;
+
+ /// The ID of the currently displayed segment
+ int current_segment_;
private:
pv::widgets::Popup *popup_;