| @@ -13,6 +13,7 @@ void load(std::string filename); | |||||
| extern float zoom; | extern float zoom; | ||||
| extern float wireOpacity; | extern float wireOpacity; | ||||
| extern float wireTension; | extern float wireTension; | ||||
| extern bool paramTooltip; | |||||
| extern bool powerMeter; | extern bool powerMeter; | ||||
| extern bool lockModules; | extern bool lockModules; | ||||
| extern bool checkVersion; | extern bool checkVersion; | ||||
| @@ -1,6 +1,7 @@ | |||||
| #include "app/ParamWidget.hpp" | #include "app/ParamWidget.hpp" | ||||
| #include "app/Scene.hpp" | #include "app/Scene.hpp" | ||||
| #include "context.hpp" | #include "context.hpp" | ||||
| #include "settings.hpp" | |||||
| #include "random.hpp" | #include "random.hpp" | ||||
| @@ -53,18 +54,18 @@ void ParamWidget::onButton(const event::Button &e) { | |||||
| } | } | ||||
| void ParamWidget::onEnter(const event::Enter &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) { | 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; | |||||
| } | |||||
| } | } | ||||
| @@ -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 { | struct LockModulesItem : MenuItem { | ||||
| LockModulesItem() { | LockModulesItem() { | ||||
| text = "Lock modules"; | text = "Lock modules"; | ||||
| @@ -260,6 +271,7 @@ struct SettingsButton : MenuButton { | |||||
| menu->box.pos = getAbsoluteOffset(math::Vec(0, box.size.y)); | menu->box.pos = getAbsoluteOffset(math::Vec(0, box.size.y)); | ||||
| menu->box.size.x = box.size.x; | menu->box.size.x = box.size.x; | ||||
| menu->addChild(new ParamTooltipItem); | |||||
| menu->addChild(new PowerMeterItem); | menu->addChild(new PowerMeterItem); | ||||
| menu->addChild(new LockModulesItem); | menu->addChild(new LockModulesItem); | ||||
| menu->addChild(new SampleRateItem); | menu->addChild(new SampleRateItem); | ||||
| @@ -70,6 +70,9 @@ static json_t *settingsToJson() { | |||||
| // checkVersion | // checkVersion | ||||
| json_object_set_new(rootJ, "checkVersion", json_boolean(checkVersion)); | json_object_set_new(rootJ, "checkVersion", json_boolean(checkVersion)); | ||||
| // paramTooltip | |||||
| json_object_set_new(rootJ, "paramTooltip", json_boolean(paramTooltip)); | |||||
| return rootJ; | return rootJ; | ||||
| } | } | ||||
| @@ -146,6 +149,11 @@ static void settingsFromJson(json_t *rootJ) { | |||||
| json_t *checkVersionJ = json_object_get(rootJ, "checkVersion"); | json_t *checkVersionJ = json_object_get(rootJ, "checkVersion"); | ||||
| if (checkVersionJ) | if (checkVersionJ) | ||||
| checkVersion = json_boolean_value(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 zoom = 1.0; | ||||
| float wireOpacity = 0.5; | float wireOpacity = 0.5; | ||||
| float wireTension = 0.5; | float wireTension = 0.5; | ||||
| bool paramTooltip = false; | |||||
| bool powerMeter = false; | bool powerMeter = false; | ||||
| bool lockModules = false; | bool lockModules = false; | ||||
| bool checkVersion = true; | bool checkVersion = true; | ||||