main_window_linux.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. #include "platform/platform_main_window.h"
  9. #include "base/unique_qptr.h"
  10. class QMenuBar;
  11. namespace Ui {
  12. class PopupMenu;
  13. } // namespace Ui
  14. namespace Platform {
  15. class MainWindow : public Window::MainWindow {
  16. public:
  17. explicit MainWindow(not_null<Window::Controller*> controller);
  18. ~MainWindow();
  19. void updateWindowIcon() override;
  20. protected:
  21. bool eventFilter(QObject *obj, QEvent *evt) override;
  22. void unreadCounterChangedHook() override;
  23. void updateGlobalMenuHook() override;
  24. void workmodeUpdated(Core::Settings::WorkMode mode) override;
  25. void createGlobalMenu() override;
  26. private:
  27. void updateUnityCounter();
  28. QMenuBar *psMainMenu = nullptr;
  29. QAction *psLogout = nullptr;
  30. QAction *psUndo = nullptr;
  31. QAction *psRedo = nullptr;
  32. QAction *psCut = nullptr;
  33. QAction *psCopy = nullptr;
  34. QAction *psPaste = nullptr;
  35. QAction *psDelete = nullptr;
  36. QAction *psSelectAll = nullptr;
  37. QAction *psContacts = nullptr;
  38. QAction *psAddContact = nullptr;
  39. QAction *psNewGroup = nullptr;
  40. QAction *psNewChannel = nullptr;
  41. QAction *psBold = nullptr;
  42. QAction *psItalic = nullptr;
  43. QAction *psUnderline = nullptr;
  44. QAction *psStrikeOut = nullptr;
  45. QAction *psBlockquote = nullptr;
  46. QAction *psMonospace = nullptr;
  47. QAction *psClearFormat = nullptr;
  48. bool _exposed = false;
  49. };
  50. [[nodiscard]] inline int32 ScreenNameChecksum(const QString &name) {
  51. return Window::DefaultScreenNameChecksum(name);
  52. }
  53. } // namespace Platform