#ifndef SCIQLOP_VISUALIZATIONGRAPHRENDERINGDELEGATE_H #define SCIQLOP_VISUALIZATIONGRAPHRENDERINGDELEGATE_H #include #include class IDataSeries; class QCustomPlot; class QMouseEvent; class Unit; class VisualizationGraphWidget; class VisualizationGraphRenderingDelegate { public: /// Ctor /// @param graphWidget the graph widget to which the delegate is associated /// @remarks the graph widget must exist throughout the life cycle of the delegate explicit VisualizationGraphRenderingDelegate(VisualizationGraphWidget &graphWidget); void onMouseDoubleClick(QMouseEvent *event) noexcept; void onMouseMove(QMouseEvent *event) noexcept; /// Updates rendering when data of plot changed void onPlotUpdated() noexcept; /// Sets properties of the plot's axes from the data series passed as parameter void setAxesProperties(std::shared_ptr dataSeries) noexcept; /// Sets rendering properties of the plottables passed as parameter, from the data series that /// generated these void setPlottablesProperties(std::shared_ptr dataSeries, PlottablesMap &plottables) noexcept; /// Shows or hides graph overlay (name, close button, etc.) void showGraphOverlay(bool show) noexcept; private: class VisualizationGraphRenderingDelegatePrivate; spimpl::unique_impl_ptr impl; }; #endif // SCIQLOP_VISUALIZATIONGRAPHRENDERINGDELEGATE_H