mirror of https://github.com/bsnes-emu/bsnes.git
55 lines
2.2 KiB
C++
55 lines
2.2 KiB
C++
auto ManifestViewer::create() -> void {
|
|
setIcon(Icon::Emblem::Text);
|
|
setText("Manifest Viewer");
|
|
|
|
layout.setPadding(5);
|
|
manifestLabel.setText("Manifest:");
|
|
manifestOption.onChange([&] { selectManifest(); });
|
|
manifestSpacer.setColor({192, 192, 192});
|
|
#if 0 && defined(Hiro_SourceEdit)
|
|
manifestView.setFont(Font().setFamily(Font::Mono).setSize(10));
|
|
#else
|
|
manifestView.setFont(Font().setFamily(Font::Mono));
|
|
#endif
|
|
manifestView.setEditable(false);
|
|
manifestView.setWordWrap(false);
|
|
typeIcon.setIcon(Icon::Device::Storage);
|
|
nameLabel.setText("...");
|
|
}
|
|
|
|
auto ManifestViewer::loadManifest() -> void {
|
|
manifestOption.reset();
|
|
manifestView.setText("");
|
|
if(!emulator->loaded()) return;
|
|
|
|
auto manifests = emulator->manifests();
|
|
auto titles = emulator->titles();
|
|
for(uint offset : range(manifests.size())) {
|
|
ComboButtonItem item{&manifestOption};
|
|
item.setProperty("manifest", manifests[offset]);
|
|
item.setText(titles[offset]);
|
|
bool verified = false;
|
|
if(offset == 0) verified = program.superFamicom.verified;
|
|
if(offset == 1 && program.gameBoy) verified = program.gameBoy.verified;
|
|
if(offset == 1 && program.bsMemory) verified = program.bsMemory.verified;
|
|
if(offset == 1 && program.sufamiTurboA) verified = program.sufamiTurboA.verified;
|
|
if(offset == 2 && program.sufamiTurboB) verified = program.sufamiTurboB.verified;
|
|
item.setIcon(verified ? (image)Icon::Emblem::Program : (image)Icon::Emblem::Binary);
|
|
}
|
|
manifestOption.doChange();
|
|
}
|
|
|
|
auto ManifestViewer::selectManifest() -> void {
|
|
auto selected = manifestOption.selected();
|
|
uint offset = selected->offset();
|
|
manifestView.setText(selected.property("manifest"));
|
|
string location;
|
|
if(offset == 0) location = program.superFamicom.location;
|
|
if(offset == 1 && program.gameBoy) location = program.gameBoy.location;
|
|
if(offset == 1 && program.bsMemory) location = program.bsMemory.location;
|
|
if(offset == 1 && program.sufamiTurboA) location = program.sufamiTurboA.location;
|
|
if(offset == 2 && program.sufamiTurboB) location = program.sufamiTurboB.location;
|
|
typeIcon.setIcon(location.endsWith("/") ? (image)Icon::Action::Open : (image)Icon::Emblem::File);
|
|
nameLabel.setText(location.trimRight("/", 1L));
|
|
}
|