From c87b82d75e1548eae7fd1c76e889595611231722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 2 Mar 2024 11:15:41 +0200 Subject: [PATCH] Add a rotate button to the extra viewport --- src/openrct2-ui/windows/Viewport.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/openrct2-ui/windows/Viewport.cpp b/src/openrct2-ui/windows/Viewport.cpp index 09a29e24ad..b7e846a585 100644 --- a/src/openrct2-ui/windows/Viewport.cpp +++ b/src/openrct2-ui/windows/Viewport.cpp @@ -28,6 +28,7 @@ enum WindowViewportWidgetIdx WIDX_ZOOM_IN, WIDX_ZOOM_OUT, WIDX_LOCATE, + WIDX_ROTATE, }; #pragma region MEASUREMENTS @@ -48,6 +49,7 @@ static Widget _viewportWidgets[] = MakeWidget({WW - 25, 17}, VIEWPORT_BUTTON, WindowWidgetType::FlatBtn, WindowColour::Primary , ImageId(SPR_G2_ZOOM_IN), STR_ZOOM_IN_TIP ), // zoom in MakeWidget({WW - 25, 41}, VIEWPORT_BUTTON, WindowWidgetType::FlatBtn, WindowColour::Primary , ImageId(SPR_G2_ZOOM_OUT), STR_ZOOM_OUT_TIP ), // zoom out MakeWidget({WW - 25, 65}, VIEWPORT_BUTTON, WindowWidgetType::FlatBtn, WindowColour::Primary , ImageId(SPR_LOCATE), STR_LOCATE_SUBJECT_TIP), // locate + MakeWidget({WW - 25, 89}, VIEWPORT_BUTTON, WindowWidgetType::FlatBtn, WindowColour::Primary , ImageId(SPR_ROTATE_ARROW),STR_LOCATE_SUBJECT_TIP), // rotate WIDGETS_END, }; @@ -125,20 +127,25 @@ public: Close(); break; case WIDX_ZOOM_IN: + { if (viewport != nullptr && viewport->zoom > ZoomLevel::min()) { viewport->zoom--; Invalidate(); } break; + } case WIDX_ZOOM_OUT: + { if (viewport != nullptr && viewport->zoom < ZoomLevel::max()) { viewport->zoom++; Invalidate(); } break; + } case WIDX_LOCATE: + { auto* mainWindow = WindowGetMain(); if (mainWindow != nullptr) { @@ -147,6 +154,13 @@ public: WindowScrollToLocation(*mainWindow, { info.Loc, TileElementHeight(info.Loc) }); } break; + } + case WIDX_ROTATE: + { + ViewportRotateSingle(this, 1); + Invalidate(); + break; + } } } @@ -184,6 +198,8 @@ public: widgets[WIDX_ZOOM_OUT].right = width - 2; widgets[WIDX_LOCATE].left = width - 27; widgets[WIDX_LOCATE].right = width - 2; + widgets[WIDX_ROTATE].left = width - 27; + widgets[WIDX_ROTATE].right = width - 2; widgets[WIDX_VIEWPORT].right = widgets[WIDX_ZOOM_IN].left - 1; widgets[WIDX_VIEWPORT].bottom = widgets[WIDX_BACKGROUND].bottom - 3;