From 139293adf5df1c13e2fd03c08a4c7182d19b16e2 Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Mon, 23 Feb 2015 14:58:28 -0800 Subject: [PATCH] Add key modifier support to Flash key events and use KeyCode/KeyModifier instead of Int (can still override using Int) --- lime/_backend/flash/FlashApplication.hx | 7 ++++--- lime/app/Application.hx | 6 ++++-- lime/ui/Window.hx | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lime/_backend/flash/FlashApplication.hx b/lime/_backend/flash/FlashApplication.hx index a85f4089a..89b05cff3 100644 --- a/lime/_backend/flash/FlashApplication.hx +++ b/lime/_backend/flash/FlashApplication.hx @@ -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); } diff --git a/lime/app/Application.hx b/lime/app/Application.hx index e313f1235..f09932957 100644 --- a/lime/app/Application.hx +++ b/lime/app/Application.hx @@ -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 { } /** diff --git a/lime/ui/Window.hx b/lime/ui/Window.hx index 917cbdbd2..bf9cbb3fc 100644 --- a/lime/ui/Window.hx +++ b/lime/ui/Window.hx @@ -15,8 +15,8 @@ class Window { public var config:Config; public var fullscreen:Bool; public var height:Int; - public var onKeyDown = new EventInt->Void> (); - public var onKeyUp = new EventInt->Void> (); + public var onKeyDown = new EventKeyModifier->Void> (); + public var onKeyUp = new EventKeyModifier->Void> (); public var onMouseDown = new EventFloat->Int->Void> (); public var onMouseMove = new EventFloat->Int->Void> (); public var onMouseUp = new EventFloat->Int->Void> ();