| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | /*
 | 
					
						
							|  |  |  | This file is part of Telegram Desktop, | 
					
						
							| 
									
										
										
										
											2018-01-03 13:23:14 +03:00
										 |  |  | the official desktop application for the Telegram messaging service. | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-03 13:23:14 +03:00
										 |  |  | For license and copyright information please follow this link: | 
					
						
							|  |  |  | https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | */ | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-28 13:51:00 +03:00
										 |  |  | #include "platform/platform_main_window.h"
 | 
					
						
							| 
									
										
										
										
											2022-03-01 05:51:40 +04:00
										 |  |  | #include "base/unique_qptr.h"
 | 
					
						
							| 
									
										
										
										
											2020-01-31 10:34:37 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-21 21:25:44 +04:00
										 |  |  | class QMenuBar; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-01 05:51:40 +04:00
										 |  |  | namespace Ui { | 
					
						
							|  |  |  | class PopupMenu; | 
					
						
							|  |  |  | } // namespace Ui
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | namespace Platform { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MainWindow : public Window::MainWindow { | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-06-06 14:20:21 +03:00
										 |  |  | 	explicit MainWindow(not_null<Window::Controller*> controller); | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-01-22 16:16:18 +04:00
										 |  |  | 	bool isActiveForTrayMenu() override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-28 20:14:19 +04:00
										 |  |  | 	~MainWindow(); | 
					
						
							| 
									
										
										
										
											2020-03-14 16:13:33 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | protected: | 
					
						
							| 
									
										
										
										
											2022-03-01 04:33:10 +04:00
										 |  |  | 	bool eventFilter(QObject *obj, QEvent *evt) override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-03 05:24:13 +04:00
										 |  |  | 	void initHook() override; | 
					
						
							| 
									
										
										
										
											2016-11-09 11:34:38 +03:00
										 |  |  | 	void unreadCounterChangedHook() override; | 
					
						
							| 
									
										
										
										
											2020-03-04 09:45:44 +04:00
										 |  |  | 	void updateGlobalMenuHook() override; | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-05-28 01:11:16 +03:00
										 |  |  | 	void workmodeUpdated(Core::Settings::WorkMode mode) override; | 
					
						
							| 
									
										
										
										
											2020-03-04 09:45:44 +04:00
										 |  |  | 	void createGlobalMenu() override; | 
					
						
							| 
									
										
										
										
											2017-03-04 22:36:59 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2022-01-21 21:25:44 +04:00
										 |  |  | 	QMenuBar *psMainMenu = nullptr; | 
					
						
							| 
									
										
										
										
											2020-03-04 09:45:44 +04:00
										 |  |  | 	QAction *psLogout = nullptr; | 
					
						
							|  |  |  | 	QAction *psUndo = nullptr; | 
					
						
							|  |  |  | 	QAction *psRedo = nullptr; | 
					
						
							|  |  |  | 	QAction *psCut = nullptr; | 
					
						
							|  |  |  | 	QAction *psCopy = nullptr; | 
					
						
							|  |  |  | 	QAction *psPaste = nullptr; | 
					
						
							|  |  |  | 	QAction *psDelete = nullptr; | 
					
						
							|  |  |  | 	QAction *psSelectAll = nullptr; | 
					
						
							|  |  |  | 	QAction *psContacts = nullptr; | 
					
						
							|  |  |  | 	QAction *psAddContact = nullptr; | 
					
						
							|  |  |  | 	QAction *psNewGroup = nullptr; | 
					
						
							|  |  |  | 	QAction *psNewChannel = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	QAction *psBold = nullptr; | 
					
						
							|  |  |  | 	QAction *psItalic = nullptr; | 
					
						
							|  |  |  | 	QAction *psUnderline = nullptr; | 
					
						
							|  |  |  | 	QAction *psStrikeOut = nullptr; | 
					
						
							|  |  |  | 	QAction *psMonospace = nullptr; | 
					
						
							|  |  |  | 	QAction *psClearFormat = nullptr; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-27 19:07:45 +04:00
										 |  |  | 	void updateIconCounters(); | 
					
						
							|  |  |  | 	void handleNativeSurfaceChanged(bool exist); | 
					
						
							| 
									
										
										
										
											2020-08-28 20:14:19 +04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-16 15:59:54 +03:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } // namespace Platform
 |