Add key modifier support to Flash key events and use KeyCode/KeyModifier instead of Int (can still override using Int)

This commit is contained in:
Joshua Granick
2015-02-23 14:58:28 -08:00
parent f40d0f04ff
commit 139293adf5
3 changed files with 10 additions and 7 deletions

View File

@@ -14,6 +14,7 @@ import lime.app.Config;
import lime.audio.AudioManager;
import lime.graphics.Renderer;
import lime.ui.KeyCode;
import lime.ui.KeyModifier;
import lime.ui.Window;
@:access(lime.app.Application)
@@ -154,15 +155,15 @@ class FlashApplication {
if (parent.window != null) {
var keyCode = convertKeyCode (event.keyCode);
var modifier = 0;
var modifier = (event.shiftKey ? (KeyModifier.SHIFT) : 0) | (event.ctrlKey ? (KeyModifier.CTRL) : 0) | (event.altKey ? (KeyModifier.ALT) : 0);
if (event.type == KeyboardEvent.KEY_DOWN) {
parent.window.onKeyDown.dispatch (keyCode, 0);
parent.window.onKeyDown.dispatch (keyCode, modifier);
} else {
parent.window.onKeyUp.dispatch (keyCode, 0);
parent.window.onKeyUp.dispatch (keyCode, modifier);
}

View File

@@ -3,6 +3,8 @@ package lime.app;
import lime.graphics.RenderContext;
import lime.graphics.Renderer;
import lime.ui.KeyCode;
import lime.ui.KeyModifier;
import lime.ui.Window;
@@ -140,7 +142,7 @@ class Application extends Module {
* @param keyCode The code of the key that was pressed
* @param modifier The modifier of the key that was pressed
*/
public function onKeyDown (keyCode:Int, modifier:Int):Void { }
public function onKeyDown (keyCode:KeyCode, modifier:KeyModifier):Void { }
/**
@@ -148,7 +150,7 @@ class Application extends Module {
* @param keyCode The code of the key that was released
* @param modifier The modifier of the key that was released
*/
public function onKeyUp (keyCode:Int, modifier:Int):Void { }
public function onKeyUp (keyCode:KeyCode, modifier:KeyModifier):Void { }
/**

View File

@@ -15,8 +15,8 @@ class Window {
public var config:Config;
public var fullscreen:Bool;
public var height:Int;
public var onKeyDown = new Event<Int->Int->Void> ();
public var onKeyUp = new Event<Int->Int->Void> ();
public var onKeyDown = new Event<KeyCode->KeyModifier->Void> ();
public var onKeyUp = new Event<KeyCode->KeyModifier->Void> ();
public var onMouseDown = new Event<Float->Float->Int->Void> ();
public var onMouseMove = new Event<Float->Float->Int->Void> ();
public var onMouseUp = new Event<Float->Float->Int->Void> ();