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.

44 lines
704B

  1. #include "ui.hpp"
  2. #include "window.hpp"
  3. namespace rack {
  4. void MenuOverlay::step() {
  5. Widget::step();
  6. // Fit all children in the box
  7. for (Widget *child : children) {
  8. child->box = child->box.nudge(box.zeroPos());
  9. }
  10. }
  11. void MenuOverlay::onMouseDown(EventMouseDown &e) {
  12. Widget::onMouseDown(e);
  13. if (!e.consumed) {
  14. // deletes `this`
  15. gScene->setOverlay(NULL);
  16. e.consumed = true;
  17. }
  18. }
  19. void MenuOverlay::onHoverKey(EventHoverKey &e) {
  20. switch (e.key) {
  21. case GLFW_KEY_ESCAPE: {
  22. gScene->setOverlay(NULL);
  23. e.consumed = true;
  24. return;
  25. } break;
  26. }
  27. if (!e.consumed) {
  28. // Recurse children but consume the event
  29. Widget::onHoverKey(e);
  30. e.consumed = true;
  31. }
  32. }
  33. } // namespace rack