dialogs_quick_action.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. #pragma once
  8. class History;
  9. class PeerData;
  10. namespace Dialogs::Ui {
  11. enum class QuickDialogAction;
  12. enum class QuickDialogActionLabel;
  13. } // namespace Dialogs::Ui
  14. namespace Lottie {
  15. class Icon;
  16. } // namespace Lottie
  17. namespace Window {
  18. class SessionController;
  19. } // namespace Window
  20. namespace Dialogs {
  21. void PerformQuickDialogAction(
  22. not_null<Window::SessionController*> controller,
  23. not_null<PeerData*> peer,
  24. Ui::QuickDialogAction action,
  25. FilterId filterId);
  26. [[nodiscard]] QString ResolveQuickDialogLottieIconName(
  27. not_null<PeerData*> peer,
  28. Ui::QuickDialogAction action,
  29. FilterId filterId);
  30. [[nodiscard]] Ui::QuickDialogActionLabel ResolveQuickDialogLabel(
  31. not_null<History*> history,
  32. Ui::QuickDialogAction action,
  33. FilterId filterId);
  34. [[nodiscard]] QString ResolveQuickDialogLabel(Ui::QuickDialogActionLabel);
  35. [[nodiscard]] const style::color &ResolveQuickActionBg(
  36. Ui::QuickDialogActionLabel);
  37. [[nodiscard]] const style::color &ResolveQuickActionBgActive(
  38. Ui::QuickDialogActionLabel);
  39. void DrawQuickAction(
  40. QPainter &p,
  41. const QRect &rect,
  42. not_null<Lottie::Icon*> icon,
  43. Ui::QuickDialogActionLabel label);
  44. } // namespace Dialogs