GUI: use best wave size when adding wave
or display a menu TODO: fix non-32×32 wave being messed up
This commit is contained in:
parent
0daf52ffe0
commit
bd7e57cea8
3 changed files with 71 additions and 2 deletions
|
|
@ -5451,6 +5451,11 @@ bool FurnaceGUI::loop() {
|
|||
ImGui::OpenPopup("InsTypeList");
|
||||
}
|
||||
|
||||
if (displayWaveSizeList) {
|
||||
displayWaveSizeList=false;
|
||||
ImGui::OpenPopup("WaveSizeList");
|
||||
}
|
||||
|
||||
if (displayExporting) {
|
||||
displayExporting=false;
|
||||
ImGui::OpenPopup("Rendering...");
|
||||
|
|
@ -5960,6 +5965,26 @@ bool FurnaceGUI::loop() {
|
|||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
if (ImGui::BeginPopup("WaveSizeList",ImGuiWindowFlags_NoMove|ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) {
|
||||
char temp[1024];
|
||||
for (FurnaceGUIWaveSizeEntry i: waveSizeList) {
|
||||
snprintf(temp,1023,"%d×%d (%s)",i.width,i.height,i.sys);
|
||||
if (ImGui::MenuItem(temp)) {
|
||||
// create wave
|
||||
curWave=e->addWave();
|
||||
if (curWave==-1) {
|
||||
showError("too many wavetables!");
|
||||
} else {
|
||||
e->song.wave[curWave]->len=i.width;
|
||||
e->song.wave[curWave]->max=i.height-1;
|
||||
MARK_MODIFIED;
|
||||
RESET_WAVE_MACRO_ZOOM;
|
||||
}
|
||||
}
|
||||
}
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
|
||||
// TODO:
|
||||
// - multiple selection
|
||||
// - replace instrument
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue