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.

45 lines
1.2KB

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