63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
/**
|
|
******************************************************************************
|
|
* Xenia : Xbox 360 Emulator Research Project *
|
|
******************************************************************************
|
|
* Copyright 2014 Ben Vanik. All rights reserved. *
|
|
* Released under the BSD license - see LICENSE in the root for more details. *
|
|
******************************************************************************
|
|
*/
|
|
|
|
#ifndef XENIA_UI_MAIN_WINDOW_H_
|
|
#define XENIA_UI_MAIN_WINDOW_H_
|
|
|
|
#include "xenia/ui/window.h"
|
|
#include "xenia/xbox.h"
|
|
|
|
// TODO(benvanik): only on windows.
|
|
#include "xenia/ui/win32/win32_loop.h"
|
|
#include "xenia/ui/win32/win32_menu_item.h"
|
|
#include "xenia/ui/win32/win32_window.h"
|
|
|
|
namespace xe {
|
|
class Emulator;
|
|
} // namespace xe
|
|
|
|
namespace xe {
|
|
namespace ui {
|
|
|
|
using PlatformLoop = xe::ui::win32::Win32Loop;
|
|
using PlatformWindow = xe::ui::win32::Win32Window;
|
|
using PlatformMenu = xe::ui::win32::Win32MenuItem;
|
|
|
|
class MainWindow : public PlatformWindow {
|
|
public:
|
|
explicit MainWindow(Emulator* emulator);
|
|
~MainWindow() override;
|
|
|
|
Emulator* emulator() const { return emulator_; }
|
|
PlatformLoop* loop() { return &loop_; }
|
|
|
|
void Start();
|
|
|
|
X_STATUS LaunchPath(std::wstring path);
|
|
|
|
private:
|
|
bool Initialize();
|
|
|
|
void OnClose() override;
|
|
void OnCommand(int id) override;
|
|
|
|
enum Commands {
|
|
IDC_FILE_OPEN,
|
|
};
|
|
|
|
Emulator* emulator_;
|
|
PlatformLoop loop_;
|
|
PlatformMenu main_menu_;
|
|
};
|
|
|
|
} // namespace ui
|
|
} // namespace xe
|
|
|
|
#endif // XENIA_UI_MAIN_WINDOW_H_
|