mirror of
https://github.com/DerKoun/bsnes-hd.git
synced 2025-04-02 10:52:49 -04:00
144 lines
5.9 KiB
C++
144 lines
5.9 KiB
C++
struct Presentation : Window {
|
|
Application::Namespace tr{"Presentation"};
|
|
auto create() -> void;
|
|
|
|
enum : uint { RecentGames = 9, QuickStates = 9 };
|
|
enum : uint { StatusHeight = 24 };
|
|
|
|
auto onDrop(vector<string> locations) -> void;
|
|
auto updateProgramIcon() -> void;
|
|
auto updateStatusIcon() -> void;
|
|
auto resizeWindow() -> void;
|
|
auto updateStatus() -> void;
|
|
auto updateDeviceMenu() -> void;
|
|
auto updateDeviceSelections() -> void;
|
|
auto updateSizeMenu() -> void;
|
|
auto updateStateMenus() -> void;
|
|
auto clearRecentGames() -> void;
|
|
auto updateRecentGames() -> void;
|
|
auto addRecentGame(string location) -> void;
|
|
auto updateShaders() -> void;
|
|
|
|
MenuBar menuBar{this};
|
|
Menu systemMenu{&menuBar};
|
|
MenuItem loadGame{&systemMenu};
|
|
Menu loadRecentGame{&systemMenu};
|
|
MenuItem resetSystem{&systemMenu};
|
|
MenuItem unloadGame{&systemMenu};
|
|
MenuSeparator portSeparator{&systemMenu};
|
|
Menu controllerPort1{&systemMenu};
|
|
Menu controllerPort2{&systemMenu};
|
|
Menu expansionPort{&systemMenu};
|
|
MenuSeparator quitSeparator{&systemMenu};
|
|
MenuItem quit{&systemMenu};
|
|
Menu settingsMenu{&menuBar};
|
|
Menu sizeMenu{&settingsMenu};
|
|
Group sizeGroup;
|
|
Menu outputMenu{&settingsMenu};
|
|
MenuRadioItem centerViewport{&outputMenu};
|
|
MenuRadioItem scaleViewport{&outputMenu};
|
|
MenuRadioItem stretchViewport{&outputMenu};
|
|
Group outputGroup{¢erViewport, &scaleViewport, &stretchViewport};
|
|
MenuSeparator outputSeparator{&outputMenu};
|
|
MenuCheckItem aspectCorrection{&outputMenu};
|
|
MenuCheckItem showOverscanArea{&outputMenu};
|
|
MenuCheckItem blurEmulation{&outputMenu};
|
|
/*Menu filterMenu{&settingsMenu};
|
|
MenuRadioItem filterNone{&filterMenu};
|
|
MenuRadioItem filterScanlinesLight{&filterMenu};
|
|
MenuRadioItem filterScanlinesDark{&filterMenu};
|
|
MenuRadioItem filterScanlinesBlack{&filterMenu};
|
|
MenuRadioItem filterPixellate2x{&filterMenu};
|
|
MenuRadioItem filterScale2x{&filterMenu};
|
|
MenuRadioItem filter2xSaI{&filterMenu};
|
|
MenuRadioItem filterSuper2xSaI{&filterMenu};
|
|
MenuRadioItem filterSuperEagle{&filterMenu};
|
|
MenuRadioItem filterLQ2x{&filterMenu};
|
|
MenuRadioItem filterHQ2x{&filterMenu};
|
|
MenuRadioItem filterNTSC_RF{&filterMenu};
|
|
MenuRadioItem filterNTSC_Composite{&filterMenu};
|
|
MenuRadioItem filterNTSC_SVideo{&filterMenu};
|
|
MenuRadioItem filterNTSC_RGB{&filterMenu};
|
|
Group filterGroup{
|
|
&filterNone,
|
|
&filterScanlinesLight,
|
|
&filterScanlinesDark,
|
|
&filterScanlinesBlack,
|
|
&filterPixellate2x,
|
|
&filterScale2x,
|
|
&filter2xSaI,
|
|
&filterSuper2xSaI,
|
|
&filterSuperEagle,
|
|
&filterLQ2x,
|
|
&filterHQ2x,
|
|
&filterNTSC_RF,
|
|
&filterNTSC_Composite,
|
|
&filterNTSC_SVideo,
|
|
&filterNTSC_RGB
|
|
};*/
|
|
Menu shaderMenu{&settingsMenu};
|
|
MenuSeparator settingsSeparatorA{&settingsMenu};
|
|
MenuCheckItem muteAudio{&settingsMenu};
|
|
MenuCheckItem showStatusBar{&settingsMenu};
|
|
MenuSeparator settingsSeparatorB{&settingsMenu};
|
|
MenuItem videoSettings{&settingsMenu};
|
|
MenuItem audioSettings{&settingsMenu};
|
|
MenuItem inputSettings{&settingsMenu};
|
|
MenuItem hotkeySettings{&settingsMenu};
|
|
MenuItem pathSettings{&settingsMenu};
|
|
MenuItem emulatorSettings{&settingsMenu};
|
|
MenuItem enhancementSettings{&settingsMenu};
|
|
MenuItem compatibilitySettings{&settingsMenu};
|
|
MenuItem driverSettings{&settingsMenu};
|
|
Menu toolsMenu{&menuBar};
|
|
Menu saveState{&toolsMenu};
|
|
Menu loadState{&toolsMenu};
|
|
MenuSeparator toolsSeparatorB{&toolsMenu};
|
|
Menu speedMenu{&toolsMenu};
|
|
MenuRadioItem speedSlowest{&speedMenu};
|
|
MenuRadioItem speedSlow{&speedMenu};
|
|
MenuRadioItem speedNormal{&speedMenu};
|
|
MenuRadioItem speedFast{&speedMenu};
|
|
MenuRadioItem speedFastest{&speedMenu};
|
|
Group speedGroup{&speedSlowest, &speedSlow, &speedNormal, &speedFast, &speedFastest};
|
|
Menu runMenu{&toolsMenu};
|
|
MenuRadioItem runEmulation{&runMenu};
|
|
MenuRadioItem pauseEmulation{&runMenu};
|
|
MenuRadioItem frameAdvance{&runMenu};
|
|
Group runGroup{&runEmulation, &pauseEmulation, &frameAdvance};
|
|
Menu movieMenu{&toolsMenu};
|
|
MenuItem moviePlay{&movieMenu};
|
|
MenuItem movieRecord{&movieMenu};
|
|
MenuItem movieRecordFromBeginning{&movieMenu};
|
|
MenuItem movieStop{&movieMenu};
|
|
MenuItem captureScreenshot{&toolsMenu};
|
|
MenuSeparator toolsSeparatorC{&toolsMenu};
|
|
MenuItem cheatFinder{&toolsMenu};
|
|
MenuItem cheatEditor{&toolsMenu};
|
|
MenuItem stateManager{&toolsMenu};
|
|
MenuItem manifestViewer{&toolsMenu};
|
|
Menu helpMenu{&menuBar};
|
|
MenuItem documentation{&helpMenu};
|
|
MenuItem documentationHd{&helpMenu};
|
|
MenuSeparator helpSeparator{&helpMenu};
|
|
MenuItem aboutSameBoy{&helpMenu};
|
|
MenuItem about{&helpMenu};
|
|
MenuItem aboutHd{&helpMenu};
|
|
|
|
VerticalLayout layout{this};
|
|
HorizontalLayout viewportLayout{&layout, Size{~0, ~0}, 0};
|
|
Viewport viewport{&viewportLayout, Size{~0, ~0}, 0};
|
|
VerticalLayout iconLayout{&viewportLayout, Size{0, ~0}, 0};
|
|
Canvas iconSpacer{&iconLayout, Size{144, ~0}, 0};
|
|
Canvas iconCanvas{&iconLayout, Size{128, 128}, 0};
|
|
HorizontalLayout statusLayout{&layout, Size{~0, StatusHeight}, 0};
|
|
Label spacerIcon{&statusLayout, Size{8, ~0}, 0};
|
|
Canvas statusIcon{&statusLayout, Size{16, ~0}, 0};
|
|
Label spacerLeft{&statusLayout, Size{4, ~0}, 0};
|
|
Label statusLeft{&statusLayout, Size{~0, ~0}, 0};
|
|
Label statusRight{&statusLayout, Size{100, ~0}, 0};
|
|
Label spacerRight{&statusLayout, Size{8, ~0}, 0};
|
|
};
|
|
|
|
namespace Instances { extern Instance<Presentation> presentation; }
|
|
extern Presentation& presentation;
|