aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/Interface.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Interface.cs')
-rw-r--r--src/Interface.cs29
1 files changed, 26 insertions, 3 deletions
diff --git a/src/Interface.cs b/src/Interface.cs
index 1084ef7b..4cb94e76 100644
--- a/src/Interface.cs
+++ b/src/Interface.cs
@@ -647,9 +647,7 @@ namespace Crow
hoverWidget.onMouseWheel (this, e);
return true;
}
-// public bool ProcessKeyDown(int Key){
-//
-// }
+
volatile bool mouseRepeatOn;
volatile int mouseRepeatCount;
Thread mouseRepeatThread;
@@ -665,6 +663,31 @@ namespace Crow
}
#endregion
+ #region Keyboard
+ public bool ProcessKeyDown(int Key){
+ Keyboard.SetKeyState ((Crow.Key)Key, true);
+ if (_focusedWidget == null)
+ return false;
+ KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)Key, false, Keyboard);
+ _focusedWidget.onKeyDown (this, e);
+ return true;
+ }
+ public bool ProcessKeyUp(int Key){
+ Keyboard.SetKeyState ((Crow.Key)Key, false);
+ if (_activeWidget == null)
+ return false;
+ //KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)Key, false, Keyboard);
+ return true;
+ }
+ public bool ProcessKeyPress(char Key){
+ if (_focusedWidget == null)
+ return false;
+ KeyPressEventArgs e = new KeyPressEventArgs(Key);
+ _focusedWidget.onKeyPress (this, e);
+ return true;
+ }
+ #endregion
+
#region ILayoutable implementation
public void RegisterClip(Rectangle r){
clipping.AddRectangle (r);