2006-06-15 04:19:30 +00:00
|
|
|
#ifndef _MAINWINDOW_H_
|
|
|
|
#define _MAINWINDOW_H_
|
|
|
|
|
2006-12-26 05:43:34 +00:00
|
|
|
#include <boost/signal.hpp>
|
2007-01-11 02:44:56 +00:00
|
|
|
#include <string>
|
2006-06-15 04:19:30 +00:00
|
|
|
#include "win32/Window.h"
|
2006-08-14 00:05:53 +00:00
|
|
|
#include "win32/StatusBar.h"
|
2006-06-15 04:19:30 +00:00
|
|
|
#include "OutputWnd.h"
|
|
|
|
#include "EventHandler.h"
|
|
|
|
#ifdef DEBUGGER_INCLUDED
|
|
|
|
#include "Debugger.h"
|
|
|
|
#endif
|
2007-12-01 04:08:34 +00:00
|
|
|
#include "../PS2VM.h"
|
2006-06-15 04:19:30 +00:00
|
|
|
|
2007-03-03 19:24:42 +00:00
|
|
|
class CMainWindow : public Framework::Win32::CWindow, public boost::signals::trackable
|
2006-06-15 04:19:30 +00:00
|
|
|
{
|
|
|
|
public:
|
2007-12-01 04:08:34 +00:00
|
|
|
CMainWindow(CPS2VM&, char*);
|
2006-06-15 04:19:30 +00:00
|
|
|
~CMainWindow();
|
|
|
|
int Loop();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
long OnTimer();
|
|
|
|
long OnCommand(unsigned short, unsigned short, HWND);
|
|
|
|
long OnActivateApp(bool, unsigned long);
|
|
|
|
|
|
|
|
private:
|
|
|
|
void OpenELF();
|
|
|
|
void BootCDROM();
|
|
|
|
void ResumePause();
|
|
|
|
void Reset();
|
|
|
|
void PauseWhenFocusLost();
|
|
|
|
void SaveState();
|
|
|
|
void LoadState();
|
|
|
|
void ChangeStateSlot(unsigned int);
|
|
|
|
void ShowDebugger();
|
|
|
|
void ShowSysInfo();
|
|
|
|
void ShowAbout();
|
|
|
|
void ShowRendererSettings();
|
2006-07-18 12:08:40 +00:00
|
|
|
void ShowVfsManager();
|
|
|
|
void ShowMcManager();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
void LoadELF(const char*);
|
|
|
|
void RefreshLayout();
|
2007-02-20 21:16:34 +00:00
|
|
|
void PrintVersion(TCHAR*, size_t);
|
2006-06-15 04:19:30 +00:00
|
|
|
void PrintStatusTextA(const char*, ...);
|
2007-02-20 21:16:34 +00:00
|
|
|
void SetStatusText(const TCHAR*);
|
2006-06-15 04:19:30 +00:00
|
|
|
void CreateAccelerators();
|
|
|
|
|
|
|
|
void CreateDebugMenu();
|
|
|
|
|
|
|
|
void CreateStateSlotMenu();
|
2007-01-11 02:44:56 +00:00
|
|
|
std::string GenerateStatePath();
|
2006-06-15 04:19:30 +00:00
|
|
|
void UpdateUI();
|
|
|
|
|
2006-12-26 21:53:04 +00:00
|
|
|
void OnNewFrame();
|
2006-06-15 04:19:30 +00:00
|
|
|
void OnOutputWndSizeChange(int);
|
2006-12-26 05:43:34 +00:00
|
|
|
void OnExecutableChange();
|
2006-06-15 04:19:30 +00:00
|
|
|
|
|
|
|
Framework::CEventHandler<int>* m_pOnOutputWndSizeChangeHandler;
|
|
|
|
|
2007-12-01 04:08:34 +00:00
|
|
|
CPS2VM& m_virtualMachine;
|
|
|
|
|
|
|
|
unsigned int m_nFrames;
|
2006-06-15 04:19:30 +00:00
|
|
|
HACCEL m_nAccTable;
|
|
|
|
|
|
|
|
unsigned int m_nStateSlot;
|
|
|
|
|
|
|
|
bool m_nPauseFocusLost;
|
|
|
|
bool m_nDeactivatePause;
|
|
|
|
|
2006-08-14 00:05:53 +00:00
|
|
|
Framework::Win32::CStatusBar* m_pStatusBar;
|
2006-06-15 04:19:30 +00:00
|
|
|
COutputWnd* m_pOutputWnd;
|
|
|
|
#ifdef DEBUGGER_INCLUDED
|
|
|
|
CDebugger* m_pDebugger;
|
|
|
|
#endif
|
2006-08-14 00:05:53 +00:00
|
|
|
static double m_nStatusBarPanelWidths[2];
|
2006-06-15 04:19:30 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|