| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*
- 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 "ui/rect_part.h"
- enum class ImageRoundRadius;
- namespace Ui {
- struct CornersPixmaps {
- QPixmap p[4];
- };
- enum CachedRoundCorners : int {
- BoxCorners,
- MenuCorners,
- DateCorners,
- OverviewVideoCorners,
- OverviewVideoSelectedCorners,
- ForwardCorners,
- MediaviewSaveCorners,
- StickerHoverCorners,
- BotKeyboardCorners,
- Doc1Corners,
- Doc2Corners,
- Doc3Corners,
- Doc4Corners,
- RoundCornersCount
- };
- void FillRoundRect(QPainter &p, int x, int y, int w, int h, style::color bg, CachedRoundCorners index);
- inline void FillRoundRect(QPainter &p, const QRect &rect, style::color bg, CachedRoundCorners index) {
- FillRoundRect(p, rect.x(), rect.y(), rect.width(), rect.height(), bg, index);
- }
- [[nodiscard]] const CornersPixmaps &CachedCornerPixmaps(CachedRoundCorners index);
- [[nodiscard]] CornersPixmaps PrepareCornerPixmaps(
- int radius,
- style::color bg,
- const style::color *sh = nullptr);
- [[nodiscard]] CornersPixmaps PrepareCornerPixmaps(
- ImageRoundRadius radius,
- style::color bg,
- const style::color *sh = nullptr);
- [[nodiscard]] CornersPixmaps PrepareInvertedCornerPixmaps(
- int radius,
- style::color bg);
- void FillRoundRect(QPainter &p, int x, int y, int w, int h, style::color bg, const CornersPixmaps &corners);
- inline void FillRoundRect(QPainter &p, const QRect &rect, style::color bg, const CornersPixmaps &corners) {
- return FillRoundRect(p, rect.x(), rect.y(), rect.width(), rect.height(), bg, corners);
- }
- void FillRoundShadow(QPainter &p, int x, int y, int w, int h, style::color shadow, const CornersPixmaps &corners);
- inline void FillRoundShadow(QPainter &p, const QRect &rect, style::color shadow, const CornersPixmaps &corners) {
- FillRoundShadow(p, rect.x(), rect.y(), rect.width(), rect.height(), shadow, corners);
- }
- enum class CachedCornerRadius {
- Small,
- ThumbSmall,
- ThumbLarge,
- BubbleSmall,
- BubbleLarge,
- kCount,
- };
- [[nodiscard]] int CachedCornerRadiusValue(CachedCornerRadius tag);
- [[nodiscard]] const std::array<QImage, 4> &CachedCornersMasks(
- CachedCornerRadius radius);
- void StartCachedCorners();
- void FinishCachedCorners();
- } // namespace Ui
|