X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fcursorpair.hpp;h=ba6b2a7097590120942ad530325bf48bb4321aa0;hb=66a43b4f9cf76853e99e7f5fc2f9df49ec58bd34;hp=5d53bacfd3ad839c825e6fbc90a33b21569a34cd;hpb=a3d5a7c7682ebb991718b49ae916c5840b3b6b51;p=pulseview.git
diff --git a/pv/views/trace/cursorpair.hpp b/pv/views/trace/cursorpair.hpp
index 5d53bacf..ba6b2a70 100644
--- a/pv/views/trace/cursorpair.hpp
+++ b/pv/views/trace/cursorpair.hpp
@@ -17,14 +17,17 @@
* along with this program; if not, see .
*/
-#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_CURSORPAIR_HPP
-#define PULSEVIEW_PV_VIEWS_TRACEVIEW_CURSORPAIR_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACE_CURSORPAIR_HPP
+#define PULSEVIEW_PV_VIEWS_TRACE_CURSORPAIR_HPP
#include "cursor.hpp"
+#include "pv/globalsettings.hpp"
#include
+#include
#include
+#include
using std::pair;
using std::shared_ptr;
@@ -35,11 +38,14 @@ namespace pv {
namespace views {
namespace trace {
-class CursorPair : public TimeItem
+class View;
+
+class CursorPair : public TimeItem, public GlobalSettingsInterface
{
+ Q_OBJECT
+
private:
static const int DeltaPadding;
- static const QColor ViewportFillColour;
public:
/**
@@ -48,7 +54,8 @@ public:
*/
CursorPair(View &view);
-public:
+ ~CursorPair();
+
/**
* Returns true if the item is visible and enabled.
*/
@@ -69,13 +76,18 @@ public:
*/
void set_time(const pv::util::Timestamp& time) override;
+ virtual const pv::util::Timestamp time() const override;
+
float get_x() const override;
+ virtual const pv::util::Timestamp delta(const pv::util::Timestamp& other) const override;
+
QPoint drag_point(const QRect &rect) const override;
pv::widgets::Popup* create_popup(QWidget *parent) override;
-public:
+ QMenu* create_header_context_menu(QWidget *parent) override;
+
QRectF label_rect(const QRectF &rect) const override;
/**
@@ -96,20 +108,31 @@ public:
/**
* Constructs the string to display.
*/
- QString format_string();
-
- void compute_text_size(QPainter &p);
+ QString format_string(int max_width = 0, std::function query_size
+ = [](const QString& s) -> double { (void)s; return 0; });
pair get_cursor_offsets() const;
+ virtual void on_setting_changed(const QString &key, const QVariant &value) override;
+
+public Q_SLOTS:
+ void on_hover_point_changed(const QWidget* widget, const QPoint &hp);
+
+private:
+ QString format_string_sub(int time_precision, int freq_precision, bool show_unit = true);
+
private:
shared_ptr first_, second_;
+ QColor fill_color_;
QSizeF text_size_;
+ QRectF label_area_;
+ bool label_incomplete_;
+ bool show_interval_, show_frequency_, show_samples_;
};
} // namespace trace
} // namespace views
} // namespace pv
-#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_CURSORPAIR_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACE_CURSORPAIR_HPP