diff --git a/OpenRA.Game/Settings.cs b/OpenRA.Game/Settings.cs index a212baf3b3..2a0ba31f94 100644 --- a/OpenRA.Game/Settings.cs +++ b/OpenRA.Game/Settings.cs @@ -216,8 +216,7 @@ namespace OpenRA public int ViewportEdgeScrollMargin = 5; public bool LockMouseWindow = false; - public MouseScrollType MiddleMouseScroll = MouseScrollType.Standard; - public MouseScrollType RightMouseScroll = MouseScrollType.Disabled; + public MouseScrollType MouseScroll = MouseScrollType.Joystick; public MouseButtonPreference MouseButtonPreference = new MouseButtonPreference(); public float ViewportEdgeScrollStep = 30f; public float UIScrollSpeed = 50f; @@ -226,6 +225,7 @@ namespace OpenRA public int MouseScrollDeadzone = 8; public bool UseClassicMouseStyle = false; + public bool ClassicMouseMiddleScroll = false; public StatusBarsType StatusBars = StatusBarsType.Standard; public TargetLinesType TargetLines = TargetLinesType.Manual; public bool UsePlayerStanceColors = false; diff --git a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs index 9c02cd89b9..e0253cd182 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/SettingsLogic.cs @@ -428,13 +428,53 @@ namespace OpenRA.Mods.Common.Widgets.Logic { var gs = Game.Settings.Game; - BindCheckboxPref(panel, "CLASSICORDERS_CHECKBOX", gs, "UseClassicMouseStyle"); + BindCheckboxPref(panel, "CLASSIC_MOUSE_MIDDLE_SCROLL_CHECKBOX", gs, "ClassicMouseMiddleScroll"); BindCheckboxPref(panel, "EDGESCROLL_CHECKBOX", gs, "ViewportEdgeScroll"); BindCheckboxPref(panel, "LOCKMOUSE_CHECKBOX", gs, "LockMouseWindow"); BindSliderPref(panel, "ZOOMSPEED_SLIDER", gs, "ZoomSpeed"); BindSliderPref(panel, "SCROLLSPEED_SLIDER", gs, "ViewportEdgeScrollStep"); BindSliderPref(panel, "UI_SCROLLSPEED_SLIDER", gs, "UIScrollSpeed"); + var mouseControlDropdown = panel.Get("MOUSE_CONTROL_DROPDOWN"); + mouseControlDropdown.OnMouseDown = _ => ShowMouseControlDropdown(mouseControlDropdown, gs); + mouseControlDropdown.GetText = () => gs.UseClassicMouseStyle ? "Classic" : "Modern"; + + var mouseScrollDropdown = panel.Get("MOUSE_SCROLL_TYPE_DROPDOWN"); + mouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(mouseScrollDropdown, gs); + mouseScrollDropdown.GetText = () => gs.MouseScroll.ToString(); + + var classicMouseMiddleScrollCheckbox = panel.Get("CLASSIC_MOUSE_MIDDLE_SCROLL_CHECKBOX"); + classicMouseMiddleScrollCheckbox.IsVisible = () => gs.UseClassicMouseStyle; + + var mouseControlDescClassic = panel.Get("MOUSE_CONTROL_DESC_CLASSIC"); + mouseControlDescClassic.IsVisible = () => gs.UseClassicMouseStyle; + + var classicScrollRight = mouseControlDescClassic.Get("DESC_SCROLL_RIGHT"); + classicScrollRight.IsVisible = () => !gs.ClassicMouseMiddleScroll; + + var classicScrollMiddle = mouseControlDescClassic.Get("DESC_SCROLL_MIDDLE"); + classicScrollMiddle.IsVisible = () => gs.ClassicMouseMiddleScroll; + + var mouseControlDescModern = panel.Get("MOUSE_CONTROL_DESC_MODERN"); + mouseControlDescModern.IsVisible = () => !gs.UseClassicMouseStyle; + + foreach (var container in new[] { mouseControlDescClassic, mouseControlDescModern }) + { + var zoomDesc = container.Get("DESC_ZOOM"); + zoomDesc.IsVisible = () => gs.ZoomModifier == Modifiers.None; + + var zoomDescModifier = container.Get("DESC_ZOOM_MODIFIER"); + zoomDescModifier.IsVisible = () => gs.ZoomModifier != Modifiers.None; + + var zoomDescModifierTemplate = zoomDescModifier.Text; + var zoomDescModifierLabel = new CachedTransform( + mod => zoomDescModifierTemplate.Replace("MODIFIER", mod.ToString())); + zoomDescModifier.GetText = () => zoomDescModifierLabel.Update(gs.ZoomModifier); + + var edgescrollDesc = container.Get("DESC_EDGESCROLL"); + edgescrollDesc.IsVisible = () => gs.ViewportEdgeScroll; + } + // Apply mouse focus preferences immediately var lockMouseCheckbox = panel.Get("LOCKMOUSE_CHECKBOX"); var oldOnClick = lockMouseCheckbox.OnClick; @@ -447,14 +487,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic MakeMouseFocusSettingsLive(); }; - var middleMouseScrollDropdown = panel.Get("MIDDLE_MOUSE_SCROLL"); - middleMouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(middleMouseScrollDropdown, gs, false); - middleMouseScrollDropdown.GetText = () => gs.MiddleMouseScroll.ToString(); - - var rightMouseScrollDropdown = panel.Get("RIGHT_MOUSE_SCROLL"); - rightMouseScrollDropdown.OnMouseDown = _ => ShowMouseScrollDropdown(rightMouseScrollDropdown, gs, true); - rightMouseScrollDropdown.GetText = () => gs.RightMouseScroll.ToString(); - var zoomModifierDropdown = panel.Get("ZOOM_MODIFIER"); zoomModifierDropdown.OnMouseDown = _ => ShowZoomModifierDropdown(zoomModifierDropdown, gs); zoomModifierDropdown.GetText = () => gs.ZoomModifier.ToString(); @@ -525,8 +557,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic return () => { gs.UseClassicMouseStyle = dgs.UseClassicMouseStyle; - gs.MiddleMouseScroll = dgs.MiddleMouseScroll; - gs.RightMouseScroll = dgs.RightMouseScroll; + gs.MouseScroll = dgs.MouseScroll; + gs.ClassicMouseMiddleScroll = dgs.ClassicMouseMiddleScroll; gs.LockMouseWindow = dgs.LockMouseWindow; gs.ViewportEdgeScroll = dgs.ViewportEdgeScroll; gs.ViewportEdgeScrollStep = dgs.ViewportEdgeScrollStep; @@ -605,7 +637,27 @@ namespace OpenRA.Mods.Common.Widgets.Logic }; } - static void ShowMouseScrollDropdown(DropDownButtonWidget dropdown, GameSettings s, bool rightMouse) + static void ShowMouseControlDropdown(DropDownButtonWidget dropdown, GameSettings s) + { + var options = new Dictionary() + { + { "Classic", true }, + { "Modern", false }, + }; + + Func setupItem = (o, itemTemplate) => + { + var item = ScrollItemWidget.Setup(itemTemplate, + () => s.UseClassicMouseStyle == options[o], + () => s.UseClassicMouseStyle = options[o]); + item.Get("LABEL").GetText = () => o; + return item; + }; + + dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem); + } + + static void ShowMouseScrollDropdown(DropDownButtonWidget dropdown, GameSettings s) { var options = new Dictionary() { @@ -618,8 +670,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic Func setupItem = (o, itemTemplate) => { var item = ScrollItemWidget.Setup(itemTemplate, - () => (rightMouse ? s.RightMouseScroll : s.MiddleMouseScroll) == options[o], - () => { if (rightMouse) s.RightMouseScroll = options[o]; else s.MiddleMouseScroll = options[o]; }); + () => s.MouseScroll == options[o], + () => s.MouseScroll = options[o]); item.Get("LABEL").GetText = () => o; return item; }; diff --git a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs index a8d422203a..01ab95400c 100644 --- a/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ViewportControllerWidget.cs @@ -317,12 +317,9 @@ namespace OpenRA.Mods.Common.Widgets return true; } - var scrollType = MouseScrollType.Disabled; - - if (mi.Button.HasFlag(MouseButton.Middle) || mi.Button.HasFlag(MouseButton.Left | MouseButton.Right)) - scrollType = Game.Settings.Game.MiddleMouseScroll; - else if (mi.Button.HasFlag(MouseButton.Right)) - scrollType = Game.Settings.Game.RightMouseScroll; + var gs = Game.Settings.Game; + var scrollButton = gs.UseClassicMouseStyle && !gs.ClassicMouseMiddleScroll ? MouseButton.Right : MouseButton.Middle; + var scrollType = mi.Button.HasFlag(scrollButton) ? gs.MouseScroll : MouseScrollType.Disabled; if (scrollType == MouseScrollType.Disabled) return IsJoystickScrolling || isStandardScrolling; diff --git a/mods/cnc/chrome/settings.yaml b/mods/cnc/chrome/settings.yaml index 31c379d28d..89be0e8b15 100644 --- a/mods/cnc/chrome/settings.yaml +++ b/mods/cnc/chrome/settings.yaml @@ -373,115 +373,209 @@ Container@SETTINGS_PANEL: Font: Bold Text: Input Align: Center - Checkbox@CLASSICORDERS_CHECKBOX: + Label@MOUSE_CONTROL_LABEL: X: 15 + Y: 43 + Width: 110 + Height: 20 + Font: Regular + Text: Control Scheme: + Align: Right + DropDownButton@MOUSE_CONTROL_DROPDOWN: + X: 130 Y: 40 - Width: 250 - Height: 20 - Font: Regular - Text: Left-click Orders - Label@MIDDLE_MOUSE_SCROLL_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 41 - Width: 160 - Height: 20 - Font: Regular - Text: Middle-mouse Scrolling: - Align: Right - DropDownButton@MIDDLE_MOUSE_SCROLL: - X: PARENT_RIGHT - WIDTH - 15 - Y: 38 - Width: 100 + Width: 150 Height: 25 Font: Regular - Label@MIDDLE_MOUSE_SCROLL_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 71 - Width: 160 - Height: 20 - Font: Regular - Text: Right-mouse Scrolling: - Align: Right - DropDownButton@RIGHT_MOUSE_SCROLL: - X: PARENT_RIGHT - WIDTH - 15 - Y: 68 - Width: 100 - Height: 25 - Font: Regular - Label@ZOOM_MODIFIER_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 101 - Width: 160 - Height: 20 - Font: Regular - Text: Mouse Wheel Zoom Modifier: - Align: Right - DropDownButton@ZOOM_MODIFIER: - X: PARENT_RIGHT - WIDTH - 15 - Y: 98 - Width: 100 - Height: 25 - Font: Regular - Text: Alt - Checkbox@EDGESCROLL_CHECKBOX: - X: 15 + Container@MOUSE_CONTROL_DESC_CLASSIC: + X: 25 Y: 70 - Width: 130 + Width: 300 + Children: + LabelWithHighlight@DESC_SELECTION: + Height: 16 + Font: Small + Text: - Select units using the {Left} mouse button + LabelWithHighlight@DESC_COMMANDS: + Y: 16 + Height: 16 + Font: Small + Text: - Command units using the {Left} mouse button + LabelWithHighlight@DESC_BUILDIGS: + Y: 32 + Height: 16 + Font: Small + Text: - Place structures using the {Left} mouse button + LabelWithHighlight@DESC_SUPPORT: + Y: 48 + Height: 16 + Font: Small + Text: - Target support powers using the {Left} mouse button + LabelWithHighlight@DESC_ZOOM: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using the {Scroll Wheel} + LabelWithHighlight@DESC_ZOOM_MODIFIER: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using {MODIFIER + Scroll Wheel} + LabelWithHighlight@DESC_SCROLL_RIGHT: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Right} mouse button + LabelWithHighlight@DESC_SCROLL_MIDDLE: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Middle} mouse button + Label@DESC_EDGESCROLL: + X: 9 + Y: 96 + Height: 16 + Font: Small + Text: or by moving the cursor to the edge of the screen + Container@MOUSE_CONTROL_DESC_MODERN: + X: 25 + Y: 70 + Width: 300 + Children: + LabelWithHighlight@DESC_SELECTION: + Height: 16 + Font: Small + Text: - Select units using the {Left} mouse button + LabelWithHighlight@DESC_COMMANDS: + Y: 16 + Height: 16 + Font: Small + Text: - Command units using the {Right} mouse button + LabelWithHighlight@DESC_BUILDIGS: + Y: 32 + Height: 16 + Font: Small + Text: - Place structures using the {Left} mouse button + LabelWithHighlight@DESC_SUPPORT: + Y: 48 + Height: 16 + Font: Small + Text: - Target support powers using the {Left} mouse button + LabelWithHighlight@DESC_ZOOM: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using the {Scroll Wheel} + LabelWithHighlight@DESC_ZOOM_MODIFIER: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using {MODIFIER + Scroll Wheel} + LabelWithHighlight@DESC_SCROLL: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Middle} mouse button + Label@DESC_EDGESCROLL: + X: 9 + Y: 96 + Height: 16 + Font: Small + Text: or by moving the cursor to the edge of the screen + Label@MOUSE_SCROLL_TYPE_LABEL: + X: 15 + Y: 201 + Width: 110 Height: 20 Font: Regular - Text: Edge Scrolling + Text: Pan Behaviour: + Align: Right + DropDownButton@MOUSE_SCROLL_TYPE_DROPDOWN: + X: 130 + Y: 198 + Width: 150 + Height: 25 + Font: Regular Checkbox@LOCKMOUSE_CHECKBOX: X: 15 - Y: 100 - Width: 130 + Y: 230 + Width: 190 Height: 20 Font: Regular Text: Lock Mouse to Window - Label@SCROLL_SPEED_LABEL: - X: 15 - Y: 128 - Width: 85 + Label@ZOOM_MODIFIER_LABEL: + X: 350 + Y: 71 + Width: 70 + Height: 20 + Font: Regular + Text: Zoom Modifier: + Align: Right + DropDownButton@ZOOM_MODIFIER: + X: 425 + Y: 68 + Width: 145 Height: 25 - Text: Scroll Speed: + Font: Regular + Checkbox@EDGESCROLL_CHECKBOX: + X: 360 + Y: 100 + Width: 180 + Height: 20 + Font: Regular + Text: Screen Edge Panning + Checkbox@CLASSIC_MOUSE_MIDDLE_SCROLL_CHECKBOX: + X: 360 + Y: 130 + Width: 180 + Height: 20 + Font: Regular + Text: Middle Mouse Panning + Label@SCROLL_SPEED_LABEL: + X: 310 + Y: 197 + Width: 100 + Height: 25 + Text: Pan Speed: Align: Right Slider@SCROLLSPEED_SLIDER: - X: 95 - Y: 133 - Width: 100 + X: 415 + Y: 202 + Width: 165 Height: 20 Ticks: 5 MinimumValue: 10 MaximumValue: 50 - Label@UI_SCROLL_SPEED_LABEL: - X: PARENT_RIGHT - WIDTH - 320 - Y: 128 - Width: 95 - Height: 25 - Text: UI Scroll: - Align: Right - Slider@UI_SCROLLSPEED_SLIDER: - X: PARENT_RIGHT - WIDTH - 220 - Y: 133 - Width: 100 - Height: 20 - Ticks: 5 - MinimumValue: 1 - MaximumValue: 100 Label@ZOOM_SPEED_LABEL: - X: PARENT_RIGHT - WIDTH - 106 - Y: 129 - Width: 95 + X: 310 + Y: 227 + Width: 100 Height: 25 Text: Zoom Speed: Align: Right ExponentialSlider@ZOOMSPEED_SLIDER: - X: PARENT_RIGHT - WIDTH - 6 - Y: 133 - Width: 100 + X: 415 + Y: 232 + Width: 165 Height: 20 Ticks: 5 MinimumValue: 0.01 MaximumValue: 0.4 + Label@UI_SCROLL_SPEED_LABEL: + X: 310 + Y: 257 + Width: 100 + Height: 25 + Text: UI Scroll Speed: + Align: Right + Slider@UI_SCROLLSPEED_SLIDER: + X: 415 + Y: 262 + Width: 165 + Height: 20 + Ticks: 5 + MinimumValue: 1 + MaximumValue: 100 Container@HOTKEYS_PANEL: X: 15 Y: 15 diff --git a/mods/common/chrome/settings.yaml b/mods/common/chrome/settings.yaml index d25222990a..79e837c9d1 100644 --- a/mods/common/chrome/settings.yaml +++ b/mods/common/chrome/settings.yaml @@ -47,7 +47,7 @@ Background@SETTINGS_PANEL: Button@BACK_BUTTON: Key: escape X: PARENT_RIGHT - 180 - Y: PARENT_BOTTOM - 45 + Y: PARENT_BOTTOM - 45 Width: 160 Height: 25 Text: Back @@ -379,115 +379,209 @@ Background@SETTINGS_PANEL: Width: PARENT_RIGHT - 10 Height: PARENT_BOTTOM Children: - Checkbox@CLASSICORDERS_CHECKBOX: + Label@MOUSE_CONTROL_LABEL: X: 15 + Y: 43 + Width: 110 + Height: 20 + Font: Regular + Text: Control Scheme: + Align: Right + DropDownButton@MOUSE_CONTROL_DROPDOWN: + X: 130 Y: 40 - Width: 250 - Height: 20 - Font: Regular - Text: Left-click Orders - Label@MIDDLE_MOUSE_SCROLL_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 41 - Width: 160 - Height: 20 - Font: Regular - Text: Middle-mouse Scrolling: - Align: Right - DropDownButton@MIDDLE_MOUSE_SCROLL: - X: PARENT_RIGHT - WIDTH - 15 - Y: 38 - Width: 100 + Width: 150 Height: 25 Font: Regular - Label@MIDDLE_MOUSE_SCROLL_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 71 - Width: 160 - Height: 20 - Font: Regular - Text: Right-mouse Scrolling: - Align: Right - DropDownButton@RIGHT_MOUSE_SCROLL: - X: PARENT_RIGHT - WIDTH - 15 - Y: 68 - Width: 100 - Height: 25 - Font: Regular - Label@ZOOM_MODIFIER_LABEL: - X: PARENT_RIGHT - WIDTH - 120 - Y: 101 - Width: 160 - Height: 20 - Font: Regular - Text: Mouse Wheel Zoom Modifier: - Align: Right - DropDownButton@ZOOM_MODIFIER: - X: PARENT_RIGHT - WIDTH - 15 - Y: 98 - Width: 100 - Height: 25 - Font: Regular - Text: Alt - Checkbox@EDGESCROLL_CHECKBOX: - X: 15 + Container@MOUSE_CONTROL_DESC_CLASSIC: + X: 25 Y: 70 - Width: 130 + Width: 300 + Children: + LabelWithHighlight@DESC_SELECTION: + Height: 16 + Font: Small + Text: - Select units using the {Left} mouse button + LabelWithHighlight@DESC_COMMANDS: + Y: 16 + Height: 16 + Font: Small + Text: - Command units using the {Left} mouse button + LabelWithHighlight@DESC_BUILDIGS: + Y: 32 + Height: 16 + Font: Small + Text: - Place structures using the {Left} mouse button + LabelWithHighlight@DESC_SUPPORT: + Y: 48 + Height: 16 + Font: Small + Text: - Target support powers using the {Left} mouse button + LabelWithHighlight@DESC_ZOOM: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using the {Scroll Wheel} + LabelWithHighlight@DESC_ZOOM_MODIFIER: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using {MODIFIER + Scroll Wheel} + LabelWithHighlight@DESC_SCROLL_RIGHT: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Right} mouse button + LabelWithHighlight@DESC_SCROLL_MIDDLE: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Middle} mouse button + Label@DESC_EDGESCROLL: + X: 9 + Y: 96 + Height: 16 + Font: Small + Text: or by moving the cursor to the edge of the screen + Container@MOUSE_CONTROL_DESC_MODERN: + X: 25 + Y: 70 + Width: 300 + Children: + LabelWithHighlight@DESC_SELECTION: + Height: 16 + Font: Small + Text: - Select units using the {Left} mouse button + LabelWithHighlight@DESC_COMMANDS: + Y: 16 + Height: 16 + Font: Small + Text: - Command units using the {Right} mouse button + LabelWithHighlight@DESC_BUILDIGS: + Y: 32 + Height: 16 + Font: Small + Text: - Place structures using the {Left} mouse button + LabelWithHighlight@DESC_SUPPORT: + Y: 48 + Height: 16 + Font: Small + Text: - Target support powers using the {Left} mouse button + LabelWithHighlight@DESC_ZOOM: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using the {Scroll Wheel} + LabelWithHighlight@DESC_ZOOM_MODIFIER: + Y: 64 + Height: 16 + Font: Small + Text: - Zoom the battlefield using {MODIFIER + Scroll Wheel} + LabelWithHighlight@DESC_SCROLL: + Y: 80 + Height: 16 + Font: Small + Text: - Pan the battlefield using the {Middle} mouse button + Label@DESC_EDGESCROLL: + X: 9 + Y: 96 + Height: 16 + Font: Small + Text: or by moving the cursor to the edge of the screen + Label@MOUSE_SCROLL_TYPE_LABEL: + X: 15 + Y: 201 + Width: 110 Height: 20 Font: Regular - Text: Edge Scrolling + Text: Pan Behaviour: + Align: Right + DropDownButton@MOUSE_SCROLL_TYPE_DROPDOWN: + X: 130 + Y: 198 + Width: 150 + Height: 25 + Font: Regular Checkbox@LOCKMOUSE_CHECKBOX: X: 15 - Y: 100 - Width: 130 + Y: 230 + Width: 190 Height: 20 Font: Regular - Text: Lock mouse to window - Label@SCROLL_SPEED_LABEL: - X: 15 - Y: 129 - Width: 85 + Text: Lock Mouse to Window + Label@ZOOM_MODIFIER_LABEL: + X: 350 + Y: 71 + Width: 70 + Height: 20 + Font: Regular + Text: Zoom Modifier: + Align: Right + DropDownButton@ZOOM_MODIFIER: + X: 425 + Y: 68 + Width: 150 Height: 25 - Text: Scroll Speed: + Font: Regular + Checkbox@EDGESCROLL_CHECKBOX: + X: 360 + Y: 100 + Width: 180 + Height: 20 + Font: Regular + Text: Screen Edge Panning + Checkbox@CLASSIC_MOUSE_MIDDLE_SCROLL_CHECKBOX: + X: 360 + Y: 130 + Width: 180 + Height: 20 + Font: Regular + Text: Middle Mouse Panning + Label@SCROLL_SPEED_LABEL: + X: 305 + Y: 197 + Width: 100 + Height: 25 + Text: Pan Speed: Align: Right Slider@SCROLLSPEED_SLIDER: - X: 95 - Y: 133 - Width: 100 + X: 410 + Y: 202 + Width: 165 Height: 20 Ticks: 5 MinimumValue: 10 MaximumValue: 50 - Label@UI_SCROLL_SPEED_LABEL: - X: PARENT_RIGHT - WIDTH - 320 - Y: 129 - Width: 95 - Height: 25 - Text: UI Scroll: - Align: Right - Slider@UI_SCROLLSPEED_SLIDER: - X: PARENT_RIGHT - WIDTH - 220 - Y: 133 - Width: 100 - Height: 20 - Ticks: 5 - MinimumValue: 1 - MaximumValue: 100 Label@ZOOM_SPEED_LABEL: - X: PARENT_RIGHT - WIDTH - 106 - Y: 129 - Width: 95 + X: 305 + Y: 227 + Width: 100 Height: 25 Text: Zoom Speed: Align: Right ExponentialSlider@ZOOMSPEED_SLIDER: - X: PARENT_RIGHT - WIDTH - 6 - Y: 133 - Width: 95 + X: 410 + Y: 232 + Width: 165 Height: 20 Ticks: 5 MinimumValue: 0.01 MaximumValue: 0.4 + Label@UI_SCROLL_SPEED_LABEL: + X: 305 + Y: 257 + Width: 100 + Height: 25 + Text: UI Scroll Speed: + Align: Right + Slider@UI_SCROLLSPEED_SLIDER: + X: 410 + Y: 262 + Width: 165 + Height: 20 + Ticks: 5 + MinimumValue: 1 + MaximumValue: 100 Container@HOTKEYS_PANEL: X: 5 Y: 50