lsnes/ui/general/slot-loader.cpp
2013-05-03 17:47:34 +03:00

185 lines
5 KiB
C++
Executable file

SlotLoader *slotLoader = 0;
SlotLoaderPath::SlotLoaderPath() {
browse.setText("Browse ...");
append(label, { 40, 0 }, 5);
append(path, { ~0, 0 }, 5);
append(browse, { 80, 0 }, 0);
}
SlotLoader::SlotLoader() {
layout.setMargin(5);
base.label.setText("Base:");
slot[0].label.setText("Slot:");
slot[1].label.setText("Slot:");
loadButton.setText("Load");
append(layout);
layout.append(base, { ~0, 0 }, 5);
layout.append(slot[0], { ~0, 0 }, 5);
layout.append(slot[1], { ~0, 0 }, 5);
layout.append(controlLayout, { ~0, 0 }, 0);
controlLayout.append(spacer, { ~0, 0 }, 0);
controlLayout.append(loadButton, { 80, 0 }, 0);
setGeometry({ 128, 128, 500, layout.minimumGeometry().height });
windowManager->append(this, "SlotLoader");
}
void SlotLoader::synchronize() {
loadButton.setEnabled(base.path.text() != "");
}
void SlotLoader::loadSatellaviewSlotted() {
setTitle("Load Cartridge - Satellaview-Slotted");
base.path.setText("");
slot[0].path.setText("");
slot[0].path.setEnabled(true);
slot[0].browse.setEnabled(true);
slot[1].path.setText("");
slot[1].path.setEnabled(false);
slot[1].browse.setEnabled(false);
base.browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - SNES", FileBrowser::Mode::SNES, [&](const string &filename) {
base.path.setText(filename);
synchronize();
});
};
slot[0].browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - Satellaview", FileBrowser::Mode::Satellaview, [&](const string &filename) {
slot[0].path.setText(filename);
synchronize();
});
};
loadButton.onActivate = [&] {
this->setVisible(false);
interface->snes.loadSatellaviewSlottedCartridge(base.path.text(), slot[0].path.text());
};
synchronize();
setVisible();
}
void SlotLoader::loadSatellaview() {
setTitle("Load Cartridge - Satellaview");
base.path.setText(config->path.bios.satellaview);
slot[0].path.setText("");
slot[0].path.setEnabled(true);
slot[0].browse.setEnabled(true);
slot[1].path.setText("");
slot[1].path.setEnabled(false);
slot[1].browse.setEnabled(false);
base.browse.onActivate = [&] {
fileBrowser->open("Load BIOS - Satellaview", FileBrowser::Mode::SNES, [&](const string &filename) {
config->path.bios.satellaview = filename;
base.path.setText(filename);
synchronize();
});
};
slot[0].browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - Satellaview", FileBrowser::Mode::Satellaview, [&](const string &filename) {
slot[0].path.setText(filename);
synchronize();
});
};
loadButton.onActivate = [&] {
this->setVisible(false);
interface->snes.loadSatellaviewCartridge(base.path.text(), slot[0].path.text());
};
synchronize();
setVisible();
}
void SlotLoader::loadSufamiTurbo() {
setTitle("Load Cartridge - Sufami Turbo");
base.path.setText(config->path.bios.sufamiTurbo);
slot[0].path.setText("");
slot[0].path.setEnabled(true);
slot[0].browse.setEnabled(true);
slot[1].path.setText("");
slot[1].path.setEnabled(true);
slot[1].browse.setEnabled(true);
base.browse.onActivate = [&] {
fileBrowser->open("Load BIOS - Sufami Turbo", FileBrowser::Mode::SNES, [&](const string &filename) {
config->path.bios.sufamiTurbo = filename;
base.path.setText(filename);
synchronize();
});
};
slot[0].browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - Sufami Turbo", FileBrowser::Mode::SufamiTurbo, [&](const string &filename) {
slot[0].path.setText(filename);
synchronize();
});
};
slot[1].browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - Sufami Turbo", FileBrowser::Mode::SufamiTurbo, [&](const string &filename) {
slot[1].path.setText(filename);
synchronize();
});
};
loadButton.onActivate = [&] {
this->setVisible(false);
interface->snes.loadSufamiTurboCartridge(base.path.text(), slot[0].path.text(), slot[1].path.text());
};
synchronize();
setVisible();
}
void SlotLoader::loadSuperGameBoy() {
setTitle("Load Cartridge - Super Game Boy");
base.path.setText(config->path.bios.superGameBoy);
slot[0].path.setText("");
slot[0].path.setEnabled(true);
slot[0].browse.setEnabled(true);
slot[1].path.setText("");
slot[1].path.setEnabled(false);
slot[1].browse.setEnabled(false);
base.browse.onActivate = [&] {
fileBrowser->open("Load BIOS - Super Game Boy", FileBrowser::Mode::SNES, [&](const string &filename) {
config->path.bios.superGameBoy = filename;
base.path.setText(filename);
synchronize();
});
};
slot[0].browse.onActivate = [&] {
fileBrowser->open("Load Cartridge - Game Boy", FileBrowser::Mode::GameBoy, [&](const string &filename) {
slot[0].path.setText(filename);
synchronize();
});
};
loadButton.onActivate = [&] {
this->setVisible(false);
interface->snes.loadSuperGameBoyCartridge(base.path.text(), slot[0].path.text());
};
synchronize();
setVisible();
}