mirror of https://github.com/bsnes-emu/bsnes.git
79 lines
2.0 KiB
C++
Executable File
79 lines
2.0 KiB
C++
Executable File
#include "../ethos.hpp"
|
|
#include "video.cpp"
|
|
#include "audio.cpp"
|
|
#include "input.cpp"
|
|
#include "hotkey.cpp"
|
|
#include "timing.cpp"
|
|
#include "scores.cpp"
|
|
#include "driver.cpp"
|
|
Settings *settings = nullptr;
|
|
|
|
void SettingsLayout::append(Sizable &sizable, const Size &size, unsigned spacing) {
|
|
layout.append(sizable, size, spacing);
|
|
}
|
|
|
|
SettingsLayout::SettingsLayout() {
|
|
setMargin(5);
|
|
HorizontalLayout::append(spacer, {120, ~0}, 5);
|
|
HorizontalLayout::append(layout, { ~0, ~0});
|
|
}
|
|
|
|
Settings::Settings() {
|
|
setGeometry({128, 128, 640, 360});
|
|
windowManager->append(this, "Settings");
|
|
|
|
setTitle("Configuration Settings");
|
|
setStatusVisible();
|
|
|
|
layout.setMargin(5);
|
|
panelList.setFont(application->boldFont);
|
|
panelList.append("Video");
|
|
panelList.append("Audio");
|
|
panelList.append("Input");
|
|
panelList.append("Hotkeys");
|
|
panelList.append("Timing");
|
|
panelList.append("Scores");
|
|
panelList.append("Driver");
|
|
|
|
append(layout);
|
|
layout.append(panelList, {120, ~0}, 5);
|
|
append(*videoSettings);
|
|
append(*audioSettings);
|
|
append(*inputSettings);
|
|
append(*hotkeySettings);
|
|
append(*timingSettings);
|
|
append(*scoreSettings);
|
|
append(*driverSettings);
|
|
|
|
onClose = [&] {
|
|
timingSettings->analysis.stop = true;
|
|
};
|
|
|
|
panelList.onChange = {&Settings::panelChanged, this};
|
|
|
|
panelList.setSelection(2);
|
|
panelChanged();
|
|
}
|
|
|
|
void Settings::panelChanged() {
|
|
setStatusText("");
|
|
videoSettings->setVisible(false);
|
|
audioSettings->setVisible(false);
|
|
inputSettings->setVisible(false);
|
|
hotkeySettings->setVisible(false);
|
|
timingSettings->setVisible(false);
|
|
scoreSettings->setVisible(false);
|
|
driverSettings->setVisible(false);
|
|
if(panelList.selected() == false) return;
|
|
|
|
switch(panelList.selection()) {
|
|
case 0: return videoSettings->setVisible();
|
|
case 1: return audioSettings->setVisible();
|
|
case 2: return inputSettings->setVisible();
|
|
case 3: return hotkeySettings->setVisible();
|
|
case 4: return timingSettings->setVisible();
|
|
case 5: return scoreSettings->setVisible();
|
|
case 6: return driverSettings->setVisible();
|
|
}
|
|
}
|