GUI: editor improvements when no asset is selected

This commit is contained in:
tildearrow 2022-10-08 17:57:14 -05:00
parent f169ffa8dc
commit 70361c44ca
3 changed files with 76 additions and 0 deletions

View File

@ -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);
}

View File

@ -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";

View File

@ -22,6 +22,7 @@
#include "plot_nolerp.h"
#include "IconsFontAwesome4.h"
#include "misc/cpp/imgui_stdlib.h"
#include <fmt/printf.h>
#include <math.h>
#include <imgui.h>
@ -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];