Added support for keyboard scrolling
This commit is contained in:
@@ -64,6 +64,11 @@ namespace OpenRA
|
|||||||
static bool mapChangePending;
|
static bool mapChangePending;
|
||||||
static Pair<Assembly, string>[] ModAssemblies;
|
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)
|
static void LoadModPackages(Manifest manifest)
|
||||||
{
|
{
|
||||||
FileSystem.UnmountAll();
|
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"))
|
using (new PerfSample("render"))
|
||||||
{
|
{
|
||||||
++RenderFrame;
|
++RenderFrame;
|
||||||
@@ -511,6 +525,26 @@ namespace OpenRA
|
|||||||
throw new InvalidOperationException("Desync in OnKeyPress");
|
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)
|
public static void HandleModifierKeys(Modifiers mods)
|
||||||
{
|
{
|
||||||
controller.SetModifiers(mods);
|
controller.SetModifiers(mods);
|
||||||
|
|||||||
@@ -195,6 +195,14 @@ namespace OpenRA.GlRenderer
|
|||||||
|
|
||||||
case Sdl.SDL_KEYDOWN:
|
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)
|
if (e.key.keysym.unicode != 0)
|
||||||
Game.HandleKeyPress(new KeyPressEventArgs((char)e.key.keysym.unicode), mods);
|
Game.HandleKeyPress(new KeyPressEventArgs((char)e.key.keysym.unicode), mods);
|
||||||
|
|
||||||
@@ -210,6 +218,13 @@ namespace OpenRA.GlRenderer
|
|||||||
|
|
||||||
case Sdl.SDL_KEYUP:
|
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;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user