{
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;
*/
virtual void set_colour(QColor colour);
+ /**
+ * Configures the segment display mode to use.
+ */
+ virtual void set_segment_display_mode(SegmentDisplayMode mode);
+
/**
* Paints the signal label.
* @param p the QPainter to paint into.
*/
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.
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_;
QFormLayout *popup_form_;