diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index fcb3a0cac5..d656ebe4d2 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -1300,6 +1300,8 @@ PRIVATE statistics/view/chart_view_factory.h statistics/view/linear_chart_view.cpp statistics/view/linear_chart_view.h + statistics/view/stack_chart_view.cpp + statistics/view/stack_chart_view.h storage/details/storage_file_utilities.cpp storage/details/storage_file_utilities.h storage/details/storage_settings_scheme.cpp diff --git a/Telegram/SourceFiles/statistics/statistics_common.h b/Telegram/SourceFiles/statistics/statistics_common.h index 2568ccd22b..76a3300be3 100644 --- a/Telegram/SourceFiles/statistics/statistics_common.h +++ b/Telegram/SourceFiles/statistics/statistics_common.h @@ -16,6 +16,7 @@ struct Limits final { enum class ChartViewType { Linear, + Stack, }; } // namespace Statistic diff --git a/Telegram/SourceFiles/statistics/view/chart_view_factory.cpp b/Telegram/SourceFiles/statistics/view/chart_view_factory.cpp index 5259d35804..e9b9516bdf 100644 --- a/Telegram/SourceFiles/statistics/view/chart_view_factory.cpp +++ b/Telegram/SourceFiles/statistics/view/chart_view_factory.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "statistics/statistics_common.h" #include "statistics/view/linear_chart_view.h" +#include "statistics/view/stack_chart_view.h" namespace Statistic { @@ -17,6 +18,9 @@ std::unique_ptr CreateChartView(ChartViewType type) { case ChartViewType::Linear: { return std::make_unique(); } break; + case ChartViewType::Stack: { + return std::make_unique(); + } break; default: Unexpected("Type in Statistic::CreateChartView."); } } diff --git a/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp b/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp new file mode 100644 index 0000000000..cff40d41e6 --- /dev/null +++ b/Telegram/SourceFiles/statistics/view/stack_chart_view.cpp @@ -0,0 +1,61 @@ +/* +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 +*/ +#include "statistics/view/stack_chart_view.h" + +namespace Statistic { +namespace { +} // namespace + +StackChartView::StackChartView() = default; + +StackChartView::~StackChartView() = default; + +void StackChartView::paint( + QPainter &p, + const Data::StatisticalChart &chartData, + const Limits &xIndices, + const Limits &xPercentageLimits, + const Limits &heightLimits, + const QRect &rect, + bool footer) { +} + +void StackChartView::paintSelectedXIndex( + QPainter &p, + const Data::StatisticalChart &chartData, + const Limits &xPercentageLimits, + const Limits &heightLimits, + const QRect &rect, + int selectedXIndex) { +} + +void StackChartView::setEnabled(int id, bool enabled, crl::time now) { +} + +bool StackChartView::isFinished() const { + return true; +} + +bool StackChartView::isEnabled(int id) const { + return true; +} + +float64 StackChartView::alpha(int id) const { + return 1.0; +} + +AbstractChartView::HeightLimits StackChartView::heightLimits( + Data::StatisticalChart &chartData, + Limits xIndices) { + return {}; +} + +void StackChartView::tick(crl::time now) { +} + +} // namespace Statistic diff --git a/Telegram/SourceFiles/statistics/view/stack_chart_view.h b/Telegram/SourceFiles/statistics/view/stack_chart_view.h new file mode 100644 index 0000000000..39ca1e5c75 --- /dev/null +++ b/Telegram/SourceFiles/statistics/view/stack_chart_view.h @@ -0,0 +1,56 @@ +/* +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/statistics_common.h" +#include "statistics/view/abstract_chart_view.h" + +namespace Data { +struct StatisticalChart; +} // namespace Data + +namespace Statistic { + +struct Limits; + +class StackChartView final : public AbstractChartView { +public: + StackChartView(); + ~StackChartView() override final; + + void paint( + QPainter &p, + const Data::StatisticalChart &chartData, + const Limits &xIndices, + const Limits &xPercentageLimits, + const Limits &heightLimits, + const QRect &rect, + bool footer) override; + + void paintSelectedXIndex( + QPainter &p, + const Data::StatisticalChart &chartData, + const Limits &xPercentageLimits, + const Limits &heightLimits, + const QRect &rect, + int selectedXIndex) override; + + void setEnabled(int id, bool enabled, crl::time now) override; + [[nodiscard]] bool isEnabled(int id) const override; + [[nodiscard]] bool isFinished() const override; + [[nodiscard]] float64 alpha(int id) const override; + + [[nodiscard]] HeightLimits heightLimits( + Data::StatisticalChart &chartData, + Limits xIndices) override; + + void tick(crl::time now) override; + +}; + +} // namespace Statistic