test_sdk/gui/gtl_gui_chart_marker.h

58 lines
1.6 KiB
C
Raw Normal View History

#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