| 
									
										
										
										
											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
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QMainWindow>
 | 
					
						
							|  |  |  | #include <QStackedWidget>
 | 
					
						
							|  |  |  | #include <QString>
 | 
					
						
							|  |  |  | #include <QToolBar>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  | #include "DolphinQt2/GameList/GameList.h"
 | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | #include "DolphinQt2/MenuBar.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | #include "DolphinQt2/RenderWidget.h"
 | 
					
						
							| 
									
										
										
										
											2015-12-03 20:41:17 -08:00
										 |  |  | #include "DolphinQt2/ToolBar.h"
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-09 20:42:06 -08:00
										 |  |  | class PathDialog; | 
					
						
							| 
									
										
										
										
											2016-05-09 06:34:07 -07:00
										 |  |  | class SettingsWindow; | 
					
						
							| 
									
										
										
										
											2016-02-09 20:42:06 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | class MainWindow final : public QMainWindow | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											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 MainWindow(); | 
					
						
							|  |  |  |   ~MainWindow(); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | signals: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void EmulationStarted(); | 
					
						
							|  |  |  |   void EmulationPaused(); | 
					
						
							|  |  |  |   void EmulationStopped(); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | private slots: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void Open(); | 
					
						
							|  |  |  |   void Play(); | 
					
						
							|  |  |  |   void Pause(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // May ask for confirmation. Returns whether or not it actually stopped.
 | 
					
						
							|  |  |  |   bool Stop(); | 
					
						
							|  |  |  |   void ForceStop(); | 
					
						
							|  |  |  |   void Reset(); | 
					
						
							|  |  |  |   void FrameAdvance(); | 
					
						
							|  |  |  |   void StateLoad(); | 
					
						
							|  |  |  |   void StateSave(); | 
					
						
							|  |  |  |   void StateLoadSlot(); | 
					
						
							|  |  |  |   void StateSaveSlot(); | 
					
						
							|  |  |  |   void StateLoadSlotAt(int slot); | 
					
						
							|  |  |  |   void StateSaveSlotAt(int slot); | 
					
						
							|  |  |  |   void StateLoadUndo(); | 
					
						
							|  |  |  |   void StateSaveUndo(); | 
					
						
							|  |  |  |   void StateSaveOldest(); | 
					
						
							|  |  |  |   void SetStateSlot(int slot); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void FullScreen(); | 
					
						
							|  |  |  |   void ScreenShot(); | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void CreateComponents(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void ConnectGameList(); | 
					
						
							|  |  |  |   void ConnectMenuBar(); | 
					
						
							|  |  |  |   void ConnectRenderWidget(); | 
					
						
							|  |  |  |   void ConnectStack(); | 
					
						
							|  |  |  |   void ConnectToolBar(); | 
					
						
							|  |  |  |   void ConnectPathsDialog(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void StartGame(const QString& path); | 
					
						
							|  |  |  |   void ShowRenderWidget(); | 
					
						
							|  |  |  |   void HideRenderWidget(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void ShowPathsDialog(); | 
					
						
							|  |  |  |   void ShowSettingsWindow(); | 
					
						
							|  |  |  |   void ShowAboutDialog(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   QStackedWidget* m_stack; | 
					
						
							|  |  |  |   ToolBar* m_tool_bar; | 
					
						
							|  |  |  |   MenuBar* m_menu_bar; | 
					
						
							|  |  |  |   GameList* m_game_list; | 
					
						
							|  |  |  |   RenderWidget* m_render_widget; | 
					
						
							|  |  |  |   bool m_rendering_to_main; | 
					
						
							|  |  |  |   int m_state_slot = 1; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   PathDialog* m_paths_dialog; | 
					
						
							|  |  |  |   SettingsWindow* m_settings_window; | 
					
						
							| 
									
										
										
										
											2015-11-27 00:33:07 -08:00
										 |  |  | }; |