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
733B

  1. #include "Rack.hpp"
  2. namespace rack {
  3. Scene::Scene() {
  4. scrollWidget = new ScrollWidget();
  5. {
  6. assert(!gRackWidget);
  7. gRackWidget = new RackWidget();
  8. scrollWidget->container->addChild(gRackWidget);
  9. }
  10. addChild(scrollWidget);
  11. toolbar = new Toolbar();
  12. addChild(toolbar);
  13. scrollWidget->box.pos.y = toolbar->box.size.y;
  14. }
  15. void Scene::setOverlay(Widget *w) {
  16. if (overlay) {
  17. removeChild(overlay);
  18. delete overlay;
  19. overlay = NULL;
  20. }
  21. if (w) {
  22. addChild(w);
  23. overlay = w;
  24. overlay->box.pos = Vec();
  25. }
  26. }
  27. void Scene::step() {
  28. toolbar->box.size.x = box.size.x;
  29. scrollWidget->box.size = box.size.minus(scrollWidget->box.pos);
  30. if (overlay) {
  31. overlay->box.size = box.size;
  32. }
  33. Widget::step();
  34. }
  35. } // namespace rack