summaryrefslogtreecommitdiff
path: root/src/helpers/MonitorZoomController.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/helpers/MonitorZoomController.hpp')
-rw-r--r--src/helpers/MonitorZoomController.hpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/helpers/MonitorZoomController.hpp b/src/helpers/MonitorZoomController.hpp
index 94373baf..ce3ad554 100644
--- a/src/helpers/MonitorZoomController.hpp
+++ b/src/helpers/MonitorZoomController.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "./math/Math.hpp"
+#include "../desktop/DesktopTypes.hpp"
namespace Render {
struct SRenderData;
@@ -10,12 +11,18 @@ class CMonitorZoomController {
public:
bool m_resetCameraState = true;
+ void pinAnchor(const Vector2D& anchor);
+ void clearAnchor();
+
void applyZoomTransform(CBox& monbox, const Render::SRenderData& m_renderData);
private:
- void zoomWithDetachedCamera(CBox& result, const Render::SRenderData& m_renderData);
+ void zoomWithDetachedCamera(CBox& result, const Render::SRenderData& m_renderData);
+ Vector2D getAnchor(const PHLMONITORREF& monitor);
- CBox m_camera;
- float m_lastZoomLevel = 1.0f;
- bool m_padCamEdges = true;
+ CBox m_camera;
+ Vector2D m_pinnedAnchor = {};
+ float m_lastZoomLevel = 1.0f;
+ bool m_padCamEdges = true;
+ bool m_anchorPinned = false;
};