#ifndef GTL_GUI_SPGR_LINE_H #define GTL_GUI_SPGR_LINE_H #include "gui/gtl_gui_chart.h" #include "gui/gtl_gui_chart_series.h" #include "gui/gtl_gui_chart_widget.h" #include "gui/gui_global.h" namespace gtl { namespace gui { namespace spgr { class GTL_GUI_EXPORT line_chart : public gui::chart { Q_OBJECT public: line_chart(QWidget* parent = NULL, chart_axis_x *axis_x = NULL, chart_axis_y *axis_y = NULL) : gui::chart(parent, axis_x, axis_y) {} virtual void save(QDomElement& root_element){} virtual void load(const QDomElement& root_element){} void add(gui::chart_series* series){ ::chart::widget::add(series); }; protected: virtual chart_axis_y* create_axis_y(){ return nullptr; } virtual chart_series* create_series(gtl::analog_data* ai){ return nullptr; } virtual void contextMenuEvent(QContextMenuEvent *event){} public slots: virtual void add_ad(gtl::analog_data* ad){} virtual void remove_ad(gtl::analog_data* ad){} protected slots: virtual void device_recieved_data(){} }; class GTL_GUI_EXPORT line_widget : public QWidget { Q_OBJECT public: line_widget(QWidget* parent = NULL, ::chart::axis_horz* axis_x = NULL, ::chart::axis_vert* axis_y = NULL, gtl::analog_data* ad = nullptr); ~line_widget(); void set_data(qreal* values, qreal size, qreal dx); private: gui::chart_series* _series; line_chart* _chart; gui::chart_widget* _widget; void closeEvent(QCloseEvent *event); signals: void closed(); void deleted(); }; } } // namespace gui } // namespace gtl #endif // GTL_GUI_SPGR_LINE_H