* 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>
*/
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);
+ 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);
*/
QRectF label_rect(const QRectF &rect) const;
+ /**
+ * Computes the outline rectangle of the viewport hit-box.
+ * @param rect the rectangle of the viewport area.
+ * @return Returns the rectangle of the hit-box.
+ * @remarks The default implementation returns an empty hit-box.
+ */
+ virtual QRectF hit_box_rect(const ViewItemPaintParams &pp) const;
+
void set_current_segment(const int segment);
int get_current_segment() const;
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