From a360bb448b0637b7094dc04f0c6e1d7d9557da46 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Mon, 7 Jan 2019 14:04:40 -0500 Subject: [PATCH] Add toolbar item to toggle param tooltip --- include/settings.hpp | 1 + src/app/ParamWidget.cpp | 19 ++++++++++--------- src/app/Toolbar.cpp | 12 ++++++++++++ src/settings.cpp | 9 +++++++++ 4 files changed, 32 insertions(+), 9 deletions(-) diff --git a/include/settings.hpp b/include/settings.hpp index a25d5ef0..fe88746e 100644 --- a/include/settings.hpp +++ b/include/settings.hpp @@ -13,6 +13,7 @@ void load(std::string filename); extern float zoom; extern float wireOpacity; extern float wireTension; +extern bool paramTooltip; extern bool powerMeter; extern bool lockModules; extern bool checkVersion; diff --git a/src/app/ParamWidget.cpp b/src/app/ParamWidget.cpp index 98d762e5..d3c98d86 100644 --- a/src/app/ParamWidget.cpp +++ b/src/app/ParamWidget.cpp @@ -1,6 +1,7 @@ #include "app/ParamWidget.hpp" #include "app/Scene.hpp" #include "context.hpp" +#include "settings.hpp" #include "random.hpp" @@ -53,18 +54,18 @@ void ParamWidget::onButton(const event::Button &e) { } void ParamWidget::onEnter(const event::Enter &e) { - if (tooltip) - return; - tooltip = new Tooltip; - context()->scene->addChild(tooltip); + if (settings::paramTooltip && !tooltip) { + tooltip = new Tooltip; + context()->scene->addChild(tooltip); + } } void ParamWidget::onLeave(const event::Leave &e) { - if (!tooltip) - return; - context()->scene->removeChild(tooltip); - delete tooltip; - tooltip = NULL; + if (tooltip) { + context()->scene->removeChild(tooltip); + delete tooltip; + tooltip = NULL; + } } diff --git a/src/app/Toolbar.cpp b/src/app/Toolbar.cpp index b256a651..3cb937bd 100644 --- a/src/app/Toolbar.cpp +++ b/src/app/Toolbar.cpp @@ -197,6 +197,17 @@ struct PowerMeterItem : MenuItem { }; +struct ParamTooltipItem : MenuItem { + ParamTooltipItem() { + text = "Parameter tooltips"; + rightText = CHECKMARK(settings::paramTooltip); + } + void onAction(const event::Action &e) override { + settings::paramTooltip ^= true; + } +}; + + struct LockModulesItem : MenuItem { LockModulesItem() { text = "Lock modules"; @@ -260,6 +271,7 @@ struct SettingsButton : MenuButton { menu->box.pos = getAbsoluteOffset(math::Vec(0, box.size.y)); menu->box.size.x = box.size.x; + menu->addChild(new ParamTooltipItem); menu->addChild(new PowerMeterItem); menu->addChild(new LockModulesItem); menu->addChild(new SampleRateItem); diff --git a/src/settings.cpp b/src/settings.cpp index 4cd8cb7d..9e23f871 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -70,6 +70,9 @@ static json_t *settingsToJson() { // checkVersion json_object_set_new(rootJ, "checkVersion", json_boolean(checkVersion)); + // paramTooltip + json_object_set_new(rootJ, "paramTooltip", json_boolean(paramTooltip)); + return rootJ; } @@ -146,6 +149,11 @@ static void settingsFromJson(json_t *rootJ) { json_t *checkVersionJ = json_object_get(rootJ, "checkVersion"); if (checkVersionJ) checkVersion = json_boolean_value(checkVersionJ); + + // paramTooltip + json_t *paramTooltipJ = json_object_get(rootJ, "paramTooltip"); + if (paramTooltipJ) + paramTooltip = json_boolean_value(paramTooltipJ); } @@ -186,6 +194,7 @@ void load(std::string filename) { float zoom = 1.0; float wireOpacity = 0.5; float wireTension = 0.5; +bool paramTooltip = false; bool powerMeter = false; bool lockModules = false; bool checkVersion = true;