#ifndef GTL_GUI_SPGR_SERIES_H #define GTL_GUI_SPGR_SERIES_H #include #include "chart/series/series.h" #include "core/gtl_analog_data.h" #include "math/gtl_math_spec.h" #include "gui/spgr/gtl_gui_spgr_line.h" #include "gui/gui_global.h" namespace gtl { namespace gui { namespace spgr { class GTL_GUI_EXPORT series : public ::chart::series::series { Q_OBJECT public: series(QWidget* parent, gtl::math::spec* spec, ::chart::axis_horz* axis_x, ::chart::axis_vert* axis_y); ~series(); void set_updating(bool value); gtl::analog_data* ad(); void autoscale(); void set_pos(QPointF pos); qreal time(); void set_time(qreal value); qreal spec_res() const; qreal spec_time() const; qreal min(); void set_min(qreal value); qreal max(); void set_max(qreal value); bool x_log(); void set_x_log(bool value); bool time_chart(); void set_time_chart(bool value); bool freq_chart(); void set_freq_chart(bool value); line_widget* time_widget(); line_widget* freq_widget(); virtual QString name() const; virtual void set_tool_tip(QPoint pos); virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); virtual bool get_range_y(qreal x_min, qreal x_max, qreal &y_min, qreal &y_max){return true;} virtual bool get_ranges(qreal &x_min, qreal &x_max, qreal &y_min, qreal &y_max){return true;} virtual bool get_tool_tip(QPoint pos, QString &text, QRect &rect){return true;} protected: QWidget* _parent; gtl::analog_data* _ad; gtl::math::spec* _spec; bool _is_updating; qreal _time; int _size; qreal _spec_time; qreal _max; qreal _min; int _spec_size; qreal _spec_res; bool _x_log; bool _t_chart; bool _f_chart; QPointF _pos; int _t_idx; int _f_idx; line_widget* _t_widget; line_widget* _f_widget; std::deque> _data; private slots: void update_series(); void set_icolor(); void handle_spec_changed(); void init(); QColor get_color(qreal value); signals: void data_changed(); void time_changed(); void min_changed(); void max_changed(); void x_log_changed(); void time_chart_changed(); void freq_chart_changed(); }; } } // namespace gui } // namespace gtl #endif // GTL_GUI_SPGR_SERIES_H