| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | // Copyright 2015 Dolphin Emulator Project
 | 
					
						
							|  |  |  | // Licensed under GPLv2+
 | 
					
						
							|  |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-14 11:58:11 +02:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | #include <QMenu>
 | 
					
						
							|  |  |  | #include <QMenuBar>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class MenuBar final : public QMenuBar | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   Q_OBJECT | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   explicit MenuBar(QWidget* parent = nullptr); | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-30 02:24:26 -07:00
										 |  |  |   void EmulationStarted(); | 
					
						
							|  |  |  |   void EmulationPaused(); | 
					
						
							|  |  |  |   void EmulationStopped(); | 
					
						
							|  |  |  |   void UpdateStateSlotMenu(); | 
					
						
							|  |  |  |   void UpdateToolsMenu(bool emulation_started); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // Tools
 | 
					
						
							|  |  |  |   void InstallWAD(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | signals: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // File
 | 
					
						
							|  |  |  |   void Open(); | 
					
						
							|  |  |  |   void Exit(); | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // Emulation
 | 
					
						
							|  |  |  |   void Play(); | 
					
						
							|  |  |  |   void Pause(); | 
					
						
							|  |  |  |   void Stop(); | 
					
						
							|  |  |  |   void Reset(); | 
					
						
							|  |  |  |   void Fullscreen(); | 
					
						
							|  |  |  |   void FrameAdvance(); | 
					
						
							|  |  |  |   void Screenshot(); | 
					
						
							|  |  |  |   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); | 
					
						
							| 
									
										
										
										
											2017-07-06 11:00:37 +02:00
										 |  |  |   void BootWiiSystemMenu(); | 
					
						
							| 
									
										
										
										
											2016-02-15 12:56:40 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-14 11:58:11 +02:00
										 |  |  |   void PerformOnlineUpdate(const std::string& region); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-06 13:49:49 +02:00
										 |  |  |   // Options
 | 
					
						
							| 
									
										
										
										
											2017-07-16 14:11:11 -07:00
										 |  |  |   void Configure(); | 
					
						
							|  |  |  |   void ConfigureGraphics(); | 
					
						
							|  |  |  |   void ConfigureAudio(); | 
					
						
							|  |  |  |   void ConfigureControllers(); | 
					
						
							| 
									
										
										
										
											2017-06-06 13:49:49 +02:00
										 |  |  |   void ConfigureHotkeys(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // View
 | 
					
						
							|  |  |  |   void ShowTable(); | 
					
						
							|  |  |  |   void ShowList(); | 
					
						
							| 
									
										
										
										
											2017-05-08 19:03:59 +02:00
										 |  |  |   void ColumnVisibilityToggled(const QString& row, bool visible); | 
					
						
							| 
									
										
										
										
											2017-07-11 15:13:09 +01:00
										 |  |  |   void GameListPlatformVisibilityToggled(const QString& row, bool visible); | 
					
						
							|  |  |  |   void GameListRegionVisibilityToggled(const QString& row, bool visible); | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void ShowAboutDialog(); | 
					
						
							| 
									
										
										
										
											2016-02-11 22:59:44 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void AddFileMenu(); | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void AddEmulationMenu(); | 
					
						
							|  |  |  |   void AddStateLoadMenu(QMenu* emu_menu); | 
					
						
							|  |  |  |   void AddStateSaveMenu(QMenu* emu_menu); | 
					
						
							|  |  |  |   void AddStateSlotMenu(QMenu* emu_menu); | 
					
						
							| 
									
										
										
										
											2016-02-15 12:56:40 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void AddViewMenu(); | 
					
						
							|  |  |  |   void AddGameListTypeSection(QMenu* view_menu); | 
					
						
							|  |  |  |   void AddTableColumnsMenu(QMenu* view_menu); | 
					
						
							| 
									
										
										
										
											2017-07-11 15:13:09 +01:00
										 |  |  |   void AddShowPlatformsMenu(QMenu* view_menu); | 
					
						
							|  |  |  |   void AddShowRegionsMenu(QMenu* view_menu); | 
					
						
							| 
									
										
										
										
											2016-02-15 12:56:40 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-06-06 13:49:49 +02:00
										 |  |  |   void AddOptionsMenu(); | 
					
						
							| 
									
										
										
										
											2017-05-04 23:01:12 +02:00
										 |  |  |   void AddToolsMenu(); | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   void AddHelpMenu(); | 
					
						
							| 
									
										
										
										
											2016-02-15 12:56:40 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // File
 | 
					
						
							|  |  |  |   QAction* m_open_action; | 
					
						
							|  |  |  |   QAction* m_exit_action; | 
					
						
							| 
									
										
										
										
											2016-02-15 12:56:40 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-05-04 23:01:12 +02:00
										 |  |  |   // Tools
 | 
					
						
							|  |  |  |   QAction* m_wad_install_action; | 
					
						
							| 
									
										
										
										
											2017-06-14 11:58:11 +02:00
										 |  |  |   QMenu* m_perform_online_update_menu; | 
					
						
							|  |  |  |   QAction* m_perform_online_update_for_current_region; | 
					
						
							| 
									
										
										
										
											2017-05-04 23:01:12 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   // Emulation
 | 
					
						
							|  |  |  |   QAction* m_play_action; | 
					
						
							|  |  |  |   QAction* m_pause_action; | 
					
						
							|  |  |  |   QAction* m_stop_action; | 
					
						
							|  |  |  |   QAction* m_reset_action; | 
					
						
							|  |  |  |   QAction* m_fullscreen_action; | 
					
						
							|  |  |  |   QAction* m_frame_advance_action; | 
					
						
							|  |  |  |   QAction* m_screenshot_action; | 
					
						
							| 
									
										
										
										
											2017-07-06 11:00:37 +02:00
										 |  |  |   QAction* m_boot_sysmenu; | 
					
						
							| 
									
										
										
										
											2016-06-24 10:43:46 +02:00
										 |  |  |   QMenu* m_state_load_menu; | 
					
						
							|  |  |  |   QMenu* m_state_save_menu; | 
					
						
							|  |  |  |   QMenu* m_state_slot_menu; | 
					
						
							|  |  |  |   QActionGroup* m_state_slots; | 
					
						
							|  |  |  |   QMenu* m_state_load_slots_menu; | 
					
						
							|  |  |  |   QMenu* m_state_save_slots_menu; | 
					
						
							| 
									
										
										
										
											2015-12-19 21:24:48 -08:00
										 |  |  | }; |