diff --git a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs index 85e2c806cb..6d699c3d30 100644 --- a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs @@ -27,6 +27,9 @@ namespace OpenRA.Mods.Common.Widgets readonly ModData modData; readonly ResourceLayer resourceLayer; + public readonly HotkeyReference ZoomInKey = new HotkeyReference(); + public readonly HotkeyReference ZoomOutKey = new HotkeyReference(); + public readonly HotkeyReference ScrollUpKey = new HotkeyReference(); public readonly HotkeyReference ScrollDownKey = new HotkeyReference(); public readonly HotkeyReference ScrollLeftKey = new HotkeyReference(); @@ -423,6 +426,18 @@ namespace OpenRA.Mods.Common.Widgets if (e.Event != KeyInputEvent.Down) return false; + if (ZoomInKey.IsActivatedBy(e)) + { + worldRenderer.Viewport.AdjustZoom(0.25f); + return true; + } + + if (ZoomOutKey.IsActivatedBy(e)) + { + worldRenderer.Viewport.AdjustZoom(-0.25f); + return true; + } + if (JumpToTopEdgeKey.IsActivatedBy(e)) { worldRenderer.Viewport.Center(new WPos(worldRenderer.Viewport.CenterPosition.X, 0, 0)); diff --git a/mods/cnc/chrome/editor.yaml b/mods/cnc/chrome/editor.yaml index 74f8f88f6e..f208f26459 100644 --- a/mods/cnc/chrome/editor.yaml +++ b/mods/cnc/chrome/editor.yaml @@ -323,6 +323,8 @@ Container@EDITOR_WORLD_ROOT: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM IgnoreMouseOver: True + ZoomInKey: ZoomIn + ZoomOutKey: ZoomOut ScrollUpKey: MapScrollUp ScrollDownKey: MapScrollDown ScrollLeftKey: MapScrollLeft diff --git a/mods/cnc/chrome/ingame.yaml b/mods/cnc/chrome/ingame.yaml index d04ef71fc7..a394b4bda0 100644 --- a/mods/cnc/chrome/ingame.yaml +++ b/mods/cnc/chrome/ingame.yaml @@ -77,6 +77,8 @@ Container@OBSERVER_WIDGETS: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM TooltipContainer: TOOLTIP_CONTAINER + ZoomInKey: ZoomIn + ZoomOutKey: ZoomOut ScrollUpKey: MapScrollUp ScrollDownKey: MapScrollDown ScrollLeftKey: MapScrollLeft @@ -1048,6 +1050,8 @@ Container@PLAYER_WIDGETS: Height: WINDOW_BOTTOM TooltipTemplate: WORLD_TOOLTIP_FACTIONSUFFIX TooltipContainer: TOOLTIP_CONTAINER + ZoomInKey: ZoomIn + ZoomOutKey: ZoomOut ScrollUpKey: MapScrollUp ScrollDownKey: MapScrollDown ScrollLeftKey: MapScrollLeft diff --git a/mods/common/chrome/editor.yaml b/mods/common/chrome/editor.yaml index c02e1d1274..e1484e2ca7 100644 --- a/mods/common/chrome/editor.yaml +++ b/mods/common/chrome/editor.yaml @@ -318,6 +318,8 @@ Container@EDITOR_WORLD_ROOT: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM IgnoreMouseOver: True + ZoomInKey: ZoomIn + ZoomOutKey: ZoomOut ScrollUpKey: MapScrollUp ScrollDownKey: MapScrollDown ScrollLeftKey: MapScrollLeft diff --git a/mods/common/chrome/ingame.yaml b/mods/common/chrome/ingame.yaml index 27bf3b10f6..7615dee5e9 100644 --- a/mods/common/chrome/ingame.yaml +++ b/mods/common/chrome/ingame.yaml @@ -42,6 +42,8 @@ Container@INGAME_ROOT: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM TooltipContainer: TOOLTIP_CONTAINER + ZoomInKey: ZoomIn + ZoomOutKey: ZoomOut ScrollUpKey: MapScrollUp ScrollDownKey: MapScrollDown ScrollLeftKey: MapScrollLeft diff --git a/mods/common/hotkeys/game.yaml b/mods/common/hotkeys/game.yaml index 728e4b833b..26dbde718f 100644 --- a/mods/common/hotkeys/game.yaml +++ b/mods/common/hotkeys/game.yaml @@ -42,10 +42,6 @@ CycleStatusBars: COMMA Description: Cycle status bars display Types: World, Player, Spectator -ResetZoom: PERIOD - Description: Reset zoom - Types: World, Player, Spectator - ToggleMute: M Description: Toggle audio mute Types: World, Menu, Player, Spectator diff --git a/mods/common/hotkeys/viewport.yaml b/mods/common/hotkeys/viewport.yaml index aff9443dad..ec454ebe5a 100644 --- a/mods/common/hotkeys/viewport.yaml +++ b/mods/common/hotkeys/viewport.yaml @@ -61,3 +61,15 @@ MapBookmarkSave04: R Ctrl MapBookmarkRestore04: R Alt Description: Jump to bookmark 4 Types: Viewport, Player, Spectator + +ZoomIn: RIGHTBRACKET + Description: Zoom in + Types: Viewport, Player, Spectator + +ZoomOut: LEFTBRACKET + Description: Zoom out + Types: Viewport, Player, Spectator + +ResetZoom: PERIOD + Description: Reset zoom + Types: Viewport, Player, Spectator