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.

43 lines
639B

  1. #include "widgets.hpp"
  2. #include "window.hpp"
  3. namespace rack {
  4. void Scene::setOverlay(Widget *w) {
  5. if (overlay) {
  6. removeChild(overlay);
  7. delete overlay;
  8. overlay = NULL;
  9. }
  10. if (w) {
  11. addChild(w);
  12. overlay = w;
  13. overlay->box.pos = Vec();
  14. }
  15. }
  16. Menu *Scene::createMenu() {
  17. // Get relative position of the click
  18. MenuOverlay *overlay = new MenuOverlay();
  19. Menu *menu = new Menu();
  20. menu->box.pos = gMousePos;
  21. overlay->addChild(menu);
  22. gScene->setOverlay(overlay);
  23. return menu;
  24. }
  25. void Scene::step() {
  26. if (overlay) {
  27. overlay->box.pos = Vec(0, 0);
  28. overlay->box.size = box.size;
  29. }
  30. Widget::step();
  31. }
  32. } // namespace rack