You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2KB

  1. #include "plugin.hpp"
  2. using namespace rack;
  3. struct NotesWidget : ModuleWidget {
  4. TextField *textField;
  5. NotesWidget(Module *module) {
  6. setModule(module);
  7. setPanel(APP->window->loadSvg(asset::system("res/Core/Notes.svg")));
  8. addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
  9. addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
  10. addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  11. addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
  12. textField = createWidget<LedDisplayTextField>(mm2px(Vec(3.39962, 14.8373)));
  13. textField->box.size = mm2px(Vec(74.480, 102.753));
  14. textField->multiline = true;
  15. addChild(textField);
  16. }
  17. json_t *toJson() override {
  18. json_t *rootJ = ModuleWidget::toJson();
  19. // text
  20. json_object_set_new(rootJ, "text", json_string(textField->text.c_str()));
  21. return rootJ;
  22. }
  23. void fromJson(json_t *rootJ) override {
  24. ModuleWidget::fromJson(rootJ);
  25. // text
  26. json_t *textJ = json_object_get(rootJ, "text");
  27. if (textJ)
  28. textField->text = json_string_value(textJ);
  29. }
  30. };
  31. Model *modelNotes = createModel<Module, NotesWidget>("Notes");