/
Stormbery
/
CEX
Обзор
Документация
Войти
/
Stormbery
/
CEX
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
include/plotdata.h
69 строк
2 KB
Stormbery
Change files
12 май 2024, 22:26
12 май 2024, 22:26
45ebe77
Код
Авторство
О чём код?
/** * \file Файл описания базового класса для отрисовки графика * * Файл содержит определение класса для отрисовки графика */ #ifndef PLOTDATA_H #define PLOTDATA_H #include <glibmm/object.h> #include <gdkmm/rgba.h> #include <cairomm/cairomm.h> #include "enums.h" using namespace Glib; /** * @brief Базовый класс рисования графика * * Класс отнаследован от класса Object * Определены базовые члены */ class PlotData:public Object{ PlotData (const PlotData &source) = delete; protected: bool m_shown;///< отображение графика на холсте bool m_managed;///< для корректеой работы Object::make_manage() Gdk::RGBA m_color;///< цвет графика Gdk::RGBA m_symbol_color;///< цвет символа на графике LineStyle m_line_style;///< стиль линии double m_line_width;///< толщина линии double m_symbol_scale_factor;///< масштаб символа на графике ustring m_name;///< название графика ustring m_symbol;///< значение символа sigc::signal<void(void)> m_SignalChanged, m_SignalDataModified; virtual void OnChanged(); virtual void OnDataModified(); public: PlotData(Gdk::RGBA color, LineStyle line_style, double line_width); sigc::signal<void(void)> SignalChanged(); sigc::signal<void(void)> SignalDataModified(); void SetName(ustring name); ustring GetName(); void Show(); void Hide(); bool IsShowing(); void SetColor(Gdk::RGBA color); Gdk::RGBA GetColor(); void SetLineStyle(LineStyle line_style); LineStyle GetLineStyle(); void SetLineWidth(double line_width); double GetLineWidth(); virtual void set_manage(); virtual void DataDraw(const Cairo::RefPtr<Cairo::Context> &cr, uint16_t width, uint16_t height, uint32_t x_interval_begin, uint32_t x_interval_end, double y_offset_min, double y_offset_max); virtual ~PlotData(); }; #endif // PLOTDATA_H