| 
							- #pragma once
 - #include <app/common.hpp>
 - #include <ui/ScrollWidget.hpp>
 - #include <widget/ZoomWidget.hpp>
 - #include <app/RackWidget.hpp>
 - 
 - 
 - namespace rack {
 - namespace app {
 - 
 - 
 - struct RackScrollWidget : ui::ScrollWidget {
 - 	struct Internal;
 - 	Internal* internal;
 - 
 - 	widget::ZoomWidget* zoomWidget;
 - 	RackWidget* rackWidget;
 - 
 - 	PRIVATE RackScrollWidget();
 - 	PRIVATE ~RackScrollWidget();
 - 
 - 	void reset();
 - 	/** Gets the top-left scroll offset in grid coordinates.
 - 	*/
 - 	math::Vec getGridOffset();
 - 	void setGridOffset(math::Vec gridOffset);
 - 	float getZoom();
 - 	/** Sets the zoom level, with a pivot at the center of the scroll viewport.
 - 	*/
 - 	void setZoom(float zoom);
 - 	void setZoom(float zoom, math::Vec pivot);
 - 
 - 	void step() override;
 - 	void draw(const DrawArgs& args) override;
 - 	void onHoverKey(const HoverKeyEvent& e) override;
 - 	void onHoverScroll(const HoverScrollEvent& e) override;
 - 	void onHover(const HoverEvent& e) override;
 - 	void onButton(const ButtonEvent& e) override;
 - };
 - 
 - 
 - } // namespace app
 - } // namespace rack
 
 
  |