|
- #pragma once
- #include "app/common.hpp"
- #include "app/SliderKnob.hpp"
- #include "widget/FramebufferWidget.hpp"
- #include "widget/SvgWidget.hpp"
-
-
- namespace rack {
- namespace app {
-
-
- /** Behaves like a knob but linearly moves an widget::SvgWidget between two points.
- Can be used for horizontal or vertical linear faders.
- */
- struct SvgSlider : app::SliderKnob {
- widget::FramebufferWidget *fb;
- widget::SvgWidget *background;
- widget::SvgWidget *handle;
- /** Intermediate positions will be interpolated between these positions */
- math::Vec minHandlePos, maxHandlePos;
-
- SvgSlider();
- void setBackgroundSvg(std::shared_ptr<Svg> svg);
- void setHandleSvg(std::shared_ptr<Svg> svg);
- void onChange(const event::Change &e) override;
-
- DEPRECATED void setBackgroundSVG(std::shared_ptr<Svg> svg) {setBackgroundSvg(svg);}
- DEPRECATED void setHandleSVG(std::shared_ptr<Svg> svg) {setBackgroundSvg(svg);}
- DEPRECATED void setSVGs(std::shared_ptr<Svg> backgroundSvg, std::shared_ptr<Svg> handleSvg) {
- setBackgroundSvg(backgroundSvg);
- setHandleSvg(handleSvg);
- }
- };
-
-
- DEPRECATED typedef SvgSlider SVGSlider;
-
-
- } // namespace app
- } // namespace rack
|