mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Move DolphinQt2 to DolphinQt
This commit is contained in:
203
Source/Core/DolphinQt/MainWindow.h
Normal file
203
Source/Core/DolphinQt/MainWindow.h
Normal file
@ -0,0 +1,203 @@
|
||||
// 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>
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
|
||||
#include "DolphinQt/GameList/GameList.h"
|
||||
#include "DolphinQt/MenuBar.h"
|
||||
#include "DolphinQt/RenderWidget.h"
|
||||
#include "DolphinQt/ToolBar.h"
|
||||
|
||||
class QProgressDialog;
|
||||
|
||||
class BreakpointWidget;
|
||||
struct BootParameters;
|
||||
class CheatsManager;
|
||||
class CodeWidget;
|
||||
class ControllersWindow;
|
||||
class DragEnterEvent;
|
||||
class FIFOPlayerWindow;
|
||||
class GCTASInputWindow;
|
||||
class GraphicsWindow;
|
||||
class HotkeyScheduler;
|
||||
class JITWidget;
|
||||
class LogConfigWidget;
|
||||
class LogWidget;
|
||||
class MemoryWidget;
|
||||
class NetPlayClient;
|
||||
class NetPlayDialog;
|
||||
class NetPlayServer;
|
||||
class NetPlaySetupDialog;
|
||||
class RegisterWidget;
|
||||
class SearchBar;
|
||||
class SettingsWindow;
|
||||
class WatchWidget;
|
||||
class WiiTASInputWindow;
|
||||
|
||||
namespace X11Utils
|
||||
{
|
||||
class XRRConfiguration;
|
||||
}
|
||||
|
||||
class MainWindow final : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit MainWindow(std::unique_ptr<BootParameters> boot_parameters);
|
||||
~MainWindow();
|
||||
|
||||
void Show();
|
||||
|
||||
bool eventFilter(QObject* object, QEvent* event) override;
|
||||
|
||||
signals:
|
||||
void ReadOnlyModeChanged(bool read_only);
|
||||
void RecordingStatusChanged(bool recording);
|
||||
|
||||
private:
|
||||
void Open();
|
||||
void RefreshGameList();
|
||||
void Play(const std::optional<std::string>& savestate_path = {});
|
||||
void Pause();
|
||||
void TogglePause();
|
||||
|
||||
// May ask for confirmation. Returns whether or not it actually stopped.
|
||||
bool RequestStop();
|
||||
void ForceStop();
|
||||
void Reset();
|
||||
void FrameAdvance();
|
||||
void StateLoad();
|
||||
void StateSave();
|
||||
void StateLoadSlot();
|
||||
void StateSaveSlot();
|
||||
void StateLoadSlotAt(int slot);
|
||||
void StateSaveSlotAt(int slot);
|
||||
void StateLoadLastSavedAt(int slot);
|
||||
void StateLoadUndo();
|
||||
void StateSaveUndo();
|
||||
void StateSaveOldest();
|
||||
void SetStateSlot(int slot);
|
||||
void BootWiiSystemMenu();
|
||||
|
||||
void PerformOnlineUpdate(const std::string& region);
|
||||
|
||||
void SetFullScreenResolution(bool fullscreen);
|
||||
|
||||
void FullScreen();
|
||||
void ScreenShot();
|
||||
|
||||
void CreateComponents();
|
||||
|
||||
void ConnectGameList();
|
||||
void ConnectHost();
|
||||
void ConnectHotkeys();
|
||||
void ConnectMenuBar();
|
||||
void ConnectRenderWidget();
|
||||
void ConnectStack();
|
||||
void ConnectToolBar();
|
||||
|
||||
void InitControllers();
|
||||
void ShutdownControllers();
|
||||
|
||||
void InitCoreCallbacks();
|
||||
|
||||
void StartGame(const QString& path, const std::optional<std::string>& savestate_path = {});
|
||||
void StartGame(const std::string& path, const std::optional<std::string>& savestate_path = {});
|
||||
void StartGame(std::unique_ptr<BootParameters>&& parameters);
|
||||
void ShowRenderWidget();
|
||||
void HideRenderWidget(bool reinit = true);
|
||||
|
||||
void ShowSettingsWindow();
|
||||
void ShowGeneralWindow();
|
||||
void ShowAudioWindow();
|
||||
void ShowControllersWindow();
|
||||
void ShowGraphicsWindow();
|
||||
void ShowAboutDialog();
|
||||
void ShowHotkeyDialog();
|
||||
void ShowNetPlaySetupDialog();
|
||||
void ShowFIFOPlayer();
|
||||
void ShowMemcardManager();
|
||||
void ShowCheatsManager();
|
||||
|
||||
void NetPlayInit();
|
||||
bool NetPlayJoin();
|
||||
bool NetPlayHost(const QString& game_id);
|
||||
void NetPlayQuit();
|
||||
|
||||
void OnBootGameCubeIPL(DiscIO::Region region);
|
||||
void OnImportNANDBackup();
|
||||
void OnConnectWiiRemote(int id);
|
||||
void OnSignal();
|
||||
|
||||
void OnUpdateProgressDialog(QString label, int progress, int total);
|
||||
|
||||
void OnPlayRecording();
|
||||
void OnStartRecording();
|
||||
void OnStopRecording();
|
||||
void OnExportRecording();
|
||||
void ShowTASInput();
|
||||
|
||||
void ChangeDisc();
|
||||
void EjectDisc();
|
||||
|
||||
QString PromptFileName();
|
||||
|
||||
void EnableScreenSaver(bool enable);
|
||||
|
||||
void OnStopComplete();
|
||||
void dragEnterEvent(QDragEnterEvent* event) override;
|
||||
void dropEvent(QDropEvent* event) override;
|
||||
QSize sizeHint() const override;
|
||||
|
||||
#if defined(HAVE_XRANDR) && HAVE_XRANDR
|
||||
std::unique_ptr<X11Utils::XRRConfiguration> m_xrr_config;
|
||||
#endif
|
||||
|
||||
QProgressDialog* m_progress_dialog = nullptr;
|
||||
QStackedWidget* m_stack;
|
||||
ToolBar* m_tool_bar;
|
||||
MenuBar* m_menu_bar;
|
||||
SearchBar* m_search_bar;
|
||||
GameList* m_game_list;
|
||||
RenderWidget* m_render_widget;
|
||||
bool m_rendering_to_main;
|
||||
bool m_stop_requested = false;
|
||||
bool m_exit_requested = false;
|
||||
bool m_fullscreen_requested = false;
|
||||
int m_state_slot = 1;
|
||||
std::unique_ptr<BootParameters> m_pending_boot;
|
||||
|
||||
HotkeyScheduler* m_hotkey_scheduler;
|
||||
ControllersWindow* m_controllers_window;
|
||||
SettingsWindow* m_settings_window;
|
||||
NetPlayDialog* m_netplay_dialog;
|
||||
NetPlaySetupDialog* m_netplay_setup_dialog;
|
||||
GraphicsWindow* m_graphics_window;
|
||||
static constexpr int num_gc_controllers = 4;
|
||||
std::array<GCTASInputWindow*, num_gc_controllers> m_gc_tas_input_windows{};
|
||||
static constexpr int num_wii_controllers = 4;
|
||||
std::array<WiiTASInputWindow*, num_wii_controllers> m_wii_tas_input_windows{};
|
||||
|
||||
BreakpointWidget* m_breakpoint_widget;
|
||||
CodeWidget* m_code_widget;
|
||||
JITWidget* m_jit_widget;
|
||||
LogWidget* m_log_widget;
|
||||
LogConfigWidget* m_log_config_widget;
|
||||
MemoryWidget* m_memory_widget;
|
||||
FIFOPlayerWindow* m_fifo_window;
|
||||
RegisterWidget* m_register_widget;
|
||||
WatchWidget* m_watch_widget;
|
||||
CheatsManager* m_cheats_manager;
|
||||
QByteArray m_render_widget_geometry;
|
||||
};
|
Reference in New Issue
Block a user