* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_H
-#define PULSEVIEW_PV_VIEW_HEADERITEM_H
+#ifndef PULSEVIEW_PV_VIEW_HEADERITEM_HPP
+#define PULSEVIEW_PV_VIEW_HEADERITEM_HPP
#include <memory>
#include <QPropertyAnimation>
-#include "rowitempaintparams.hpp"
-#include "selectableitem.hpp"
+#include "viewitem.hpp"
namespace pv {
namespace view {
class RowItemOwner;
-class RowItem : public SelectableItem,
+class RowItem : public ViewItem,
public std::enable_shared_from_this<pv::view::RowItem>
{
Q_OBJECT
int get_visual_y() const;
/**
- * Gets the drag point of the row item.
+ * Drags the item to a delta relative to the drag point.
+ * @param delta the offset from the drag point.
*/
- QPoint point() const;
+ void drag_by(const QPoint &delta);
/**
- * Computes the vertical extents of the contents of this row item.
- * @return A pair containing the minimum and maximum y-values.
+ * Gets the arrow-tip point of the row item marker.
+ * @param rect the rectangle of the header area.
*/
- virtual std::pair<int, int> v_extents() const = 0;
-
- /**
- * Paints the background layer of the trace with a QPainter
- * @param p the QPainter to paint into.
- * @param pp the painting parameters object to paint with.
- **/
- virtual void paint_back(QPainter &p, const RowItemPaintParams &pp);
-
- /**
- * Paints the mid-layer of the trace with a QPainter
- * @param p the QPainter to paint into.
- * @param pp the painting parameters object to paint with.
- **/
- virtual void paint_mid(QPainter &p, const RowItemPaintParams &pp);
+ QPoint point(const QRect &rect) const;
/**
- * Paints the foreground layer of the trace with a QPainter
- * @param p the QPainter to paint into.
- * @param pp the painting parameters object to paint with.
- **/
- virtual void paint_fore(QPainter &p, const RowItemPaintParams &pp);
-
- /**
- * Paints the signal label.
- * @param p the QPainter to paint into.
- * @param right the x-coordinate of the right edge of the header
- * area.
- * @param hover true if the label is being hovered over by the mouse.
- */
- virtual void paint_label(QPainter &p, int right, bool hover) = 0;
-
- /**
- * Computes the outline rectangle of a label.
- * @param right the x-coordinate of the right edge of the header
- * area.
- * @return Returns the rectangle of the signal label.
+ * Computes the vertical extents of the contents of this row item.
+ * @return A pair containing the minimum and maximum y-values.
*/
- virtual QRectF label_rect(int right) const = 0;
+ virtual std::pair<int, int> v_extents() const = 0;
public:
virtual void hover_point_changed();
} // namespace view
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_HEADERITEM_H
+#endif // PULSEVIEW_PV_VIEW_HEADERITEM_HPP