GUI: much better

This commit is contained in:
tildearrow 2022-03-09 03:40:24 -05:00
parent 1a3eed7830
commit 372f2a20a2

View file

@ -332,6 +332,7 @@ void FurnaceGUI::drawPattern() {
} }
if (!patternOpen) return; if (!patternOpen) return;
bool inhibitMenu=false;
float scrollX=0; float scrollX=0;
if (e->isPlaying() && followPattern) cursor.y=oldRow; if (e->isPlaying() && followPattern) cursor.y=oldRow;
@ -411,6 +412,7 @@ void FurnaceGUI::drawPattern() {
} }
if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
fancyPattern=!fancyPattern; fancyPattern=!fancyPattern;
inhibitMenu=true;
e->enableCommandStream(fancyPattern); e->enableCommandStream(fancyPattern);
e->getCommandStream(cmdStream); e->getCommandStream(cmdStream);
cmdStream.clear(); cmdStream.clear();
@ -481,6 +483,7 @@ void FurnaceGUI::drawPattern() {
if (muted) ImGui::PopStyleColor(); if (muted) ImGui::PopStyleColor();
ImGui::PopStyleColor(3); ImGui::PopStyleColor(3);
if (settings.soloAction!=2) if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) { if (settings.soloAction!=2) if (ImGui::IsItemClicked(ImGuiMouseButton_Right)) {
inhibitMenu=true;
e->toggleSolo(i); e->toggleSolo(i);
} }
if (extraChannelButtons==2) { if (extraChannelButtons==2) {
@ -807,7 +810,9 @@ void FurnaceGUI::drawPattern() {
ImGui::PopFont(); ImGui::PopFont();
} }
ImGui::PopStyleVar(); ImGui::PopStyleVar();
if (patternOpen) if (ImGui::BeginPopupContextItem("furnace quit unexpectedly.")) { if (patternOpen) {
if (!inhibitMenu && ImGui::IsItemClicked(ImGuiMouseButton_Right)) ImGui::OpenPopup("patternActionMenu");
if (ImGui::BeginPopup("patternActionMenu",ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings)) {
char id[4096]; char id[4096];
ImGui::Selectable("cut"); ImGui::Selectable("cut");
ImGui::Selectable("copy"); ImGui::Selectable("copy");
@ -825,6 +830,7 @@ void FurnaceGUI::drawPattern() {
} }
ImGui::EndPopup(); ImGui::EndPopup();
} }
}
if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PATTERN; if (ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows)) curWindow=GUI_WINDOW_PATTERN;
ImGui::End(); ImGui::End();
} }