diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 166bd8a5..101b71ad 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -1940,6 +1940,12 @@ void FurnaceGUI::drawInsEdit() { ImGui::TextUnformatted("or"); ImGui::SameLine(); } + if (ImGui::Button("Open")) { + doAction(GUI_ACTION_INS_LIST_OPEN); + } + ImGui::SameLine(); + ImGui::TextUnformatted("or"); + ImGui::SameLine(); if (ImGui::Button("Create New")) { doAction(GUI_ACTION_INS_LIST_ADD); } diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index aa3c4cb3..ac784542 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -28,6 +28,9 @@ #include "sampleUtil.h" #include "util.h" +#define CENTER_TEXT(text) \ + ImGui::SetCursorPosX(ImGui::GetCursorPosX()+0.5*(ImGui::GetContentRegionAvail().x-ImGui::CalcTextSize(text).x)); + void FurnaceGUI::drawSampleEdit() { if (nextWindow==GUI_WINDOW_SAMPLE_EDIT) { sampleEditOpen=true; @@ -43,7 +46,40 @@ void FurnaceGUI::drawSampleEdit() { } if (ImGui::Begin("Sample Editor",&sampleEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curSample<0 || curSample>=(int)e->song.sample.size()) { + ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*2.0f)*0.5f); + CENTER_TEXT("no sample selected"); ImGui::Text("no sample selected"); + if (ImGui::BeginTable("noAssetCenter",3)) { + ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f); + ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); + ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.5f); + + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::TableNextColumn(); + + if (e->song.sample.size()>0) { + if (ImGui::BeginCombo("##SampleSelect","select one...")) { + actualSampleList(); + ImGui::EndCombo(); + } + ImGui::SameLine(); + ImGui::TextUnformatted("or"); + ImGui::SameLine(); + } + if (ImGui::Button("Open")) { + doAction(GUI_ACTION_SAMPLE_LIST_OPEN); + } + ImGui::SameLine(); + ImGui::TextUnformatted("or"); + ImGui::SameLine(); + if (ImGui::Button("Create New")) { + doAction(GUI_ACTION_SAMPLE_LIST_ADD); + } + + ImGui::TableNextColumn(); + ImGui::EndTable(); + } } else { DivSample* sample=e->song.sample[curSample]; String sampleType="Invalid"; diff --git a/src/gui/waveEdit.cpp b/src/gui/waveEdit.cpp index 87f5ad38..b9b8d65b 100644 --- a/src/gui/waveEdit.cpp +++ b/src/gui/waveEdit.cpp @@ -22,6 +22,7 @@ #include "plot_nolerp.h" #include "IconsFontAwesome4.h" #include "misc/cpp/imgui_stdlib.h" +#include #include #include @@ -175,7 +176,40 @@ void FurnaceGUI::drawWaveEdit() { } if (ImGui::Begin("Wavetable Editor",&waveEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) { if (curWave<0 || curWave>=(int)e->song.wave.size()) { + ImGui::SetCursorPosY(ImGui::GetCursorPosY()+(ImGui::GetContentRegionAvail().y-ImGui::GetFrameHeightWithSpacing()*2.0f)*0.5f); + CENTER_TEXT("no wavetable selected"); ImGui::Text("no wavetable selected"); + if (ImGui::BeginTable("noAssetCenter",3)) { + ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthStretch,0.5f); + ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed); + ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.5f); + + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::TableNextColumn(); + + if (e->song.wave.size()>0) { + if (ImGui::BeginCombo("##WaveSelect","select one...")) { + actualWaveList(); + ImGui::EndCombo(); + } + ImGui::SameLine(); + ImGui::TextUnformatted("or"); + ImGui::SameLine(); + } + if (ImGui::Button("Open")) { + doAction(GUI_ACTION_WAVE_LIST_OPEN); + } + ImGui::SameLine(); + ImGui::TextUnformatted("or"); + ImGui::SameLine(); + if (ImGui::Button("Create New")) { + doAction(GUI_ACTION_WAVE_LIST_ADD); + } + + ImGui::TableNextColumn(); + ImGui::EndTable(); + } } else { DivWavetable* wave=e->song.wave[curWave];