aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/OpenTKGameWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/OpenTKGameWindow.cs')
-rw-r--r--src/OpenTKGameWindow.cs62
1 files changed, 38 insertions, 24 deletions
diff --git a/src/OpenTKGameWindow.cs b/src/OpenTKGameWindow.cs
index 17d9581f..c6f95ba3 100644
--- a/src/OpenTKGameWindow.cs
+++ b/src/OpenTKGameWindow.cs
@@ -28,7 +28,6 @@ using System.Xml;
using Cairo;
using OpenTK;
using OpenTK.Graphics.OpenGL;
-using OpenTK.Input;
namespace Crow
{
@@ -179,11 +178,12 @@ namespace Crow
}
#region Events
//those events are raised only if mouse isn't in a graphic object
- public event EventHandler<MouseWheelEventArgs> MouseWheelChanged;
- public event EventHandler<MouseButtonEventArgs> MouseButtonUp;
- public event EventHandler<MouseButtonEventArgs> MouseButtonDown;
- public event EventHandler<MouseButtonEventArgs> MouseClick;
- public event EventHandler<MouseMoveEventArgs> MouseMove;
+ public event EventHandler<OpenTK.Input.MouseWheelEventArgs> MouseWheelChanged;
+ public event EventHandler<OpenTK.Input.MouseButtonEventArgs> MouseButtonUp;
+ public event EventHandler<OpenTK.Input.MouseButtonEventArgs> MouseButtonDown;
+ public event EventHandler<OpenTK.Input.MouseButtonEventArgs> MouseClick;
+ public event EventHandler<OpenTK.Input.MouseMoveEventArgs> MouseMove;
+ public event EventHandler<OpenTK.Input.KeyboardKeyEventArgs> KeyboardKeyDown;
#endregion
#region graphic contexte
@@ -430,11 +430,11 @@ namespace Crow
{
base.OnLoad(e);
- Keyboard.KeyDown += new EventHandler<KeyboardKeyEventArgs>(Keyboard_KeyDown);
- Mouse.WheelChanged += new EventHandler<MouseWheelEventArgs>(Mouse_WheelChanged);
- Mouse.ButtonDown += new EventHandler<MouseButtonEventArgs>(Mouse_ButtonDown);
- Mouse.ButtonUp += new EventHandler<MouseButtonEventArgs>(Mouse_ButtonUp);
- Mouse.Move += new EventHandler<MouseMoveEventArgs>(Mouse_Move);
+ Keyboard.KeyDown += new EventHandler<OpenTK.Input.KeyboardKeyEventArgs>(Keyboard_KeyDown);
+ Mouse.WheelChanged += new EventHandler<OpenTK.Input.MouseWheelEventArgs>(Mouse_WheelChanged);
+ Mouse.ButtonDown += new EventHandler<OpenTK.Input.MouseButtonEventArgs>(Mouse_ButtonDown);
+ Mouse.ButtonUp += new EventHandler<OpenTK.Input.MouseButtonEventArgs>(Mouse_ButtonUp);
+ Mouse.Move += new EventHandler<OpenTK.Input.MouseMoveEventArgs>(Mouse_Move);
GL.ClearColor(0.0f, 0.0f, 0.0f, 0.0f);
@@ -457,8 +457,11 @@ namespace Crow
#endregion
#region Mouse Handling
- void Mouse_Move(object sender, MouseMoveEventArgs e)
+
+ void Mouse_Move(object sender, OpenTK.Input.MouseMoveEventArgs otk_e)
{
+ MouseMoveEventArgs e = new MouseMoveEventArgs (otk_e.X, otk_e.Y, otk_e.XDelta, otk_e.YDelta);
+
if (_activeWidget != null) {
//first, ensure object is still in the graphic tree
if (_activeWidget.HostContainer == null) {
@@ -525,12 +528,14 @@ namespace Crow
}
}
hoverWidget = null;
- MouseMove.Raise (this, e);
+ MouseMove.Raise (this, otk_e);
}
- void Mouse_ButtonUp(object sender, MouseButtonEventArgs e)
+ void Mouse_ButtonUp(object sender, OpenTK.Input.MouseButtonEventArgs otk_e)
{
+ MouseButtonEventArgs e = new MouseButtonEventArgs (otk_e.X, otk_e.Y, (Crow.MouseButton)otk_e.Button, otk_e.IsPressed);
+
if (_activeWidget == null) {
- MouseButtonUp.Raise (this, e);
+ MouseButtonUp.Raise (this, otk_e);
return;
}
@@ -543,10 +548,12 @@ namespace Crow
_activeWidget.onMouseUp (this, e);
activeWidget = null;
}
- void Mouse_ButtonDown(object sender, MouseButtonEventArgs e)
- {
+ void Mouse_ButtonDown(object sender, OpenTK.Input.MouseButtonEventArgs otk_e)
+ {
+ MouseButtonEventArgs e = new MouseButtonEventArgs (otk_e.X, otk_e.Y, (Crow.MouseButton)otk_e.Button, otk_e.IsPressed);
+
if (hoverWidget == null) {
- MouseButtonDown.Raise (this, e);
+ MouseButtonDown.Raise (this, otk_e);
return;
}
@@ -559,10 +566,12 @@ namespace Crow
mouseRepeatThread = new Thread (mouseRepeatThreadFunc);
mouseRepeatThread.Start ();
}
- void Mouse_WheelChanged(object sender, MouseWheelEventArgs e)
+ void Mouse_WheelChanged(object sender, OpenTK.Input.MouseWheelEventArgs otk_e)
{
+ MouseWheelEventArgs e = new MouseWheelEventArgs (otk_e.X, otk_e.Y, otk_e.Value, otk_e.Delta);
+
if (hoverWidget == null) {
- MouseWheelChanged.Raise (this, e);
+ MouseWheelChanged.Raise (this, otk_e);
return;
}
hoverWidget.onMouseWheel (this, e);
@@ -584,10 +593,15 @@ namespace Crow
#endregion
#region keyboard Handling
- void Keyboard_KeyDown(object sender, KeyboardKeyEventArgs e)
- {
- if (_focusedWidget == null)
- return;
+ KeyboardState Keyboad = new KeyboardState ();
+ void Keyboard_KeyDown(object sender, OpenTK.Input.KeyboardKeyEventArgs otk_e)
+ {
+// if (_focusedWidget == null) {
+ KeyboardKeyDown.Raise (this, otk_e);
+// return;
+// }
+ Keyboad.SetKeyState ((Crow.Key)otk_e.Key, true);
+ KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)otk_e.Key, otk_e.IsRepeat,Keyboad);
_focusedWidget.onKeyDown (sender, e);
}
#endregion