2015-12-20 05:24:48 +00:00
|
|
|
// Copyright 2015 Dolphin Emulator Project
|
|
|
|
// Licensed under GPLv2+
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2017-06-14 09:58:11 +00:00
|
|
|
#include <string>
|
|
|
|
|
2015-12-20 05:24:48 +00:00
|
|
|
#include <QMenu>
|
|
|
|
#include <QMenuBar>
|
|
|
|
|
|
|
|
class MenuBar final : public QMenuBar
|
|
|
|
{
|
2016-06-24 08:43:46 +00:00
|
|
|
Q_OBJECT
|
2015-12-20 05:24:48 +00:00
|
|
|
|
|
|
|
public:
|
2016-06-24 08:43:46 +00:00
|
|
|
explicit MenuBar(QWidget* parent = nullptr);
|
2015-12-20 05:24:48 +00:00
|
|
|
|
|
|
|
signals:
|
2016-06-24 08:43:46 +00:00
|
|
|
// File
|
|
|
|
void Open();
|
|
|
|
void Exit();
|
2015-12-20 05:24:48 +00:00
|
|
|
|
2016-06-24 08:43:46 +00: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 09:00:37 +00:00
|
|
|
void BootWiiSystemMenu();
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2017-06-14 09:58:11 +00:00
|
|
|
void PerformOnlineUpdate(const std::string& region);
|
|
|
|
|
2017-06-06 11:49:49 +00:00
|
|
|
// Options
|
|
|
|
void ConfigureHotkeys();
|
|
|
|
|
2016-06-24 08:43:46 +00:00
|
|
|
// View
|
|
|
|
void ShowTable();
|
|
|
|
void ShowList();
|
2017-05-08 17:03:59 +00:00
|
|
|
void ColumnVisibilityToggled(const QString& row, bool visible);
|
2015-12-20 05:24:48 +00:00
|
|
|
|
2016-06-24 08:43:46 +00:00
|
|
|
void ShowAboutDialog();
|
2016-02-11 11:59:44 +00:00
|
|
|
|
2016-02-15 01:56:40 +00:00
|
|
|
public slots:
|
2016-06-24 08:43:46 +00:00
|
|
|
void EmulationStarted();
|
|
|
|
void EmulationPaused();
|
|
|
|
void EmulationStopped();
|
|
|
|
void UpdateStateSlotMenu();
|
2017-06-14 09:58:11 +00:00
|
|
|
void UpdateToolsMenu(bool emulation_started);
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2017-05-04 21:01:12 +00:00
|
|
|
// Tools
|
|
|
|
void InstallWAD();
|
|
|
|
|
2015-12-20 05:24:48 +00:00
|
|
|
private:
|
2016-06-24 08:43:46 +00:00
|
|
|
void AddFileMenu();
|
2015-12-20 05:24:48 +00:00
|
|
|
|
2016-06-24 08:43:46 +00:00
|
|
|
void AddEmulationMenu();
|
|
|
|
void AddStateLoadMenu(QMenu* emu_menu);
|
|
|
|
void AddStateSaveMenu(QMenu* emu_menu);
|
|
|
|
void AddStateSlotMenu(QMenu* emu_menu);
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2016-06-24 08:43:46 +00:00
|
|
|
void AddViewMenu();
|
|
|
|
void AddGameListTypeSection(QMenu* view_menu);
|
|
|
|
void AddTableColumnsMenu(QMenu* view_menu);
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2017-06-06 11:49:49 +00:00
|
|
|
void AddOptionsMenu();
|
2017-05-04 21:01:12 +00:00
|
|
|
void AddToolsMenu();
|
2016-06-24 08:43:46 +00:00
|
|
|
void AddHelpMenu();
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2016-06-24 08:43:46 +00:00
|
|
|
// File
|
|
|
|
QAction* m_open_action;
|
|
|
|
QAction* m_exit_action;
|
2016-02-15 01:56:40 +00:00
|
|
|
|
2017-05-04 21:01:12 +00:00
|
|
|
// Tools
|
|
|
|
QAction* m_wad_install_action;
|
2017-06-14 09:58:11 +00:00
|
|
|
QMenu* m_perform_online_update_menu;
|
|
|
|
QAction* m_perform_online_update_for_current_region;
|
2017-05-04 21:01:12 +00:00
|
|
|
|
2016-06-24 08:43:46 +00: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 09:00:37 +00:00
|
|
|
QAction* m_boot_sysmenu;
|
2016-06-24 08:43:46 +00: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-20 05:24:48 +00:00
|
|
|
};
|