From 897a61db85ccfc41fda22779dc2657f73a12bafb Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 26 Aug 2022 16:44:27 -0500 Subject: [PATCH] copy paste --- src/gui/sysManager.cpp | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/gui/sysManager.cpp b/src/gui/sysManager.cpp index 2be87fc9..81fcd8e9 100644 --- a/src/gui/sysManager.cpp +++ b/src/gui/sysManager.cpp @@ -42,6 +42,54 @@ void FurnaceGUI::drawSysManager() { showError(e->getLastError()); } } + + if (ImGui::BeginTable("SystemList",3)) { + ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthFixed,0.0); + ImGui::TableSetupColumn("c2",ImGuiTableColumnFlags_WidthStretch,0.0); + ImGui::TableSetupColumn("c3",ImGuiTableColumnFlags_WidthFixed,48.0f*dpiScale); + ImGui::TableNextRow(ImGuiTableRowFlags_Headers); + ImGui::TableNextColumn(); + ImGui::Text("Visible"); + ImGui::TableNextColumn(); + ImGui::Text("Name"); + for (int i=0; igetTotalChannelCount(); i++) { + ImGui::PushID(i); + ImGui::TableNextRow(); + ImGui::TableNextColumn(); + ImGui::Checkbox("##Visible",&e->curSubSong->chanShow[i]); + ImGui::SameLine(); + if (ImGui::Button(ICON_FA_ARROWS)) { + } + if (ImGui::BeginDragDropSource()) { + chanToMove=i; + ImGui::SetDragDropPayload("FUR_CHAN",NULL,0,ImGuiCond_Once); + ImGui::Button(ICON_FA_ARROWS "##ChanDrag"); + ImGui::EndDragDropSource(); + } else if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("%s #%d\n(drag to swap channels)",e->getSystemName(e->sysOfChan[i]),e->dispatchChanOfChan[i]); + } + if (ImGui::BeginDragDropTarget()) { + const ImGuiPayload* dragItem=ImGui::AcceptDragDropPayload("FUR_CHAN"); + if (dragItem!=NULL) { + if (dragItem->IsDataType("FUR_CHAN")) { + if (chanToMove!=i && chanToMove>=0) { + e->swapChannelsP(chanToMove,i); + } + chanToMove=-1; + } + } + ImGui::EndDragDropTarget(); + } + ImGui::TableNextColumn(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + ImGui::InputTextWithHint("##ChanName",e->getChannelName(i),&e->curSubSong->chanName[i]); + ImGui::TableNextColumn(); + ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x); + ImGui::InputTextWithHint("##ChanShortName",e->getChannelShortName(i),&e->curSubSong->chanShortName[i]); + ImGui::PopID(); + } + ImGui::EndTable(); + } } if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_SYS_MANAGER; ImGui::End();