#ifndef CHART_MARKER_H #define CHART_MARKER_H #include "chart/instruments/instrument.h" #include "gtl_gui_chart_marker_line.h" namespace gtl { namespace gui { class chart_marker : public ::chart::instrument::instrument { Q_OBJECT public: chart_marker(::chart::series::series* parent, bool is_dark_theme); virtual ~chart_marker(); void set_pos(QPoint p); virtual void set_pos(qreal x); void set_pos(); qreal pos() const; virtual bool contains(const QPointF& point) const; virtual void set_idx(int idx); int idx() const; virtual qreal value(int series_idx); virtual void set_width(qreal width); virtual qreal width() const; protected: chart_marker_line* _line; int _idx; private: virtual void add(const QPointF &point) override; virtual void draw(const QPointF &point) override; signals: void get_nearest_x(qreal& x, chart_line::pos_behaviors); void get_series_data(qreal x, bool is_widget_pos, QVariantList &data); void get_series_values(qreal x_min, qreal x_max, int series_idx, QVariantList &data); void position_changed(); void idx_changed(); void deleting(); protected slots: virtual void line_moved(); public slots: virtual void set_color(const QColor &color); }; } } #endif // CHART_MARKER_H