mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-02 13:01:18 +12:00
Add all the files
This commit is contained in:
parent
e3db07a16a
commit
d60742f52b
1445 changed files with 430238 additions and 0 deletions
236
src/gui/MainWindow.h
Normal file
236
src/gui/MainWindow.h
Normal file
|
@ -0,0 +1,236 @@
|
|||
#pragma once
|
||||
|
||||
#include <wx/wx.h>
|
||||
#include <wx/dataview.h>
|
||||
#include <wx/infobar.h>
|
||||
#include "wxcomponents/checkedlistctrl.h"
|
||||
|
||||
#include "gui/PadViewFrame.h"
|
||||
#include "gui/MemorySearcherTool.h"
|
||||
|
||||
#include "config/XMLConfig.h"
|
||||
|
||||
#include "gui/LoggingWindow.h"
|
||||
#include "gui/components/wxGameList.h"
|
||||
|
||||
#include <future>
|
||||
|
||||
class DebuggerWindow2;
|
||||
struct GameEntry;
|
||||
class DiscordPresence;
|
||||
class TitleManager;
|
||||
class wxLaunchGameEvent;
|
||||
|
||||
wxDECLARE_EVENT(wxEVT_LAUNCH_GAME, wxLaunchGameEvent);
|
||||
wxDECLARE_EVENT(wxEVT_SET_WINDOW_TITLE, wxCommandEvent);
|
||||
|
||||
class wxLaunchGameEvent : public wxCommandEvent
|
||||
{
|
||||
public:
|
||||
enum class INITIATED_BY
|
||||
{
|
||||
MENU, // via file menu
|
||||
DRAG_AND_DROP,
|
||||
GAME_LIST,
|
||||
TITLE_MANAGER,
|
||||
COMMAND_LINE, // -g parameter
|
||||
};
|
||||
|
||||
wxLaunchGameEvent(fs::path path, INITIATED_BY initiatedBy)
|
||||
: wxCommandEvent(wxEVT_LAUNCH_GAME), m_launchPath(path), m_initiatedBy(initiatedBy) {}
|
||||
|
||||
[[nodiscard]] fs::path GetPath() const { return m_launchPath; }
|
||||
[[nodiscard]] INITIATED_BY GetInitiatedBy() const { return m_initiatedBy; }
|
||||
|
||||
wxEvent* Clone() const { return new wxLaunchGameEvent(*this); }
|
||||
|
||||
private:
|
||||
fs::path m_launchPath;
|
||||
INITIATED_BY m_initiatedBy;
|
||||
};
|
||||
|
||||
class MainWindow : public wxFrame
|
||||
{
|
||||
friend class CemuApp;
|
||||
|
||||
public:
|
||||
MainWindow();
|
||||
~MainWindow();
|
||||
|
||||
void UpdateSettingsAfterGameLaunch();
|
||||
void RestoreSettingsAfterGameExited();
|
||||
|
||||
bool FileLoad(std::wstring fileName, wxLaunchGameEvent::INITIATED_BY initiatedBy);
|
||||
|
||||
[[nodiscard]] bool IsGameLaunched() const { return m_game_launched; }
|
||||
|
||||
void SetFullScreen(bool state);
|
||||
void SetMenuVisible(bool state);
|
||||
void UpdateNFCMenu();
|
||||
bool IsMenuHidden() const;
|
||||
void TogglePadView();
|
||||
|
||||
#if BOOST_OS_WINDOWS
|
||||
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) override;
|
||||
#endif
|
||||
void OpenSettings();
|
||||
|
||||
PadViewFrame* GetPadView() const { return m_padView; }
|
||||
|
||||
void OnSizeEvent(wxSizeEvent& event);
|
||||
void OnMove(wxMoveEvent& event);
|
||||
|
||||
void OnDebuggerClose(wxCloseEvent& event);
|
||||
void OnPadClose(wxCloseEvent& event);
|
||||
void OnMemorySearcherClose(wxCloseEvent& event);
|
||||
void OnMouseWheel(wxMouseEvent& event);
|
||||
void OnClose(wxCloseEvent& event);
|
||||
void OnFileMenu(wxCommandEvent& event);
|
||||
void OnLaunchFromFile(wxLaunchGameEvent& event);
|
||||
void OnInstallUpdate(wxCommandEvent& event);
|
||||
void OnFileExit(wxCommandEvent& event);
|
||||
void OnNFCMenu(wxCommandEvent& event);
|
||||
void OnOptionsInput(wxCommandEvent& event);
|
||||
void OnAccountSelect(wxCommandEvent& event);
|
||||
void OnConsoleLanguage(wxCommandEvent& event);
|
||||
void OnHelpVistWebpage(wxCommandEvent& event);
|
||||
void OnHelpAbout(wxCommandEvent& event);
|
||||
void OnHelpGettingStarted(wxCommandEvent& event);
|
||||
void OnHelpUpdate(wxCommandEvent& event);
|
||||
void OnAfterCallShowErrorDialog();
|
||||
void OnDebugSetting(wxCommandEvent& event);
|
||||
void OnDebugLoggingToggleFlagGeneric(wxCommandEvent& event);
|
||||
void OnPPCInfoToggle(wxCommandEvent& event);
|
||||
void OnDebugDumpUsedTextures(wxCommandEvent& event);
|
||||
void OnDebugDumpUsedShaders(wxCommandEvent& event);
|
||||
void OnLoggingWindow(wxCommandEvent& event);
|
||||
void OnDebugViewPPCThreads(wxCommandEvent& event);
|
||||
void OnDebugViewPPCDebugger(wxCommandEvent& event);
|
||||
void OnDebugViewAudioDebugger(wxCommandEvent& event);
|
||||
void OnDebugViewTextureRelations(wxCommandEvent& event);
|
||||
void OnMouseMove(wxMouseEvent& event);
|
||||
void OnMouseLeft(wxMouseEvent& event);
|
||||
void OnMouseRight(wxMouseEvent& event);
|
||||
void OnGameListBeginUpdate(wxCommandEvent& event);
|
||||
void OnGameListEndUpdate(wxCommandEvent& event);
|
||||
void OnAccountListRefresh(wxCommandEvent& event);
|
||||
void OnRequestGameListRefresh(wxCommandEvent& event);
|
||||
void OnSetWindowTitle(wxCommandEvent& event);
|
||||
|
||||
void OnKeyUp(wxKeyEvent& event);
|
||||
void OnChar(wxKeyEvent& event);
|
||||
|
||||
void OnToolsInput(wxCommandEvent& event);
|
||||
void OnGesturePan(wxPanGestureEvent& event);
|
||||
|
||||
void OnGameLoaded();
|
||||
|
||||
void AsyncSetTitle(std::string_view windowTitle);
|
||||
|
||||
void CreateCanvas();
|
||||
void DestroyCanvas();
|
||||
|
||||
std::wstring GetGameName(std::wstring_view file_name);
|
||||
static void ShowCursor(bool state);
|
||||
|
||||
uintptr_t GetRenderCanvasHWND();
|
||||
|
||||
static void RequestGameListRefresh();
|
||||
static void RequestLaunchGame(fs::path filePath, wxLaunchGameEvent::INITIATED_BY initiatedBy);
|
||||
|
||||
private:
|
||||
void RecreateMenu();
|
||||
static wxString GetInitialWindowTitle();
|
||||
void ShowGettingStartedDialog();
|
||||
bool EnableOnlineMode() const;
|
||||
|
||||
bool InstallUpdate(const fs::path& metaFilePath);
|
||||
|
||||
void OnTimer(wxTimerEvent& event);
|
||||
|
||||
wxRect GetDesktopRect();
|
||||
|
||||
MemorySearcherTool* m_toolWindow = nullptr;
|
||||
TitleManager* m_title_manager = nullptr;
|
||||
PadViewFrame* m_padView = nullptr;
|
||||
wxWindow* m_graphic_pack_window = nullptr;
|
||||
|
||||
wxTimer* m_timer;
|
||||
wxPoint m_mouse_position{};
|
||||
std::chrono::steady_clock::time_point m_last_mouse_move_time;
|
||||
wxSize m_restored_size;
|
||||
wxPoint m_restored_position;
|
||||
|
||||
wxStatusBar* m_statusBar{};
|
||||
|
||||
bool m_menu_visible = false;
|
||||
bool m_game_launched = false;
|
||||
|
||||
#ifdef ENABLE_DISCORD_RPC
|
||||
std::unique_ptr<DiscordPresence> m_discord;
|
||||
#endif
|
||||
|
||||
std::string m_launched_game_name;
|
||||
|
||||
DebuggerWindow2* m_debugger_window = nullptr;
|
||||
LoggingWindow* m_logging_window = nullptr;
|
||||
|
||||
std::future<bool> m_update_available;
|
||||
|
||||
wxMenuItem* m_check_update_menu{};
|
||||
void LoadSettings();
|
||||
void SaveSettings();
|
||||
|
||||
std::string GetRegionString(uint32 region) const;
|
||||
|
||||
void OnGraphicWindowClose(wxCloseEvent& event);
|
||||
void OnGraphicWindowOpen(wxTitleIdEvent& event);
|
||||
|
||||
// panels
|
||||
wxPanel* m_main_panel{}, * m_game_panel{};
|
||||
|
||||
// rendering
|
||||
wxWindow* m_render_canvas{};
|
||||
|
||||
// gamelist
|
||||
wxGameList* m_game_list;
|
||||
wxInfoBar* m_info_bar;
|
||||
|
||||
// menu
|
||||
wxMenuBar* m_menuBar = nullptr;
|
||||
|
||||
// file
|
||||
wxMenu* m_fileMenu;
|
||||
wxMenuItem* m_fileMenuSeparator0;
|
||||
wxMenuItem* m_fileMenuSeparator1;
|
||||
wxMenuItem* m_loadMenuItem;
|
||||
wxMenuItem* m_installUpdateMenuItem;
|
||||
wxMenuItem* m_exitMenuItem;
|
||||
|
||||
// options
|
||||
//wxMenu* m_gpuBufferCacheAccuracySubmenu;
|
||||
wxMenu* m_optionsAccountMenu;
|
||||
|
||||
wxMenuItem* m_fullscreenMenuItem;
|
||||
wxMenuItem* m_padViewMenuItem;
|
||||
|
||||
// tools
|
||||
wxMenuItem* m_memorySearcherMenuItem;
|
||||
|
||||
// cpu
|
||||
//wxMenu* m_cpuModeSubmenu;
|
||||
wxMenu* m_cpuTimerSubmenu;
|
||||
|
||||
// nfc
|
||||
wxMenu* m_nfcMenu;
|
||||
wxMenuItem* m_nfcMenuSeparator0;
|
||||
|
||||
// debug
|
||||
wxMenu* m_debugMenu;
|
||||
wxMenu* m_loggingSubmenu;
|
||||
wxMenuItem* m_asyncCompile;
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
extern MainWindow* g_mainFrame;
|
Loading…
Add table
Add a link
Reference in a new issue