Inverse Drag Scrolling

This commit is contained in:
Caleb Anderson
2010-08-15 16:00:38 -05:00
committed by Chris Forbes
parent f6a880e524
commit 228852a55d
5 changed files with 37 additions and 13 deletions

5
OpenRA.Game/GameRules/UserSettings.cs Normal file → Executable file
View File

@@ -19,8 +19,9 @@ namespace OpenRA.GameRules
{ {
public class UserSettings public class UserSettings
{ {
// Behaviour settings // Behaviour settings
public bool ViewportEdgeScroll = true; public bool ViewportEdgeScroll = true;
public bool InverseDragScroll = false;
// Debug settings // Debug settings
public bool PerfDebug = false; public bool PerfDebug = false;

24
OpenRA.Game/Widgets/Delegates/SettingsMenuDelegate.cs Normal file → Executable file
View File

@@ -44,15 +44,23 @@ namespace OpenRA.Widgets.Delegates
else else
Game.Settings.PlayerName = name.Text; Game.Settings.PlayerName = name.Text;
}; };
name.OnEnterKey = () => { name.LoseFocus(); return true; }; name.OnEnterKey = () => { name.LoseFocus(); return true; };
var edgeScroll = general.GetWidget<CheckboxWidget>("EDGE_SCROLL"); var edgeScroll = general.GetWidget<CheckboxWidget>("EDGE_SCROLL");
edgeScroll.Checked = () => Game.Settings.ViewportEdgeScroll; edgeScroll.Checked = () => Game.Settings.ViewportEdgeScroll;
edgeScroll.OnMouseDown = mi => edgeScroll.OnMouseDown = mi =>
{ {
Game.Settings.ViewportEdgeScroll ^= true; Game.Settings.ViewportEdgeScroll ^= true;
return true; return true;
}; };
var inverseScroll = general.GetWidget<CheckboxWidget>("INVERSE_SCROLL");
inverseScroll.Checked = () => Game.Settings.InverseDragScroll;
inverseScroll.OnMouseDown = mi =>
{
Game.Settings.InverseDragScroll ^= true;
return true;
};
// Audio // Audio
var audio = bg.GetWidget("AUDIO_PANE"); var audio = bg.GetWidget("AUDIO_PANE");

3
OpenRA.Game/Widgets/ViewportScrollControllerWidget.cs Normal file → Executable file
View File

@@ -39,7 +39,8 @@ namespace OpenRA.Widgets
if (mi.Event == MouseInputEvent.Move && if (mi.Event == MouseInputEvent.Move &&
(mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right))) (mi.Button == MouseButton.Middle || mi.Button == (MouseButton.Left | MouseButton.Right)))
{ {
Game.viewport.Scroll(Viewport.LastMousePos - mi.Location); int InverseScroll = Game.Settings.InverseDragScroll ? -1 : 1;
Game.viewport.Scroll((Viewport.LastMousePos - mi.Location) * InverseScroll);
return true; return true;
} }
return false; return false;

View File

@@ -93,6 +93,13 @@ Container@ROOT:
Width:200 Width:200
Height:20 Height:20
Text: Enable Edge Scrolling Text: Enable Edge Scrolling
Checkbox@INVERSE_SCROLL:
Id:INVERSE_SCROLL
X:0
Y:60
Width:200
Height:20
Text: Invert Mouse Drag Scrolling
Container@AUDIO_PANE: Container@AUDIO_PANE:
Id:AUDIO_PANE Id:AUDIO_PANE
X:37 X:37

View File

@@ -91,6 +91,13 @@ Background@SETTINGS_MENU:
Width:200 Width:200
Height:20 Height:20
Text: Enable Edge Scrolling Text: Enable Edge Scrolling
Checkbox@INVERSE_SCROLL:
Id:INVERSE_SCROLL
X:0
Y:60
Width:200
Height:20
Text: Invert Mouse Drag Scrolling
Container@AUDIO_PANE: Container@AUDIO_PANE:
Id:AUDIO_PANE Id:AUDIO_PANE
X:37 X:37