@@ -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; | ||||