statistics_graphics.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #include "statistics/statistics_graphics.h"
  8. #include "data/data_statistics_chart.h"
  9. #include "ui/effects/credits_graphics.h" // GenerateStars.
  10. #include "ui/painter.h"
  11. #include "styles/style_basic.h"
  12. #include "styles/style_statistics.h"
  13. namespace Statistic {
  14. QImage ChartCurrencyIcon(
  15. const Data::StatisticalChart &chartData,
  16. std::optional<QColor> color) {
  17. auto result = QImage();
  18. const auto iconSize = st::statisticsCurrencyIcon.size();
  19. if (chartData.currency == Data::StatisticalCurrency::Ton) {
  20. result = QImage(
  21. iconSize * style::DevicePixelRatio(),
  22. QImage::Format_ARGB32_Premultiplied);
  23. result.setDevicePixelRatio(style::DevicePixelRatio());
  24. result.fill(Qt::transparent);
  25. {
  26. auto p = Painter(&result);
  27. if (const auto w = iconSize.width(); w && color) {
  28. st::statisticsCurrencyIcon.paint(p, 0, 0, w, *color);
  29. } else {
  30. st::statisticsCurrencyIcon.paint(p, 0, 0, iconSize.width());
  31. }
  32. }
  33. } else if (chartData.currency == Data::StatisticalCurrency::Credits) {
  34. return Ui::GenerateStars(iconSize.height(), 1);
  35. }
  36. return result;
  37. }
  38. } // namespace Statistic