]> sigrok.org Git - pulseview.git/blobdiff - pv/signal.h
Fix #include guards.
[pulseview.git] / pv / signal.h
index 8faff77c6a11ba1dc5550b4be9cb23527724f900..789b43601deff51dbe36c477a24b0c79f3df7b15 100644 (file)
@@ -18,6 +18,9 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#ifndef PULSEVIEW_PV_SIGNAL_H
+#define PULSEVIEW_PV_SIGNAL_H
+
 #include <boost/shared_ptr.hpp>
 
 #include <QPainter>
@@ -40,8 +43,16 @@ protected:
        Signal(QString name);
 
 public:
+       /**
+        * Gets the name of this signal.
+        */
        QString get_name() const;
 
+       /**
+        * Sets the name of the signal.
+        */
+       void set_name(QString name);
+
        /**
         * Paints the signal with a QPainter
         * @param p the QPainter to paint into.
@@ -65,21 +76,25 @@ public:
 
        /**
         * Determines if a point is in the header label rect.
-        * @param p the QPainter to paint into.
         * @param rect the rectangular area to draw the label into.
         * @param point the point to test.
         */
-       bool pt_in_label_rect(QPainter &p, const QRect &rect,
-               const QPoint &point);
+       bool pt_in_label_rect(const QRect &rect, const QPoint &point);
 
 private:
+
+       /**
+        * Computes an caches the size of the label text.
+        */
+       void compute_text_size(QPainter &p);
+
        /**
         * Computes the outline rectangle of a label.
         * @param p the QPainter to lay out text with.
         * @param rect The rectangle of the signal header.
         * @return Returns the rectangle of the signal label.
         */
-       virtual QRectF get_label_rect(QPainter &p, const QRect &rect);
+       QRectF get_label_rect(const QRect &rect);
 
 protected:
        /**
@@ -95,6 +110,9 @@ protected:
 
 protected:
        QString _name;
+       QSizeF _text_size;
 };
 
 } // namespace pv
+
+#endif // PULSEVIEW_PV_SIGNAL_H