Browse Source

Add toggle button for plug light, use title caps for all text

tags/v0.4.0
Andrew Belt 7 years ago
parent
commit
aa2988c09d
7 changed files with 57 additions and 26 deletions
  1. +3
    -1
      include/app.hpp
  2. +1
    -0
      src/app.cpp
  3. +4
    -4
      src/app/RackScene.cpp
  4. +2
    -2
      src/app/RackWidget.cpp
  5. +13
    -2
      src/app/Toolbar.cpp
  6. +21
    -13
      src/app/WireWidget.cpp
  7. +13
    -4
      src/settings.cpp

+ 3
- 1
include/app.hpp View File

@@ -313,6 +313,7 @@ struct Toolbar : OpaqueWidget {
Slider *wireOpacitySlider; Slider *wireOpacitySlider;
Slider *wireTensionSlider; Slider *wireTensionSlider;
RadioButton *cpuUsageButton; RadioButton *cpuUsageButton;
RadioButton *plugLightButton;


Toolbar(); Toolbar();
void draw(NVGcontext *vg); void draw(NVGcontext *vg);
@@ -327,7 +328,6 @@ struct PluginManagerWidget : Widget {
}; };


struct RackScene : Scene { struct RackScene : Scene {
Toolbar *toolbar;
ScrollWidget *scrollWidget; ScrollWidget *scrollWidget;
ZoomWidget *zoomWidget; ZoomWidget *zoomWidget;


@@ -345,7 +345,9 @@ extern std::string gApplicationName;
extern std::string gApplicationVersion; extern std::string gApplicationVersion;
extern std::string gApiHost; extern std::string gApiHost;


// Easy access to "singleton" widgets
extern RackWidget *gRackWidget; extern RackWidget *gRackWidget;
extern Toolbar *gToolbar;


void sceneInit(); void sceneInit();
void sceneDestroy(); void sceneDestroy();


+ 1
- 0
src/app.cpp View File

@@ -8,6 +8,7 @@ std::string gApplicationVersion = TOSTRING(VERSION);
std::string gApiHost = "http://api.vcvrack.com"; std::string gApiHost = "http://api.vcvrack.com";


RackWidget *gRackWidget = NULL; RackWidget *gRackWidget = NULL;
Toolbar *gToolbar = NULL;




void sceneInit() { void sceneInit() {


+ 4
- 4
src/app/RackScene.cpp View File

@@ -40,9 +40,9 @@ RackScene::RackScene() {
} }
addChild(scrollWidget); addChild(scrollWidget);


toolbar = new Toolbar();
addChild(toolbar);
scrollWidget->box.pos.y = toolbar->box.size.y;
gToolbar = new Toolbar();
addChild(gToolbar);
scrollWidget->box.pos.y = gToolbar->box.size.y;


// Check for new version // Check for new version
if (gApplicationVersion != "dev") { if (gApplicationVersion != "dev") {
@@ -53,7 +53,7 @@ RackScene::RackScene() {


void RackScene::step() { void RackScene::step() {
// Resize owned descendants // Resize owned descendants
toolbar->box.size.x = box.size.x;
gToolbar->box.size.x = box.size.x;
scrollWidget->box.size = box.size.minus(scrollWidget->box.pos); scrollWidget->box.size = box.size.minus(scrollWidget->box.pos);


// Resize to be a bit larger than the ScrollWidget viewport // Resize to be a bit larger than the ScrollWidget viewport


+ 2
- 2
src/app/RackWidget.cpp View File

@@ -395,7 +395,7 @@ struct AddPluginMenuItem : MenuItem {


if (!plugin->path.empty()) { if (!plugin->path.empty()) {
UrlItem *item = new UrlItem(); UrlItem *item = new UrlItem();
item->text = "Browse Directory";
item->text = "Browse directory";
item->url = plugin->path; item->url = plugin->path;
menu->pushChild(item); menu->pushChild(item);
} }
@@ -410,7 +410,7 @@ void RackWidget::onMouseDownOpaque(int button) {
Menu *menu = gScene->createMenu(); Menu *menu = gScene->createMenu();


MenuLabel *menuLabel = new MenuLabel(); MenuLabel *menuLabel = new MenuLabel();
menuLabel->text = "Add Module";
menuLabel->text = "Add module";
menu->pushChild(menuLabel); menu->pushChild(menuLabel);
for (Plugin *plugin : gPlugins) { for (Plugin *plugin : gPlugins) {
AddPluginMenuItem *item = new AddPluginMenuItem(); AddPluginMenuItem *item = new AddPluginMenuItem();


+ 13
- 2
src/app/Toolbar.cpp View File

@@ -53,7 +53,7 @@ struct FileChoice : ChoiceButton {
menu->pushChild(saveItem); menu->pushChild(saveItem);


MenuItem *saveAsItem = new SaveAsItem(); MenuItem *saveAsItem = new SaveAsItem();
saveAsItem->text = "Save As";
saveAsItem->text = "Save as";
saveAsItem->rightText = GUI_MOD_KEY_NAME "+Shift+S"; saveAsItem->rightText = GUI_MOD_KEY_NAME "+Shift+S";
menu->pushChild(saveAsItem); menu->pushChild(saveAsItem);
} }
@@ -82,7 +82,7 @@ struct SampleRateChoice : ChoiceButton {
menu->box.size.x = box.size.x; menu->box.size.x = box.size.x;


PauseItem *pauseItem = new PauseItem(); PauseItem *pauseItem = new PauseItem();
pauseItem->text = gPaused ? "Resume Engine" : "Pause Engine";
pauseItem->text = gPaused ? "Resume engine" : "Pause engine";
menu->pushChild(pauseItem); menu->pushChild(pauseItem);


float sampleRates[] = {44100, 48000, 88200, 96000, 176400, 192000}; float sampleRates[] = {44100, 48000, 88200, 96000, 176400, 192000};
@@ -154,6 +154,17 @@ Toolbar::Toolbar() {
xPos += wireTensionSlider->box.size.x; xPos += wireTensionSlider->box.size.x;
} }


xPos += margin;
{
plugLightButton = new RadioButton();
plugLightButton->box.pos = Vec(xPos, margin);
plugLightButton->box.size.x = 100;
plugLightButton->label = "Plug lights";
plugLightButton->setValue(1.0);
addChild(plugLightButton);
xPos += plugLightButton->box.size.x;
}

/* /*
xPos += margin; xPos += margin;
{ {


+ 21
- 13
src/app/WireWidget.cpp View File

@@ -151,8 +151,8 @@ Vec WireWidget::getInputPos() {
} }


void WireWidget::draw(NVGcontext *vg) { void WireWidget::draw(NVGcontext *vg) {
float opacity = dynamic_cast<RackScene*>(gScene)->toolbar->wireOpacitySlider->value / 100.0;
float tension = dynamic_cast<RackScene*>(gScene)->toolbar->wireTensionSlider->value;
float opacity = gToolbar->wireOpacitySlider->value / 100.0;
float tension = gToolbar->wireTensionSlider->value;


// Draw as opaque if an "incomplete" wire // Draw as opaque if an "incomplete" wire
if (!(inputPort && outputPort)) if (!(inputPort && outputPort))
@@ -169,19 +169,27 @@ void WireWidget::drawPlugs(NVGcontext *vg) {
drawPlug(vg, inputPos, color); drawPlug(vg, inputPos, color);


// Draw plug light // Draw plug light
if (wire) {
Output &output = wire->outputModule->outputs[wire->outputId];
float value = output.value / 8.0;
outputLight->box.size = Vec(10, 10);
inputLight->box.size = Vec(10, 10);
outputLight->box.pos = outputPos.minus(Vec(5, 5));
inputLight->box.pos = inputPos.minus(Vec(5, 5));
outputLight->setValue(value);
inputLight->setValue(value);
if (gToolbar->plugLightButton->value > 0.0) {
if (wire) {
Output &output = wire->outputModule->outputs[wire->outputId];
float value = output.value / 8.0;
outputLight->box.size = Vec(10, 10);
inputLight->box.size = Vec(10, 10);
outputLight->box.pos = outputPos.minus(Vec(5, 5));
inputLight->box.pos = inputPos.minus(Vec(5, 5));
outputLight->setValue(value);
inputLight->setValue(value);
}
else {
outputLight->setValue(0.0);
inputLight->setValue(0.0);
}
outputLight->visible = true;
inputLight->visible = true;
} }
else { else {
outputLight->setValue(0.0);
inputLight->setValue(0.0);
outputLight->visible = false;
inputLight->visible = false;
} }
Widget::draw(vg); Widget::draw(vg);
} }


+ 13
- 4
src/settings.cpp View File

@@ -18,12 +18,12 @@ static json_t *settingsToJson() {
json_object_set_new(rootJ, "token", tokenJ); json_object_set_new(rootJ, "token", tokenJ);


// opacity // opacity
float opacity = dynamic_cast<RackScene*>(gScene)->toolbar->wireOpacitySlider->value;
float opacity = gToolbar->wireOpacitySlider->value;
json_t *opacityJ = json_real(opacity); json_t *opacityJ = json_real(opacity);
json_object_set_new(rootJ, "wireOpacity", opacityJ); json_object_set_new(rootJ, "wireOpacity", opacityJ);


// tension // tension
float tension = dynamic_cast<RackScene*>(gScene)->toolbar->wireTensionSlider->value;
float tension = gToolbar->wireTensionSlider->value;
json_t *tensionJ = json_real(tension); json_t *tensionJ = json_real(tension);
json_object_set_new(rootJ, "wireTension", tensionJ); json_object_set_new(rootJ, "wireTension", tensionJ);


@@ -36,6 +36,10 @@ static json_t *settingsToJson() {
json_t *sampleRateJ = json_real(sampleRate); json_t *sampleRateJ = json_real(sampleRate);
json_object_set_new(rootJ, "sampleRate", sampleRateJ); json_object_set_new(rootJ, "sampleRate", sampleRateJ);


// plugLight
json_t *plugLightJ = json_boolean(gToolbar->plugLightButton->value > 0.0);
json_object_set_new(rootJ, "plugLight", plugLightJ);

return rootJ; return rootJ;
} }


@@ -48,12 +52,12 @@ static void settingsFromJson(json_t *rootJ) {
// opacity // opacity
json_t *opacityJ = json_object_get(rootJ, "wireOpacity"); json_t *opacityJ = json_object_get(rootJ, "wireOpacity");
if (opacityJ) if (opacityJ)
dynamic_cast<RackScene*>(gScene)->toolbar->wireOpacitySlider->value = json_number_value(opacityJ);
gToolbar->wireOpacitySlider->value = json_number_value(opacityJ);


// tension // tension
json_t *tensionJ = json_object_get(rootJ, "wireTension"); json_t *tensionJ = json_object_get(rootJ, "wireTension");
if (tensionJ) if (tensionJ)
dynamic_cast<RackScene*>(gScene)->toolbar->wireTensionSlider->value = json_number_value(tensionJ);
gToolbar->wireTensionSlider->value = json_number_value(tensionJ);


// allowCursorLock // allowCursorLock
json_t *allowCursorLockJ = json_object_get(rootJ, "allowCursorLock"); json_t *allowCursorLockJ = json_object_get(rootJ, "allowCursorLock");
@@ -66,6 +70,11 @@ static void settingsFromJson(json_t *rootJ) {
float sampleRate = json_number_value(sampleRateJ); float sampleRate = json_number_value(sampleRateJ);
engineSetSampleRate(sampleRate); engineSetSampleRate(sampleRate);
} }

// plugLight
json_t *plugLightJ = json_object_get(rootJ, "plugLight");
if (plugLightJ)
gToolbar->plugLightButton->setValue(json_is_true(plugLightJ) ? 1.0 : 0.0);
} }






Loading…
Cancel
Save