commit 27016937392282cc0574ce6da4c2ed210ee15d3e
parent f3319cc196759b3ea7ded789df3f4660409ffadc
Author: Adam M <aemalone@gmail.com>
Date: Sat, 2 Jan 2021 18:39:01 -0600
menu select for animation mode stuff
Diffstat:
2 files changed, 101 insertions(+), 8 deletions(-)
diff --git a/src/ComputerscareBlank.cpp b/src/ComputerscareBlank.cpp
@@ -8,6 +8,8 @@
#include <thread>
#include <dirent.h>
+#define FONT_SIZE 13
+
struct ComputerscareBlank;
struct ComputerscareBlank : ComputerscareMenuParamModule {
@@ -162,7 +164,8 @@ struct ComputerscareBlank : ComputerscareMenuParamModule {
if (resetConnected) {
if (resetTrigger.process(messageFromExpander[4])) {
- DEBUG("RESSSSSTT");
+ DEBUG("RESET TRIGGER");
+ goToFrame(0);
}
}
@@ -496,6 +499,46 @@ struct InvertYMenuItem: MenuItem {
MenuItem::step();
}
};
+struct ssmi : MenuItem
+{
+ //ComputerscareRolyPouter *pouter;
+ int mySetVal = 1;
+ ParamQuantity *myParamQuantity;
+ ssmi(int i,ParamQuantity* pq)
+ {
+ mySetVal=i;
+ myParamQuantity = pq;
+ }
+
+ void onAction(const event::Action &e) override
+ {
+ myParamQuantity->setValue(mySetVal);
+ //pouter->setAll(mySetVal);
+ }
+ void step() override {
+ rightText = myParamQuantity->getValue() == mySetVal ? "✔" : "";
+ MenuItem::step();
+ }
+};
+struct Strongbipper : MenuItem {
+ ParamQuantity* param;
+ std::vector<std::string> options;
+
+ Menu *createChildMenu() override {
+ Menu *menu = new Menu;
+ for (unsigned int i = 0; i < options.size(); i++) {
+ ssmi *menuItem = new ssmi(i,param);
+ menuItem->text = options[i];
+ //menuItem->pouter = pouter;
+ menu->addChild(menuItem);
+ }
+ return menu;
+ }
+ void step() override {
+ rightText = "("+options[param->getValue()]+") "+RIGHT_ARROW;
+ MenuItem::step();
+ }
+};
struct KeyboardControlChildMenu : MenuItem {
ComputerscareBlank *blank;
@@ -725,12 +768,25 @@ struct ComputerscareBlankWidget : MenuParamModuleWidget {
MenuParam* mp = new MenuParam(blankModule->paramQuantities[ComputerscareBlank::CONSTANT_FRAME_DELAY], 0);
menu->addChild(mp);
- MenuParam* am = new MenuParam(blankModule->paramQuantities[ComputerscareBlank::ANIMATION_MODE], 1);
- menu->addChild(am);
- MenuParam* eb = new MenuParam(blankModule->paramQuantities[ComputerscareBlank::END_BEHAVIOR], 1);
- menu->addChild(eb);
+ Strongbipper *modeMenu = new Strongbipper();
+ modeMenu->text = "Animation Mode";
+ modeMenu->rightText = RIGHT_ARROW;
+ modeMenu->param = blankModule->paramQuantities[ComputerscareBlank::ANIMATION_MODE];
+ modeMenu->options = blankModule->animationModeDescriptions;
+
+ menu->addChild(modeMenu);
+
+
+
+ Strongbipper *endMenu = new Strongbipper();
+ endMenu->text = "Animation End Behavior";
+ endMenu->rightText = RIGHT_ARROW;
+ endMenu->param = blankModule->paramQuantities[ComputerscareBlank::END_BEHAVIOR];
+ endMenu->options = blankModule->endBehaviorDescriptions;
+
+ menu->addChild(endMenu);
diff --git a/src/MenuParams.hpp b/src/MenuParams.hpp
@@ -28,10 +28,33 @@ struct ParamAndType {
type = t;
}
};
+
+struct SubMenuAndKnob : MenuItem {
+ SubMenuAndKnob() {
+ MenuItem();
+ }
+ Menu *createChildMenu() override {
+ Menu *menu = new Menu;
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 1"));
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 2"));
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 3"));
+
+ return menu;
+ }
+
+};
+/*
+
+KeyboardControlChildMenu *kbMenu = new KeyboardControlChildMenu();
+ kbMenu->text = "Keyboard Controls";
+ kbMenu->rightText = RIGHT_ARROW;
+ kbMenu->blank = blank;
+ menu->addChild(kbMenu);*/
struct MenuParam : MenuEntry {
ParamWidget* speedParam;
MenuLabel* johnLabel;
MenuLabel* displayString;
+ SubMenuAndKnob *submenu;
float controlRightMargin = 6;
MenuParam(ParamQuantity* param, int type) {
@@ -40,24 +63,38 @@ struct MenuParam : MenuEntry {
}
else if (type == 1) {
speedParam = new MediumDotSnapKnob();
+ /*
+ //addChild(construct<SubMenuAndKnob>);
+ submenu = new SubMenuAndKnob();
+ submenu->text = "select menu param control label";
+ submenu->rightText = RIGHT_ARROW;*/
+
}
else if (type == 2) {
speedParam = new SmoothKnob();
}
speedParam->paramQuantity = param;
speedParam->box.pos = Vec(controlRightMargin, 0);
- box.size.y = 28;
+ box.size.y = 38;
johnLabel = construct<MenuLabel>(&MenuLabel::text, param->getLabel());
johnLabel->box.pos = Vec(speedParam->box.size.x + controlRightMargin * 2, 0);
addChild(speedParam);
addChild(johnLabel);
+ //if(type==1) {addChild(submenu);}
}
-
-
+ /*Menu *createChildMenu() override {
+ Menu *menu = new Menu;
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 1"));
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 2"));
+ menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Option 3"));
+ menu->box.pos.x=10;
+ return menu;
+ }*/
};
+
/*
0: boolean
-button