#pragma once #include #include #include #include #include #include namespace rack { namespace app { struct SvgPort : PortWidget { widget::FramebufferWidget* fb; CircularShadow* shadow; widget::SvgWidget* sw; SvgPort(); void setSvg(std::shared_ptr svg); DEPRECATED void setSVG(std::shared_ptr svg) { setSvg(svg); } }; DEPRECATED typedef SvgPort SVGPort; struct ThemedSvgPort : SvgPort { std::shared_ptr lightSvg; std::shared_ptr darkSvg; void setSvg(std::shared_ptr lightSvg, std::shared_ptr darkSvg) { this->lightSvg = lightSvg; this->darkSvg = darkSvg; SvgPort::setSvg(settings::preferDarkPanels ? darkSvg : lightSvg); } void step() override { SvgPort::setSvg(settings::preferDarkPanels ? darkSvg : lightSvg); SvgPort::step(); } }; } // namespace app } // namespace rack