| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | // Copyright 2015 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2+
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-29 13:35:43 +02:00
										 |  |  | #include <array>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | #include <QEvent>
 | 
					
						
							|  |  |  | #include <QWidget>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-29 13:35:43 +02:00
										 |  |  | class QMouseEvent; | 
					
						
							| 
									
										
										
										
											2017-07-04 10:58:27 -04:00
										 |  |  | class QTimer; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | class RenderWidget final : public QWidget | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   Q_OBJECT | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   explicit RenderWidget(QWidget* parent = nullptr); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-13 12:55:50 -07:00
										 |  |  |   bool event(QEvent* event) override; | 
					
						
							| 
									
										
										
										
											2018-03-21 20:53:37 +01:00
										 |  |  |   void showFullScreen(); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | signals: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void EscapePressed(); | 
					
						
							|  |  |  |   void Closed(); | 
					
						
							|  |  |  |   void HandleChanged(void* handle); | 
					
						
							|  |  |  |   void StateChanged(bool fullscreen); | 
					
						
							| 
									
										
										
										
											2018-01-26 16:23:24 +10:00
										 |  |  |   void SizeChanged(int new_width, int new_height); | 
					
						
							| 
									
										
										
										
											2018-06-08 20:47:15 +02:00
										 |  |  |   void FocusChanged(bool focus); | 
					
						
							| 
									
										
										
										
											2017-05-31 23:49:21 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2017-07-04 10:58:27 -04:00
										 |  |  |   void HandleCursorTimer(); | 
					
						
							| 
									
										
										
										
											2017-05-31 23:49:21 -07:00
										 |  |  |   void OnHideCursorChanged(); | 
					
						
							| 
									
										
										
										
											2018-04-22 10:56:15 +02:00
										 |  |  |   void OnKeepOnTopChanged(bool top); | 
					
						
							| 
									
										
										
										
											2018-03-24 23:50:03 +01:00
										 |  |  |   void SetFillBackground(bool fill); | 
					
						
							| 
									
										
										
										
											2018-04-29 13:35:43 +02:00
										 |  |  |   void OnFreeLookMouseMove(QMouseEvent* event); | 
					
						
							| 
									
										
										
										
											2017-07-04 10:58:27 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   static constexpr int MOUSE_HIDE_DELAY = 3000; | 
					
						
							|  |  |  |   QTimer* m_mouse_timer; | 
					
						
							| 
									
										
										
										
											2018-04-29 13:35:43 +02:00
										 |  |  |   std::array<float, 2> m_last_mouse{}; | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | }; |