From 0595bf174c20fea75cc8b15f3871911ca2b6ebd1 Mon Sep 17 00:00:00 2001 From: Eknous-P Date: Thu, 21 Mar 2024 13:51:09 +0400 Subject: [PATCH] settings --- src/gui/gui.h | 4 ++++ src/gui/settings.cpp | 18 ++++++++++++++++++ src/gui/sysManager.cpp | 4 ++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/gui/gui.h b/src/gui/gui.h index 801e0bd16..c11496768 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1815,6 +1815,8 @@ class FurnaceGUI { int playbackTime; int shaderOsc; int cursorWheelStep; + int chipManagerTooltip; + int sysTooltipChannelColors; unsigned int maxUndoSteps; String mainFontPath; String headFontPath; @@ -2020,6 +2022,8 @@ class FurnaceGUI { playbackTime(1), shaderOsc(1), cursorWheelStep(0), + chipManagerTooltip(1), // poll? + sysTooltipChannelColors(1), // poll? maxUndoSteps(100), mainFontPath(""), headFontPath(""), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index ea069044a..2798c7a3b 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2754,6 +2754,18 @@ void FurnaceGUI::drawSettings() { settingsChanged=true; } + bool chipManagerTooltipB=settings.chipManagerTooltip; + if (ImGui::Checkbox("Show system tooltips in the chip manager",&chipManagerTooltipB)) { + settings.chipManagerTooltip=chipManagerTooltipB; + settingsChanged=true; + } + + bool sysTooltipChannelColorsB=settings.sysTooltipChannelColors; + if (ImGui::Checkbox("Show channel count with colors in the system info tooltips",&sysTooltipChannelColorsB)) { // poor wording + settings.sysTooltipChannelColors=sysTooltipChannelColorsB; + settingsChanged=true; + } + // SUBSECTION ORDERS CONFIG_SUBSECTION("Orders"); // sorry. temporarily disabled until ImGui has a way to add separators in tables arbitrarily. @@ -4119,6 +4131,8 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { settings.macroLayout=conf.getInt("macroLayout",0); settings.controlLayout=conf.getInt("controlLayout",3); settings.classicChipOptions=conf.getInt("classicChipOptions",0); + settings.chipManagerTooltip=conf.getInt("chipManagerTooltip",0); + settings.sysTooltipChannelColors=conf.getInt("sysTooltipChannelColors",0); } if (groups&GUI_SETTINGS_COLOR) { @@ -4337,6 +4351,8 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { clampSetting(settings.shaderOsc,0,1); clampSetting(settings.oscLineSize,0.25f,16.0f); clampSetting(settings.cursorWheelStep,0,1); + clampSetting(settings.chipManagerTooltip,0,1); + clampSetting(settings.sysTooltipChannelColors,0,1); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -4594,6 +4610,8 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { conf.set("macroLayout",settings.macroLayout); conf.set("controlLayout",settings.controlLayout); conf.set("classicChipOptions",settings.classicChipOptions); + conf.set("chipManagerTooltip",settings.chipManagerTooltip); + conf.set("sysTooltipChannelColors",settings.sysTooltipChannelColors); } // color diff --git a/src/gui/sysManager.cpp b/src/gui/sysManager.cpp index 17d66f8f4..1706b8b7b 100644 --- a/src/gui/sysManager.cpp +++ b/src/gui/sysManager.cpp @@ -97,14 +97,14 @@ void FurnaceGUI::drawSysManager() { isNotCollapsed=false; ImGui::TreePop(); } - if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary) && isNotCollapsed) { + if (ImGui::IsItemHovered(ImGuiHoveredFlags_Stationary) && isNotCollapsed && settings.chipManagerTooltip) { if (e->song.system[i]!=DIV_SYSTEM_NULL) { const DivSysDef* sysDef=e->getSystemDef(e->song.system[i]); if (ImGui::BeginTooltip()) { // why not SetTooltip()? so i can wrap the text ImGui::PushTextWrapPos(ImGui::GetCursorPos().x+420); // arbitrary constant ImGui::TextWrapped("%s",sysDef->description); ImGui::PopTextWrapPos(); - drawSystemChannelInfo(sysDef); + if (settings.sysTooltipChannelColors) drawSystemChannelInfo(sysDef); ImGui::EndTooltip(); } }