GUI: more mobilework

This commit is contained in:
tildearrow 2022-05-19 16:35:00 -05:00
parent 769a89852f
commit a34481205a
25 changed files with 46 additions and 68 deletions

View File

@ -29,7 +29,7 @@ void FurnaceGUI::drawChanOsc() {
}
if (!chanOscOpen) return;
ImGui::SetNextWindowSizeConstraints(ImVec2(64.0f*dpiScale,32.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Oscilloscope (per-channel)",&chanOscOpen)) {
if (ImGui::Begin("Oscilloscope (per-channel)",&chanOscOpen,globalWinFlags)) {
if (ImGui::BeginTable("ChanOscSettings",3)) {
ImGui::TableNextRow();
ImGui::TableNextColumn();
@ -150,4 +150,4 @@ void FurnaceGUI::drawChanOsc() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_CHAN_OSC;
ImGui::End();
}
}

View File

@ -29,7 +29,7 @@ void FurnaceGUI::drawChannels() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!channelsOpen) return;
if (ImGui::Begin("Channels",&channelsOpen)) {
if (ImGui::Begin("Channels",&channelsOpen,globalWinFlags)) {
if (ImGui::BeginTable("ChannelList",3)) {
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0);
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0);
@ -64,4 +64,4 @@ void FurnaceGUI::drawChannels() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_CHANNELS;
ImGui::End();
}
}

View File

@ -28,7 +28,7 @@ void FurnaceGUI::drawCompatFlags() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!compatFlagsOpen) return;
if (ImGui::Begin("Compatibility Flags",&compatFlagsOpen)) {
if (ImGui::Begin("Compatibility Flags",&compatFlagsOpen,globalWinFlags)) {
ImGui::TextWrapped("these flags are designed to provide better DefleMask/older Furnace compatibility.");
ImGui::Checkbox("Limit slide range",&e->song.limitSlides);
if (ImGui::IsItemHovered()) {

View File

@ -36,7 +36,7 @@ void FurnaceGUI::drawInsList() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!insListOpen) return;
if (ImGui::Begin("Instruments",&insListOpen)) {
if (ImGui::Begin("Instruments",&insListOpen,globalWinFlags)) {
if (settings.unifiedDataView) settings.horizontalDataView=0;
if (ImGui::Button(ICON_FA_PLUS "##InsAdd")) {
doAction(GUI_ACTION_INS_LIST_ADD);
@ -295,7 +295,7 @@ void FurnaceGUI::drawWaveList() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!waveListOpen) return;
if (ImGui::Begin("Wavetables",&waveListOpen)) {
if (ImGui::Begin("Wavetables",&waveListOpen,globalWinFlags)) {
if (ImGui::Button(ICON_FA_PLUS "##WaveAdd")) {
doAction(GUI_ACTION_WAVE_LIST_ADD);
}
@ -340,7 +340,7 @@ void FurnaceGUI::drawSampleList() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!sampleListOpen) return;
if (ImGui::Begin("Samples",&sampleListOpen)) {
if (ImGui::Begin("Samples",&sampleListOpen,globalWinFlags)) {
if (ImGui::Button(ICON_FA_FILE "##SampleAdd")) {
doAction(GUI_ACTION_SAMPLE_LIST_ADD);
}

View File

@ -35,7 +35,7 @@ void FurnaceGUI::drawDebug() {
}
if (!debugOpen) return;
ImGui::SetNextWindowSizeConstraints(ImVec2(400.0f*dpiScale,200.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Debug",&debugOpen,ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Debug",&debugOpen,globalWinFlags|ImGuiWindowFlags_NoDocking)) {
ImGui::Text("NOTE: use with caution.");
if (ImGui::TreeNode("Debug Controls")) {
if (e->isHalted()) {

View File

@ -21,7 +21,7 @@
#include "IconsFontAwesome4.h"
void FurnaceGUI::drawMobileControls() {
if (ImGui::Begin("Mobile Controls",NULL,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
if (ImGui::Begin("Mobile Controls",NULL,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) {
float availX=ImGui::GetContentRegionAvail().x;
ImVec2 buttonSize=ImVec2(availX,availX);
@ -80,7 +80,7 @@ void FurnaceGUI::drawEditControls() {
if (!editControlsOpen) return;
switch (settings.controlLayout) {
case 0: // classic
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen)) {
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,globalWinFlags)) {
ImGui::Text("Octave");
ImGui::SameLine();
if (ImGui::InputInt("##Octave",&curOctave,1,1)) {
@ -141,7 +141,7 @@ void FurnaceGUI::drawEditControls() {
ImGui::End();
break;
case 1: // compact
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) {
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
stop();
}
@ -218,7 +218,7 @@ void FurnaceGUI::drawEditControls() {
ImGui::End();
break;
case 2: // compact vertical
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
if (ImGui::Begin("Play/Edit Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) {
ImGui::PushStyleColor(ImGuiCol_Button,TOGGLE_COLOR(e->isPlaying()));
if (ImGui::Button(ICON_FA_PLAY "##Play")) {
play();
@ -292,7 +292,7 @@ void FurnaceGUI::drawEditControls() {
ImGui::End();
break;
case 3: // split
if (ImGui::Begin("Play Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
if (ImGui::Begin("Play Controls",&editControlsOpen,ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) {
if (e->isPlaying()) {
ImGui::PushStyleColor(ImGuiCol_Button,uiColors[GUI_COLOR_TOGGLE_ON]);
if (ImGui::Button(ICON_FA_STOP "##Stop")) {
@ -346,7 +346,7 @@ void FurnaceGUI::drawEditControls() {
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EDIT_CONTROLS;
ImGui::End();
if (ImGui::Begin("Edit Controls",&editControlsOpen)) {
if (ImGui::Begin("Edit Controls",&editControlsOpen,globalWinFlags)) {
ImGui::Columns(2);
ImGui::Text("Octave");
ImGui::SameLine();

View File

@ -9,7 +9,7 @@ void FurnaceGUI::drawEffectList() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!effectListOpen) return;
if (ImGui::Begin("Effect List",&effectListOpen)) {
if (ImGui::Begin("Effect List",&effectListOpen,globalWinFlags)) {
ImGui::Text("System at cursor: %s",e->getSystemName(e->sysOfChan[cursor.xCoarse]));
if (ImGui::BeginTable("effectList",2)) {
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed);
@ -50,4 +50,4 @@ void FurnaceGUI::drawEffectList() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_EFFECT_LIST;
ImGui::End();
}
}

View File

@ -3013,40 +3013,15 @@ bool FurnaceGUI::loop() {
ImGui::EndMainMenuBar();
}
if (!mobileUI) {
ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0);
}
if (mobileUI) {
ImGuiViewport* mainView=ImGui::GetMainViewport();
ImGui::SetNextWindowPos(mainView->Pos);
ImGui::SetNextWindowSize(mainView->Size);
ImGui::SetNextWindowViewport(mainView->ID);
ImGuiID dockID=ImGui::GetID("MobileUISpace");
ImGuiWindowFlags muiFlags=ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoCollapse|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoDocking|ImGuiWindowFlags_NoBringToFrontOnFocus|ImGuiWindowFlags_NoNavFocus;
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
ImGui::Begin("MobileUI",NULL,muiFlags);
ImGui::PopStyleVar(3);
if (ImGui::DockBuilderGetNode(dockID)==NULL) {
ImGui::DockBuilderRemoveNode(dockID);
ImGuiID dn=ImGui::DockBuilderAddNode(dockID);
ImGuiID upper, lower, left, right;
ImGui::DockBuilderSplitNode(dn,ImGuiDir_Left,0.1f,&left,&right);
ImGui::DockBuilderSplitNode(right,ImGuiDir_Down,0.2f,&lower,&upper);
ImGui::DockBuilderDockWindow("Mobile Controls",left);
ImGui::DockBuilderDockWindow("Pattern",upper);
ImGui::DockBuilderDockWindow("Piano",lower);
ImGui::DockBuilderFinish(dn);
}
ImGui::DockSpace(dockID);
ImGui::End();
globalWinFlags=ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoBringToFrontOnFocus;
drawMobileControls();
drawPattern();
drawPiano();
} else {
globalWinFlags=0;
ImGui::DockSpaceOverViewport(NULL,lockLayout?(ImGuiDockNodeFlags_NoResize|ImGuiDockNodeFlags_NoCloseButton|ImGuiDockNodeFlags_NoDocking|ImGuiDockNodeFlags_NoDockingSplitMe|ImGuiDockNodeFlags_NoDockingSplitOther):0);
drawSubSongs();
drawPattern();
drawEditControls();
@ -4122,6 +4097,7 @@ FurnaceGUI::FurnaceGUI():
vgmExportVersion(0x171),
drawHalt(10),
macroPointSize(16),
globalWinFlags(0),
curFileDialog(GUI_FILE_OPEN),
warnAction(GUI_WARN_OPEN),
postWarnAction(GUI_WARN_GENERIC),

View File

@ -816,6 +816,8 @@ class FurnaceGUI {
int drawHalt;
int macroPointSize;
ImGuiWindowFlags globalWinFlags;
FurnaceGUIFileDialogs curFileDialog;
FurnaceGUIWarnings warnAction;
FurnaceGUIWarnings postWarnAction;

View File

@ -1344,7 +1344,7 @@ void FurnaceGUI::drawInsEdit() {
}
if (!insEditOpen) return;
ImGui::SetNextWindowSizeConstraints(ImVec2(440.0f*dpiScale,400.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Instrument Editor",&insEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Instrument Editor",&insEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
if (curIns<0 || curIns>=(int)e->song.ins.size()) {
ImGui::Text("no instrument selected");
} else {

View File

@ -44,7 +44,7 @@ void FurnaceGUI::drawLog() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!logOpen) return;
if (ImGui::Begin("Log Viewer",&logOpen)) {
if (ImGui::Begin("Log Viewer",&logOpen,globalWinFlags)) {
ImGui::Checkbox("Follow",&followLog);
ImGui::SameLine();
ImGui::Text("Level");

View File

@ -28,7 +28,7 @@ void FurnaceGUI::drawMixer() {
}
if (!mixerOpen) return;
ImGui::SetNextWindowSizeConstraints(ImVec2(400.0f*dpiScale,200.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Mixer",&mixerOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Mixer",&mixerOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
char id[32];
if (ImGui::SliderFloat("Master Volume",&e->song.masterVol,0,3,"%.2fx")) {
if (e->song.masterVol<0) e->song.masterVol=0;
@ -56,4 +56,4 @@ void FurnaceGUI::drawMixer() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_MIXER;
ImGui::End();
}
}

View File

@ -29,7 +29,7 @@ void FurnaceGUI::drawOrders() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!ordersOpen) return;
if (ImGui::Begin("Orders",&ordersOpen)) {
if (ImGui::Begin("Orders",&ordersOpen,globalWinFlags)) {
float regionX=ImGui::GetContentRegionAvail().x;
ImVec2 prevSpacing=ImGui::GetStyle().ItemSpacing;
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(1.0f*dpiScale,1.0f*dpiScale));

View File

@ -89,7 +89,7 @@ void FurnaceGUI::drawOsc() {
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(0,0));
ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing,ImVec2(0,0));
}
if (ImGui::Begin("Oscilloscope",&oscOpen)) {
if (ImGui::Begin("Oscilloscope",&oscOpen,globalWinFlags)) {
if (oscZoomSlider) {
if (ImGui::VSliderFloat("##OscZoom",ImVec2(20.0f*dpiScale,ImGui::GetContentRegionAvail().y),&oscZoom,0.5,2.0)) {
if (oscZoom<0.5) oscZoom=0.5;

View File

@ -343,7 +343,7 @@ void FurnaceGUI::drawPattern() {
sel2.xFine^=sel1.xFine;
}
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding,ImVec2(0.0f,0.0f));
if (ImGui::Begin("Pattern",&patternOpen,settings.avoidRaisingPattern?ImGuiWindowFlags_NoBringToFrontOnFocus:0)) {
if (ImGui::Begin("Pattern",&patternOpen,globalWinFlags|(settings.avoidRaisingPattern?ImGuiWindowFlags_NoBringToFrontOnFocus:0))) {
//ImGui::SetWindowSize(ImVec2(scrW*dpiScale,scrH*dpiScale));
patWindowPos=ImGui::GetWindowPos();
patWindowSize=ImGui::GetWindowSize();

View File

@ -52,7 +52,7 @@ void FurnaceGUI::drawPiano() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!pianoOpen) return;
if (ImGui::Begin("Piano",&pianoOpen,((pianoOptions)?0:ImGuiWindowFlags_NoTitleBar)|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse)) {
if (ImGui::Begin("Piano",&pianoOpen,((pianoOptions)?0:ImGuiWindowFlags_NoTitleBar)|ImGuiWindowFlags_NoScrollbar|ImGuiWindowFlags_NoScrollWithMouse|globalWinFlags)) {
bool oldPianoKeyPressed[180];
memcpy(oldPianoKeyPressed,pianoKeyPressed,180*sizeof(bool));
memset(pianoKeyPressed,0,180*sizeof(bool));

View File

@ -26,7 +26,7 @@ void FurnaceGUI::drawRegView() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!regViewOpen) return;
if (ImGui::Begin("Register View",&regViewOpen)) {
if (ImGui::Begin("Register View",&regViewOpen,globalWinFlags)) {
for (int i=0; i<e->song.systemLen; i++) {
ImGui::Text("%d. %s",i+1,getSystemName(e->song.system[i]));
int size=0;
@ -68,4 +68,4 @@ void FurnaceGUI::drawRegView() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_REGISTER_VIEW;
ImGui::End();
}
}

View File

@ -35,7 +35,7 @@ void FurnaceGUI::drawSampleEdit() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!sampleEditOpen) return;
if (ImGui::Begin("Sample Editor",&sampleEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Sample Editor",&sampleEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
if (curSample<0 || curSample>=(int)e->song.sample.size()) {
ImGui::Text("no sample selected");
} else {

View File

@ -218,7 +218,7 @@ void FurnaceGUI::drawSettings() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!settingsOpen) return;
if (ImGui::Begin("Settings",&settingsOpen,ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Settings",&settingsOpen,ImGuiWindowFlags_NoDocking|globalWinFlags)) {
if (!settingsOpen) {
settingsOpen=true;
showWarning("Do you want to save your settings?",GUI_WARN_CLOSE_SETTINGS);

View File

@ -29,7 +29,7 @@ void FurnaceGUI::drawSongInfo() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!songInfoOpen) return;
if (ImGui::Begin("Song Information",&songInfoOpen)) {
if (ImGui::Begin("Song Information",&songInfoOpen,globalWinFlags)) {
if (ImGui::BeginTable("NameAuthor",2,ImGuiTableFlags_SizingStretchProp)) {
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0);
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0);

View File

@ -29,9 +29,9 @@ void FurnaceGUI::drawNotes() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!notesOpen) return;
if (ImGui::Begin("Song Comments",&notesOpen)) {
if (ImGui::Begin("Song Comments",&notesOpen,globalWinFlags)) {
ImGui::InputTextMultiline("##SongNotes",&e->song.notes,ImGui::GetContentRegionAvail());
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_NOTES;
ImGui::End();
}
}

View File

@ -28,7 +28,7 @@ void FurnaceGUI::drawStats() {
nextWindow=GUI_WINDOW_NOTHING;
}
if (!statsOpen) return;
if (ImGui::Begin("Statistics",&statsOpen)) {
if (ImGui::Begin("Statistics",&statsOpen,globalWinFlags)) {
size_t lastProcTime=e->processTime;
double maxGot=1000000000.0*(double)e->getAudioDescGot().bufsize/(double)e->getAudioDescGot().rate;
String procStr=fmt::sprintf("%.1f%%",100.0*((double)lastProcTime/(double)maxGot));
@ -50,4 +50,4 @@ void FurnaceGUI::drawStats() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_STATS;
ImGui::End();
}
}

View File

@ -11,7 +11,7 @@ void FurnaceGUI::drawSubSongs() {
}
if (!subSongsOpen) return;
ImGui::SetNextWindowSizeConstraints(ImVec2(64.0f*dpiScale,32.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Subsongs",&subSongsOpen,ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar)) {
if (ImGui::Begin("Subsongs",&subSongsOpen,ImGuiWindowFlags_NoScrollWithMouse|ImGuiWindowFlags_NoScrollbar|globalWinFlags)) {
char id[1024];
ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x-ImGui::GetFrameHeightWithSpacing()*2.0f-ImGui::GetStyle().ItemSpacing.x);
if (e->curSubSong->name.empty()) {

View File

@ -33,7 +33,7 @@ void FurnaceGUI::drawVolMeter() {
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding,ImVec2(0,0));
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing,ImVec2(0,0));
ImGui::PushStyleVar(ImGuiStyleVar_ItemInnerSpacing,ImVec2(0,0));
if (ImGui::Begin("Volume Meter",&volMeterOpen)) {
if (ImGui::Begin("Volume Meter",&volMeterOpen,globalWinFlags)) {
ImDrawList* dl=ImGui::GetWindowDrawList();
bool aspectRatio=(ImGui::GetWindowSize().x/ImGui::GetWindowSize().y)>1.0;
@ -100,4 +100,4 @@ void FurnaceGUI::drawVolMeter() {
ImGui::PopStyleVar(4);
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_VOL_METER;
ImGui::End();
}
}

View File

@ -32,7 +32,7 @@ void FurnaceGUI::drawWaveEdit() {
if (!waveEditOpen) return;
float wavePreview[256];
ImGui::SetNextWindowSizeConstraints(ImVec2(300.0f*dpiScale,300.0f*dpiScale),ImVec2(scrW*dpiScale,scrH*dpiScale));
if (ImGui::Begin("Wavetable Editor",&waveEditOpen,settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking)) {
if (ImGui::Begin("Wavetable Editor",&waveEditOpen,globalWinFlags|(settings.allowEditDocking?0:ImGuiWindowFlags_NoDocking))) {
if (curWave<0 || curWave>=(int)e->song.wave.size()) {
ImGui::Text("no wavetable selected");
} else {
@ -163,4 +163,4 @@ void FurnaceGUI::drawWaveEdit() {
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_WAVE_EDIT;
ImGui::End();
}
}