test_sdk/gui/spgr/gtl_gui_spgr_line.h

65 lines
2.0 KiB
C
Raw Normal View History

#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