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

  1. #include <app/SvgScrew.hpp>
  2. #include <settings.hpp>
  3. namespace rack {
  4. namespace app {
  5. SvgScrew::SvgScrew() {
  6. fb = new widget::FramebufferWidget;
  7. addChild(fb);
  8. sw = new widget::SvgWidget;
  9. fb->addChild(sw);
  10. }
  11. void SvgScrew::setSvg(std::shared_ptr<window::Svg> svg) {
  12. if (sw->svg == svg)
  13. return;
  14. sw->setSvg(svg);
  15. fb->setDirty();
  16. fb->box.size = sw->box.size;
  17. box.size = sw->box.size;
  18. }
  19. void ThemedSvgScrew::step() {
  20. SvgScrew::setSvg(settings::preferDarkPanels ? darkSvg : lightSvg);
  21. SvgScrew::step();
  22. }
  23. void ThemedSvgScrew::setSvg(std::shared_ptr<window::Svg> lightSvg, std::shared_ptr<window::Svg> darkSvg) {
  24. this->lightSvg = lightSvg;
  25. this->darkSvg = darkSvg;
  26. SvgScrew::setSvg(settings::preferDarkPanels ? darkSvg : lightSvg);
  27. }
  28. } // namespace app
  29. } // namespace rack