|
@@ -15,7 +15,6 @@ |
|
|
#include <ui/ChoiceButton.hpp> |
|
|
#include <ui/ChoiceButton.hpp> |
|
|
#include <ui/Tooltip.hpp> |
|
|
#include <ui/Tooltip.hpp> |
|
|
#include <ui/Slider.hpp> |
|
|
#include <ui/Slider.hpp> |
|
|
|
|
|
|
|
|
#include <app/ModuleWidget.hpp> |
|
|
#include <app/ModuleWidget.hpp> |
|
|
#include <app/Scene.hpp> |
|
|
#include <app/Scene.hpp> |
|
|
#include <plugin.hpp> |
|
|
#include <plugin.hpp> |
|
@@ -27,7 +26,6 @@ |
|
|
#include <set> |
|
|
#include <set> |
|
|
#include <algorithm> |
|
|
#include <algorithm> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace rack { |
|
|
namespace rack { |
|
|
namespace app { |
|
|
namespace app { |
|
|
|
|
|
|
|
@@ -447,17 +445,62 @@ struct ModuleBrowserZoomQuantity : Quantity |
|
|
std::string getUnit() override { return "%"; } |
|
|
std::string getUnit() override { return "%"; } |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
struct ModuleBrowserZoomSlider : ui::Slider |
|
|
|
|
|
|
|
|
struct ZoomItem : public ui::MenuItem |
|
|
|
|
|
{ |
|
|
|
|
|
float value; |
|
|
|
|
|
Quantity *quantity; |
|
|
|
|
|
|
|
|
|
|
|
ZoomItem(std::string text, float value, Quantity *quantity) |
|
|
|
|
|
: value(value) |
|
|
|
|
|
, quantity(quantity) |
|
|
|
|
|
{ |
|
|
|
|
|
this->text = text; |
|
|
|
|
|
this->setSize(math::Vec(60, 30)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void onAction(const event::Action &e) override |
|
|
|
|
|
{ |
|
|
|
|
|
quantity->setValue(value); |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
struct ModuleBrowserZoomButton : ui::ChoiceButton |
|
|
{ |
|
|
{ |
|
|
ModuleBrowserZoomSlider() |
|
|
|
|
|
|
|
|
ModuleBrowserZoomButton() |
|
|
{ |
|
|
{ |
|
|
quantity = new ModuleBrowserZoomQuantity; |
|
|
|
|
|
|
|
|
quantity = new ModuleBrowserZoomQuantity; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
~ModuleBrowserZoomSlider() |
|
|
|
|
|
|
|
|
~ModuleBrowserZoomButton() |
|
|
{ |
|
|
{ |
|
|
delete quantity; |
|
|
delete quantity; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void onDragStart(const event::DragStart &e) override |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void onDragEnd(const event::DragEnd &e) override |
|
|
|
|
|
{ |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void onAction(const event::Action &e) override |
|
|
|
|
|
{ |
|
|
|
|
|
auto menu = createMenu(); |
|
|
|
|
|
|
|
|
|
|
|
menu->setSize(math::Vec(200, 200)); |
|
|
|
|
|
menu->addChild(new ZoomItem("50%", 0.5f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("75%", 0.75f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("100%", 1.0f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("125%", 1.25f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("150%", 1.5f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("175%", 1.75f, quantity)); |
|
|
|
|
|
menu->addChild(new ZoomItem("200%", 2.0f, quantity)); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void step() override { |
|
|
|
|
|
text = quantity->getString(); |
|
|
|
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
struct ModuleBrowser : widget::OpaqueWidget { |
|
|
struct ModuleBrowser : widget::OpaqueWidget { |
|
@@ -466,7 +509,7 @@ struct ModuleBrowser : widget::OpaqueWidget { |
|
|
ui::Label *modelLabel; |
|
|
ui::Label *modelLabel; |
|
|
ui::MarginLayout *modelMargin; |
|
|
ui::MarginLayout *modelMargin; |
|
|
ui::SequentialLayout *modelContainer; |
|
|
ui::SequentialLayout *modelContainer; |
|
|
ModuleBrowserZoomSlider *moduleBrowserZoomSlider; |
|
|
|
|
|
|
|
|
ModuleBrowserZoomButton *moduleBrowserZoomButton; |
|
|
|
|
|
|
|
|
std::string search; |
|
|
std::string search; |
|
|
std::string brand; |
|
|
std::string brand; |
|
@@ -480,11 +523,8 @@ struct ModuleBrowser : widget::OpaqueWidget { |
|
|
addChild(sidebar); |
|
|
addChild(sidebar); |
|
|
|
|
|
|
|
|
modelLabel = new ui::Label; |
|
|
modelLabel = new ui::Label; |
|
|
// modelLabel->fontSize = 16; |
|
|
|
|
|
// modelLabel->box.size.x = 400; |
|
|
|
|
|
addChild(modelLabel); |
|
|
addChild(modelLabel); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modelScroll = new ui::ScrollWidget; |
|
|
modelScroll = new ui::ScrollWidget; |
|
|
addChild(modelScroll); |
|
|
addChild(modelScroll); |
|
|
|
|
|
|
|
@@ -505,9 +545,9 @@ struct ModuleBrowser : widget::OpaqueWidget { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
moduleBrowserZoomSlider = new ModuleBrowserZoomSlider(); |
|
|
|
|
|
moduleBrowserZoomSlider->box.size.x = 200; |
|
|
|
|
|
addChild(moduleBrowserZoomSlider); |
|
|
|
|
|
|
|
|
moduleBrowserZoomButton = new ModuleBrowserZoomButton(); |
|
|
|
|
|
moduleBrowserZoomButton->box.size.x = 200; |
|
|
|
|
|
addChild(moduleBrowserZoomButton); |
|
|
|
|
|
|
|
|
refresh(); |
|
|
refresh(); |
|
|
} |
|
|
} |
|
@@ -517,7 +557,7 @@ struct ModuleBrowser : widget::OpaqueWidget { |
|
|
|
|
|
|
|
|
sidebar->box.size.y = box.size.y; |
|
|
sidebar->box.size.y = box.size.y; |
|
|
modelLabel->box.pos = sidebar->box.getTopRight().plus(math::Vec(5, 5)); |
|
|
modelLabel->box.pos = sidebar->box.getTopRight().plus(math::Vec(5, 5)); |
|
|
moduleBrowserZoomSlider->box.pos = sidebar->box.getTopRight().plus(math::Vec(500, 5)); |
|
|
|
|
|
|
|
|
moduleBrowserZoomButton->box.pos = sidebar->box.getTopRight().plus(math::Vec(500, 5)); |
|
|
modelScroll->box.pos = sidebar->box.getTopRight().plus(math::Vec(0, 30)); |
|
|
modelScroll->box.pos = sidebar->box.getTopRight().plus(math::Vec(0, 30)); |
|
|
modelScroll->box.size = box.size.minus(modelScroll->box.pos); |
|
|
modelScroll->box.size = box.size.minus(modelScroll->box.pos); |
|
|
modelMargin->box.size.x = modelScroll->box.size.x; |
|
|
modelMargin->box.size.x = modelScroll->box.size.x; |
|
|