| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #pragma once
- #include "statistics/chart_rulers_data.h"
- namespace Data {
- struct StatisticalChart;
- } // namespace Data
- namespace Statistic {
- enum class ChartViewType;
- struct Limits;
- class LinesFilterController;
- struct ChartRulersView final {
- public:
- ChartRulersView();
- void setChartData(
- const Data::StatisticalChart &chartData,
- ChartViewType type,
- std::shared_ptr<LinesFilterController> linesFilter);
- void paintRulers(QPainter &p, const QRect &r);
- void paintCaptionsToRulers(QPainter &p, const QRect &r);
- void computeRelative(int newMaxHeight, int newMinHeight);
- void setAlpha(float64 value);
- void add(Limits newHeight, bool animated);
- private:
- bool _isDouble = false;
- QPen _leftPen;
- QPen _rightPen;
- int _leftLineId = 0;
- int _rightLineId = 0;
- QImage _currencyIcon;
- Fn<QString(float64)> _leftCustomCaption = nullptr;
- Fn<QString(float64)> _rightCustomCaption = nullptr;
- std::vector<ChartRulersData> _rulers;
- std::shared_ptr<LinesFilterController> _linesFilter;
- float64 _scaledLineRatio = 0.;
- bool _isLeftLineScaled = false;
- };
- } // namespace Statistic
|