GUI: remove basic mode

This commit is contained in:
tildearrow 2024-02-11 18:36:38 -05:00
parent b9a6a83798
commit 2f72e75f0e
6 changed files with 334 additions and 402 deletions

View file

@ -2661,7 +2661,7 @@ void FurnaceGUI::editOptions(bool topMenu) {
if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true,true,selStart,selEnd); if (ImGui::MenuItem("cut",BIND_FOR(GUI_ACTION_PAT_CUT))) doCopy(true,true,selStart,selEnd);
if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false,true,selStart,selEnd); if (ImGui::MenuItem("copy",BIND_FOR(GUI_ACTION_PAT_COPY))) doCopy(false,true,selStart,selEnd);
if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste(); if (ImGui::MenuItem("paste",BIND_FOR(GUI_ACTION_PAT_PASTE))) doPaste();
if (!basicMode) if (ImGui::BeginMenu("paste special...")) { if (ImGui::BeginMenu("paste special...")) {
if (ImGui::MenuItem("paste mix",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX))) doPaste(GUI_PASTE_MODE_MIX_FG); if (ImGui::MenuItem("paste mix",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX))) doPaste(GUI_PASTE_MODE_MIX_FG);
if (ImGui::MenuItem("paste mix (background)",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX_BG))) doPaste(GUI_PASTE_MODE_MIX_BG); if (ImGui::MenuItem("paste mix (background)",BIND_FOR(GUI_ACTION_PAT_PASTE_MIX_BG))) doPaste(GUI_PASTE_MODE_MIX_BG);
if (ImGui::BeginMenu("paste with ins (foreground)")) { if (ImGui::BeginMenu("paste with ins (foreground)")) {
@ -2698,7 +2698,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
} }
ImGui::Separator(); ImGui::Separator();
if (!basicMode) {
if (ImGui::BeginMenu("operation mask...")) { if (ImGui::BeginMenu("operation mask...")) {
drawOpMask(opMaskDelete); drawOpMask(opMaskDelete);
ImGui::SameLine(); ImGui::SameLine();
@ -2855,7 +2854,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
latchNibble=false; latchNibble=false;
} }
ImGui::Separator(); ImGui::Separator();
}
if (ImGui::MenuItem("note up",BIND_FOR(GUI_ACTION_PAT_NOTE_UP))) doTranspose(1,opMaskTransposeNote); if (ImGui::MenuItem("note up",BIND_FOR(GUI_ACTION_PAT_NOTE_UP))) doTranspose(1,opMaskTransposeNote);
if (ImGui::MenuItem("note down",BIND_FOR(GUI_ACTION_PAT_NOTE_DOWN))) doTranspose(-1,opMaskTransposeNote); if (ImGui::MenuItem("note down",BIND_FOR(GUI_ACTION_PAT_NOTE_DOWN))) doTranspose(-1,opMaskTransposeNote);
@ -2901,7 +2899,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
ImGui::EndMenu(); ImGui::EndMenu();
} }
if (!basicMode) {
if (ImGui::BeginMenu("gradient/fade...")) { if (ImGui::BeginMenu("gradient/fade...")) {
if (ImGui::InputInt("Start",&fadeMin,1,16)) { if (ImGui::InputInt("Start",&fadeMin,1,16)) {
if (fadeMin<0) fadeMin=0; if (fadeMin<0) fadeMin=0;
@ -2999,7 +2996,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
if (ImGui::MenuItem("collapse pattern",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT))) doAction(GUI_ACTION_PAT_COLLAPSE_PAT); if (ImGui::MenuItem("collapse pattern",BIND_FOR(GUI_ACTION_PAT_COLLAPSE_PAT))) doAction(GUI_ACTION_PAT_COLLAPSE_PAT);
if (ImGui::MenuItem("expand pattern",BIND_FOR(GUI_ACTION_PAT_EXPAND_PAT))) doAction(GUI_ACTION_PAT_EXPAND_PAT); if (ImGui::MenuItem("expand pattern",BIND_FOR(GUI_ACTION_PAT_EXPAND_PAT))) doAction(GUI_ACTION_PAT_EXPAND_PAT);
} }
}
if (topMenu) { if (topMenu) {
ImGui::Separator(); ImGui::Separator();
@ -3007,7 +3003,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
if (ImGui::MenuItem("expand song",BIND_FOR(GUI_ACTION_PAT_EXPAND_SONG))) doAction(GUI_ACTION_PAT_EXPAND_SONG); if (ImGui::MenuItem("expand song",BIND_FOR(GUI_ACTION_PAT_EXPAND_SONG))) doAction(GUI_ACTION_PAT_EXPAND_SONG);
} }
if (!basicMode) {
if (topMenu) { if (topMenu) {
ImGui::Separator(); ImGui::Separator();
if (ImGui::MenuItem("find/replace",BIND_FOR(GUI_ACTION_WINDOW_FIND),findOpen)) { if (ImGui::MenuItem("find/replace",BIND_FOR(GUI_ACTION_WINDOW_FIND),findOpen)) {
@ -3019,7 +3014,6 @@ void FurnaceGUI::editOptions(bool topMenu) {
} }
} }
} }
}
void FurnaceGUI::toggleMobileUI(bool enable, bool force) { void FurnaceGUI::toggleMobileUI(bool enable, bool force) {
if (mobileUI!=enable || force) { if (mobileUI!=enable || force) {
@ -4363,13 +4357,6 @@ bool FurnaceGUI::loop() {
if (ImGui::MenuItem("lock layout",NULL,lockLayout)) { if (ImGui::MenuItem("lock layout",NULL,lockLayout)) {
lockLayout=!lockLayout; lockLayout=!lockLayout;
} }
if (ImGui::MenuItem("basic mode",NULL,basicMode)) {
if (basicMode) {
showWarning("prepare to unlock the full power of Furnace!",GUI_WARN_BASIC_MODE);
} else {
showWarning("are you sure? this will disable several things.",GUI_WARN_BASIC_MODE);
}
}
if (ImGui::MenuItem("visualizer",NULL,fancyPattern)) { if (ImGui::MenuItem("visualizer",NULL,fancyPattern)) {
fancyPattern=!fancyPattern; fancyPattern=!fancyPattern;
e->enableCommandStream(fancyPattern); e->enableCommandStream(fancyPattern);
@ -4404,15 +4391,11 @@ bool FurnaceGUI::loop() {
if (ImGui::MenuItem("orders",BIND_FOR(GUI_ACTION_WINDOW_ORDERS),ordersOpen)) ordersOpen=!ordersOpen; if (ImGui::MenuItem("orders",BIND_FOR(GUI_ACTION_WINDOW_ORDERS),ordersOpen)) ordersOpen=!ordersOpen;
if (ImGui::MenuItem("pattern",BIND_FOR(GUI_ACTION_WINDOW_PATTERN),patternOpen)) patternOpen=!patternOpen; if (ImGui::MenuItem("pattern",BIND_FOR(GUI_ACTION_WINDOW_PATTERN),patternOpen)) patternOpen=!patternOpen;
if (ImGui::MenuItem("mixer",BIND_FOR(GUI_ACTION_WINDOW_MIXER),mixerOpen)) mixerOpen=!mixerOpen; if (ImGui::MenuItem("mixer",BIND_FOR(GUI_ACTION_WINDOW_MIXER),mixerOpen)) mixerOpen=!mixerOpen;
if (!basicMode) {
if (ImGui::MenuItem("grooves",BIND_FOR(GUI_ACTION_WINDOW_GROOVES),groovesOpen)) groovesOpen=!groovesOpen; if (ImGui::MenuItem("grooves",BIND_FOR(GUI_ACTION_WINDOW_GROOVES),groovesOpen)) groovesOpen=!groovesOpen;
if (ImGui::MenuItem("channels",BIND_FOR(GUI_ACTION_WINDOW_CHANNELS),channelsOpen)) channelsOpen=!channelsOpen; if (ImGui::MenuItem("channels",BIND_FOR(GUI_ACTION_WINDOW_CHANNELS),channelsOpen)) channelsOpen=!channelsOpen;
}
if (ImGui::MenuItem("pattern manager",BIND_FOR(GUI_ACTION_WINDOW_PAT_MANAGER),patManagerOpen)) patManagerOpen=!patManagerOpen; if (ImGui::MenuItem("pattern manager",BIND_FOR(GUI_ACTION_WINDOW_PAT_MANAGER),patManagerOpen)) patManagerOpen=!patManagerOpen;
if (ImGui::MenuItem("chip manager",BIND_FOR(GUI_ACTION_WINDOW_SYS_MANAGER),sysManagerOpen)) sysManagerOpen=!sysManagerOpen; if (ImGui::MenuItem("chip manager",BIND_FOR(GUI_ACTION_WINDOW_SYS_MANAGER),sysManagerOpen)) sysManagerOpen=!sysManagerOpen;
if (!basicMode) {
if (ImGui::MenuItem("compatibility flags",BIND_FOR(GUI_ACTION_WINDOW_COMPAT_FLAGS),compatFlagsOpen)) compatFlagsOpen=!compatFlagsOpen; if (ImGui::MenuItem("compatibility flags",BIND_FOR(GUI_ACTION_WINDOW_COMPAT_FLAGS),compatFlagsOpen)) compatFlagsOpen=!compatFlagsOpen;
}
if (ImGui::MenuItem("song comments",BIND_FOR(GUI_ACTION_WINDOW_NOTES),notesOpen)) notesOpen=!notesOpen; if (ImGui::MenuItem("song comments",BIND_FOR(GUI_ACTION_WINDOW_NOTES),notesOpen)) notesOpen=!notesOpen;
ImGui::Separator(); ImGui::Separator();
if (ImGui::MenuItem("instrument editor",BIND_FOR(GUI_ACTION_WINDOW_INS_EDIT),insEditOpen)) insEditOpen=!insEditOpen; if (ImGui::MenuItem("instrument editor",BIND_FOR(GUI_ACTION_WINDOW_INS_EDIT),insEditOpen)) insEditOpen=!insEditOpen;
@ -4658,9 +4641,7 @@ bool FurnaceGUI::loop() {
MEASURE(pattern,drawPattern()); MEASURE(pattern,drawPattern());
MEASURE(editControls,drawEditControls()); MEASURE(editControls,drawEditControls());
MEASURE(speed,drawSpeed()); MEASURE(speed,drawSpeed());
if (!basicMode) {
MEASURE(grooves,drawGrooves()); MEASURE(grooves,drawGrooves());
}
MEASURE(songInfo,drawSongInfo()); MEASURE(songInfo,drawSongInfo());
MEASURE(orders,drawOrders()); MEASURE(orders,drawOrders());
MEASURE(sampleList,drawSampleList()); MEASURE(sampleList,drawSampleList());
@ -4680,14 +4661,10 @@ bool FurnaceGUI::loop() {
MEASURE(settings,drawSettings()); MEASURE(settings,drawSettings());
MEASURE(debug,drawDebug()); MEASURE(debug,drawDebug());
MEASURE(stats,drawStats()); MEASURE(stats,drawStats());
if (!basicMode) {
MEASURE(compatFlags,drawCompatFlags()); MEASURE(compatFlags,drawCompatFlags());
}
MEASURE(piano,drawPiano()); MEASURE(piano,drawPiano());
MEASURE(notes,drawNotes()); MEASURE(notes,drawNotes());
if (!basicMode) {
MEASURE(channels,drawChannels()); MEASURE(channels,drawChannels());
}
MEASURE(patManager,drawPatManager()); MEASURE(patManager,drawPatManager());
MEASURE(sysManager,drawSysManager()); MEASURE(sysManager,drawSysManager());
MEASURE(clock,drawClock()); MEASURE(clock,drawClock());
@ -5896,16 +5873,6 @@ bool FurnaceGUI::loop() {
ImGui::CloseCurrentPopup(); ImGui::CloseCurrentPopup();
} }
break; break;
case GUI_WARN_BASIC_MODE:
if (ImGui::Button("Yes")) {
basicMode=!basicMode;
ImGui::CloseCurrentPopup();
}
ImGui::SameLine();
if (ImGui::Button("No")) {
ImGui::CloseCurrentPopup();
}
break;
case GUI_WARN_GENERIC: case GUI_WARN_GENERIC:
if (ImGui::Button("OK")) { if (ImGui::Button("OK")) {
ImGui::CloseCurrentPopup(); ImGui::CloseCurrentPopup();
@ -6583,12 +6550,6 @@ bool FurnaceGUI::init() {
findOpen=e->getConfBool("findOpen",false); findOpen=e->getConfBool("findOpen",false);
spoilerOpen=e->getConfBool("spoilerOpen",false); spoilerOpen=e->getConfBool("spoilerOpen",false);
if (e->hasConf("lastDir")) {
basicMode=e->getConfBool("basicMode",false);
} else {
basicMode=true;
}
insListDir=e->getConfBool("insListDir",false); insListDir=e->getConfBool("insListDir",false);
waveListDir=e->getConfBool("waveListDir",false); waveListDir=e->getConfBool("waveListDir",false);
sampleListDir=e->getConfBool("sampleListDir",false); sampleListDir=e->getConfBool("sampleListDir",false);
@ -7142,7 +7103,6 @@ void FurnaceGUI::commitState() {
e->setConf("subSongsOpen",subSongsOpen); e->setConf("subSongsOpen",subSongsOpen);
e->setConf("findOpen",findOpen); e->setConf("findOpen",findOpen);
e->setConf("spoilerOpen",spoilerOpen); e->setConf("spoilerOpen",spoilerOpen);
e->setConf("basicMode",basicMode);
// commit dir state // commit dir state
e->setConf("insListDir",insListDir); e->setConf("insListDir",insListDir);
@ -7485,7 +7445,6 @@ FurnaceGUI::FurnaceGUI():
speedOpen(true), speedOpen(true),
groovesOpen(false), groovesOpen(false),
xyOscOpen(false), xyOscOpen(false),
basicMode(true),
shortIntro(false), shortIntro(false),
insListDir(false), insListDir(false),
waveListDir(false), waveListDir(false),

View file

@ -551,7 +551,6 @@ enum FurnaceGUIWarnings {
GUI_WARN_SUBSONG_DEL, GUI_WARN_SUBSONG_DEL,
GUI_WARN_SYSTEM_DEL, GUI_WARN_SYSTEM_DEL,
GUI_WARN_CLEAR_HISTORY, GUI_WARN_CLEAR_HISTORY,
GUI_WARN_BASIC_MODE,
GUI_WARN_GENERIC GUI_WARN_GENERIC
}; };
@ -2035,7 +2034,7 @@ class FurnaceGUI {
bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen; bool subSongsOpen, findOpen, spoilerOpen, patManagerOpen, sysManagerOpen, clockOpen, speedOpen;
bool groovesOpen, xyOscOpen; bool groovesOpen, xyOscOpen;
bool basicMode, shortIntro; bool shortIntro;
bool insListDir, waveListDir, sampleListDir; bool insListDir, waveListDir, sampleListDir;
bool clockShowReal, clockShowRow, clockShowBeat, clockShowMetro, clockShowTime; bool clockShowReal, clockShowRow, clockShowBeat, clockShowMetro, clockShowTime;

View file

@ -296,7 +296,7 @@ void FurnaceGUI::drawMixer() {
} }
ImGui::EndTabItem(); ImGui::EndTabItem();
} }
if (!basicMode) if (ImGui::BeginTabItem("Patchbay")) { if (ImGui::BeginTabItem("Patchbay")) {
std::map<unsigned int,ImVec2> portPos; std::map<unsigned int,ImVec2> portPos;
if (ImGui::BeginTable("PatchbayOptions",3)) { if (ImGui::BeginTable("PatchbayOptions",3)) {

View file

@ -63,7 +63,6 @@ void FurnaceGUI::drawSongInfo(bool asChild) {
if (ImGui::InputText("##Category",&e->song.category,ImGuiInputTextFlags_UndoRedo)) { if (ImGui::InputText("##Category",&e->song.category,ImGuiInputTextFlags_UndoRedo)) {
MARK_MODIFIED; MARK_MODIFIED;
} }
if (!basicMode) {
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding(); ImGui::AlignTextToFramePadding();
@ -87,16 +86,11 @@ void FurnaceGUI::drawSongInfo(bool asChild) {
} }
popToggleColors(); popToggleColors();
autoButtonSize=ImGui::GetItemRectSize().x; autoButtonSize=ImGui::GetItemRectSize().x;
}
ImGui::EndTable(); ImGui::EndTable();
} }
if (basicMode) { if (ImGui::BeginTable("OtherProps",2,ImGuiTableFlags_SizingStretchProp)) {
if (e->song.tuning<435.8 || e->song.tuning>444) {
ImGui::TextWrapped("Tuning changed - disable Basic Mode to edit.");
}
} else if (ImGui::BeginTable("OtherProps",2,ImGuiTableFlags_SizingStretchProp)) {
ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0); ImGui::TableSetupColumn("c0",ImGuiTableColumnFlags_WidthFixed,0.0);
ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0); ImGui::TableSetupColumn("c1",ImGuiTableColumnFlags_WidthStretch,0.0);

View file

@ -162,7 +162,6 @@ void FurnaceGUI::drawSpeed(bool asChild) {
} }
} }
if (!basicMode) {
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding(); ImGui::AlignTextToFramePadding();
@ -200,7 +199,6 @@ void FurnaceGUI::drawSpeed(bool asChild) {
} }
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text("%.2f BPM",calcBPM(e->curSubSong->speeds,e->curSubSong->hz,e->curSubSong->virtualTempoN,e->curSubSong->virtualTempoD)); ImGui::Text("%.2f BPM",calcBPM(e->curSubSong->speeds,e->curSubSong->hz,e->curSubSong->virtualTempoN,e->curSubSong->virtualTempoD));
}
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
@ -239,7 +237,6 @@ void FurnaceGUI::drawSpeed(bool asChild) {
e->curSubSong->patLen=patLen; e->curSubSong->patLen=patLen;
} }
if (!basicMode) {
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::AlignTextToFramePadding(); ImGui::AlignTextToFramePadding();
@ -255,7 +252,6 @@ void FurnaceGUI::drawSpeed(bool asChild) {
setOrder(ordLen-1); setOrder(ordLen-1);
} }
} }
}
ImGui::EndTable(); ImGui::EndTable();
} }

View file

@ -279,29 +279,13 @@ void FurnaceGUI::drawTutorial() {
ImGui::Separator(); ImGui::Separator();
ImGui::TextWrapped(
"there are two interface modes: Basic, and Advanced.\n"
"the Basic Mode only shows essential features. use it if you are new to trackers or prefer simplicity.\n"
"Advanced Mode allows you to use all Furnace features, but it may be confusing."
);
ImGui::TextWrapped("pick a mode to begin your journey! (you can always switch by going to Settings > Basic Mode)");
if (ImGui::Button("Start in Basic Mode")) {
basicMode=true;
tutorial.protoWelcome=true;
commitTutorial();
ImGui::CloseCurrentPopup();
}
if (ImGui::Button("Start in Advanced Mode")) {
basicMode=false;
tutorial.protoWelcome=true;
commitTutorial();
ImGui::CloseCurrentPopup();
}
ImGui::TextWrapped("if you find any issues, be sure to report them! the issue tracker is here: https://github.com/tildearrow/furnace/issues"); ImGui::TextWrapped("if you find any issues, be sure to report them! the issue tracker is here: https://github.com/tildearrow/furnace/issues");
if (ImGui::Button("OK")) {
tutorial.protoWelcome=true;
commitTutorial();
ImGui::CloseCurrentPopup();
}
ImGui::SetWindowPos(ImVec2( ImGui::SetWindowPos(ImVec2(
(canvasW-ImGui::GetWindowSize().x)*0.5, (canvasW-ImGui::GetWindowSize().x)*0.5,