Added support for keyboard scrolling
This commit is contained in:
@@ -64,6 +64,11 @@ namespace OpenRA
|
||||
static bool mapChangePending;
|
||||
static Pair<Assembly, string>[] ModAssemblies;
|
||||
|
||||
static internal bool scrollUp = false;
|
||||
static internal bool scrollDown = false;
|
||||
static internal bool scrollLeft = false;
|
||||
static internal bool scrollRight = false;
|
||||
|
||||
static void LoadModPackages(Manifest manifest)
|
||||
{
|
||||
FileSystem.UnmountAll();
|
||||
@@ -308,6 +313,15 @@ namespace OpenRA
|
||||
}
|
||||
}
|
||||
|
||||
if (scrollUp == true)
|
||||
viewport.Scroll(new float2(0, -10));
|
||||
if (scrollRight == true)
|
||||
viewport.Scroll(new float2(10, 0));
|
||||
if (scrollDown == true)
|
||||
viewport.Scroll(new float2(0, 10));
|
||||
if (scrollLeft == true)
|
||||
viewport.Scroll(new float2(-10, 0));
|
||||
|
||||
using (new PerfSample("render"))
|
||||
{
|
||||
++RenderFrame;
|
||||
@@ -511,6 +525,26 @@ namespace OpenRA
|
||||
throw new InvalidOperationException("Desync in OnKeyPress");
|
||||
}
|
||||
|
||||
public static void HandleArrowKeyScroll(String k, Boolean pressed)
|
||||
{
|
||||
if (k == "up")
|
||||
{
|
||||
scrollUp = pressed;
|
||||
}
|
||||
if (k == "left")
|
||||
{
|
||||
scrollLeft = pressed;
|
||||
}
|
||||
if (k == "down")
|
||||
{
|
||||
scrollDown = pressed;
|
||||
}
|
||||
if (k == "right")
|
||||
{
|
||||
scrollRight = pressed;
|
||||
}
|
||||
}
|
||||
|
||||
public static void HandleModifierKeys(Modifiers mods)
|
||||
{
|
||||
controller.SetModifiers(mods);
|
||||
|
||||
@@ -195,6 +195,14 @@ namespace OpenRA.GlRenderer
|
||||
|
||||
case Sdl.SDL_KEYDOWN:
|
||||
{
|
||||
switch (e.key.keysym.sym)
|
||||
{
|
||||
case Sdl.SDLK_UP: Game.HandleArrowKeyScroll("up", true); break;
|
||||
case Sdl.SDLK_LEFT: Game.HandleArrowKeyScroll("left", true); break;
|
||||
case Sdl.SDLK_DOWN: Game.HandleArrowKeyScroll("down", true); break;
|
||||
case Sdl.SDLK_RIGHT: Game.HandleArrowKeyScroll("right", true); break;
|
||||
}
|
||||
|
||||
if (e.key.keysym.unicode != 0)
|
||||
Game.HandleKeyPress(new KeyPressEventArgs((char)e.key.keysym.unicode), mods);
|
||||
|
||||
@@ -210,6 +218,13 @@ namespace OpenRA.GlRenderer
|
||||
|
||||
case Sdl.SDL_KEYUP:
|
||||
{
|
||||
switch (e.key.keysym.sym)
|
||||
{
|
||||
case Sdl.SDLK_UP: Game.HandleArrowKeyScroll("up", false); break;
|
||||
case Sdl.SDLK_LEFT: Game.HandleArrowKeyScroll("left", false); break;
|
||||
case Sdl.SDLK_DOWN: Game.HandleArrowKeyScroll("down", false); break;
|
||||
case Sdl.SDLK_RIGHT: Game.HandleArrowKeyScroll("right", false); break;
|
||||
}
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user