mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-05-10 18:04:01 +02:00
59 lines
1.3 KiB
C++
59 lines
1.3 KiB
C++
/*
|
|
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
|