* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACE_HPP
-#define PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACE_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACE_TRACE_HPP
+#define PULSEVIEW_PV_VIEWS_TRACE_TRACE_HPP
#include <QColor>
#include <QPainter>
static const QColor BrightGrayBGColor;
static const QColor DarkGrayBGColor;
+ static const QColor ErrorBgColor;
protected:
- Trace(shared_ptr<data::SignalBase> channel);
+ Trace(shared_ptr<data::SignalBase> signal);
~Trace();
public:
*/
shared_ptr<data::SignalBase> base() const;
+ /**
+ * Returns true if the item may be selected.
+ */
+ virtual bool is_selectable(QPoint pos) const;
+
+ /**
+ * Returns true if the item may be dragged/moved.
+ */
+ virtual bool is_draggable(QPoint pos) const;
+
/**
* Configures the segment display mode to use.
*/
*/
virtual void paint_label(QPainter &p, const QRect &rect, bool hover);
- virtual QMenu* create_context_menu(QWidget *parent);
+ /**
+ * Paints the signal's current error message text.
+ * @param p the QPainter to paint into.
+ * @param pp The painting parameters object to paint with.
+ */
+ virtual void paint_error(QPainter &p, const ViewItemPaintParams &pp);
+
+ virtual QMenu* create_header_context_menu(QWidget *parent);
+
+ virtual QMenu* create_view_context_menu(QWidget *parent, QPoint &click_pos);
pv::widgets::Popup* create_popup(QWidget *parent);
/**
* Computes the outline rectangle of the viewport hit-box.
- * @param rect the rectangle of the viewport area.
+ * @param pp The painting parameters object to paint with.
* @return Returns the rectangle of the hit-box.
* @remarks The default implementation returns an empty hit-box.
*/
protected Q_SLOTS:
virtual void on_name_changed(const QString &text);
-
virtual void on_color_changed(const QColor &color);
+ virtual void on_error_message_changed(const QString &msg);
void on_popup_closed();
void on_coloredit_changed(const QColor &color);
+ void on_create_marker_here() const;
+
protected:
shared_ptr<data::SignalBase> base_;
QPen axis_pen_;
SegmentDisplayMode segment_display_mode_;
bool show_hover_marker_;
+ uint32_t context_menu_x_pos_;
+
/// The ID of the currently displayed segment
int current_segment_;
} // namespace views
} // namespace pv
-#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_TRACE_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACE_TRACE_HPP