X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fviewitem.hpp;h=3e6801fe3186dffe74c10263f27b4192e95ef871;hp=6a78b1afb583eb1c20256f936e4d0a159fd093ef;hb=49028d6c2d8aaf61b528e2dfb7ad3fe1ccb7169e;hpb=26e3af6b15f083239981729b2c3c109ed1d87ba8 diff --git a/pv/view/viewitem.hpp b/pv/view/viewitem.hpp index 6a78b1af..3e6801fe 100644 --- a/pv/view/viewitem.hpp +++ b/pv/view/viewitem.hpp @@ -25,6 +25,8 @@ #include +#include "viewitempaintparams.hpp" + class QAction; class QMenu; class QWidget; @@ -41,7 +43,7 @@ class ViewItem : public QObject { Q_OBJECT -private: +public: static const int HighlightRadius; public: @@ -95,6 +97,35 @@ public: */ virtual QRectF label_rect(const QRectF &rect) const = 0; + /** + * Paints the signal label. + * @param p the QPainter to paint into. + * @param rect the rectangle of the header area. + * @param hover true if the label is being hovered over by the mouse. + */ + virtual void paint_label(QPainter &p, const QRect &rect, bool hover) = 0; + + /** + * Paints the background layer of the item 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 ViewItemPaintParams &pp); + + /** + * Paints the mid-layer of the item 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 ViewItemPaintParams &pp); + + /** + * Paints the foreground layer of the item 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 ViewItemPaintParams &pp); + public: /** * Gets the text colour.