+++ /dev/null
-using System;\r
-using System.Windows;\r
-using System.Windows.Controls;\r
-using System.Windows.Documents;\r
-using System.Windows.Input;\r
-\r
-\r
-namespace Psychlops\r
-{\r
- public class HID\r
- {\r
- public struct Button\r
- {\r
- private static object locker;\r
- static Button()\r
- {\r
- locker = new object(); \r
- }\r
- private bool pushed_, released_, pressed_;\r
- public void down()\r
- {\r
- lock (locker)\r
- {\r
- pushed_ = true;\r
- pressed_ = true;\r
- }\r
- }\r
- public void up()\r
- {\r
- lock (locker)\r
- {\r
- released_ = true;\r
- pressed_ = false;\r
- }\r
- }\r
- public bool pushed() { lock (locker) { bool tmp = pushed_; pushed_ = false; return tmp; } }\r
- public bool released() { lock (locker) { bool tmp = released_; released_ = false; return tmp; } }\r
- public bool pressed() { return pressed_; }\r
- }\r
- }\r
-\r
-\r
- public static class Mouse\r
- {\r
- static internal Point position_;\r
- static internal System.Windows.UIElement _prime;\r
- static public HID.Button left, right, middle;\r
- static internal Point wheelDelta_;\r
-\r
- static public Point position { get { return position_; } }\r
- static public int x { get { return (int)position_.x; } }\r
- static public int y { get { return (int)position_.y; } }\r
- static public Point wheelDelta { get { return wheelDelta_; } }\r
-\r
- static public void show() { }\r
- static public void hide() { }\r
-\r
- static public void Canvas_MousePos(object sender, MouseEventArgs e)\r
- {\r
- System.Windows.Point p = e.GetPosition(_prime);\r
- position_.set(p.X, p.Y);\r
- }\r
- static public void Canvas_LDown(object sender, MouseEventArgs e)\r
- {\r
- left.down();\r
- System.Windows.Point p = e.GetPosition(_prime);\r
- position_.set(p.X, p.Y);\r
- }\r
- static public void Canvas_LUp(object sender, MouseEventArgs e)\r
- {\r
- left.up();\r
- System.Windows.Point p = e.GetPosition(_prime);\r
- position_.set(p.X, p.Y);\r
- }\r
- static public void Canvas_MouseWheel(object sender, MouseWheelEventArgs e)\r
- {\r
- wheelDelta_.y += e.Delta;\r
- System.Windows.Point p = e.GetPosition(_prime);\r
- position_.set(p.X, p.Y);\r
- }\r
- }\r
-\r
-\r
- public static class Keyboard\r
- {\r
- public class IKey\r
- {\r
- //internal static HID.Button[] states;\r
- //int p;\r
- internal HID.Button state;\r
- public void down() { state.down(); }\r
- public void up() { state.up(); }\r
- public bool pushed() { return state.pushed(); }\r
- public bool released() { return state.released(); }\r
- public bool pressed() { return state.pressed(); }\r
- }\r
- static public IKey\r
- alt, shift, ctrl,\r
- esc, spc, rtn,\r
- left, right, up, down,\r
- tab,\r
- comma, period,\r
- q, w, e, r, t, y, u, i, o, p,\r
- a, s, d, f, g, h, j, k, l,\r
- z, x, c, v, b, n, m,\r
- one, two, three, four, five, six, seven, eight, nine, zero,\r
- pad0, pad1, pad2, pad3, pad4, pad5, pad6, pad7, pad8, pad9;\r
- static private System.Collections.Generic.Dictionary<System.Windows.Input.Key, IKey> map;\r
- static public void Canvas_KeyUp(object sender, KeyEventArgs e)\r
- {\r
- if (map.ContainsKey(e.Key)) map[e.Key].up();\r
- }\r
- static public void Canvas_KeyDown(object sender, KeyEventArgs e)\r
- {\r
- if (map.ContainsKey(e.Key)) map[e.Key].down();\r
- }\r
-\r
-\r
- static Keyboard()\r
- {\r
- /*\r
- esc = new Key(0); spc = new Key(1); rtn = new Key(2);\r
- left = new Key(3); right = new Key(4); up = new Key(5); down = new Key(6);\r
- comma = new Key(7); period = new Key(8);\r
- q = new Key(32); w = new Key(33); e = new Key(34); r = new Key(35); t = new Key(36); y = new Key(37); u = new Key(38); i = new Key(39); o = new Key(40); p = new Key(41);\r
- a = new Key(42); s = new Key(43); d = new Key(44); f = new Key(45); g = new Key(46); h = new Key(47); j = new Key(48); k = new Key(49); l = new Key(50);\r
- z = new Key(51); x = new Key(52); c = new Key(53); v = new Key(54); b = new Key(55); n = new Key(56); m = new Key(57);\r
- one = new Key(80); two = new Key(81); three = new Key(82); four = new Key(83); five = new Key(84); six = new Key(85); seven = new Key(86); eight = new Key(87); nine = new Key(88); zero = new Key(96);\r
- pad0 = new Key(96); pad1 = new Key(97); pad2 = new Key(98); pad3 = new Key(99); pad4 = new Key(100); pad5 = new Key(101); pad6 = new Key(102); pad7 = new Key(103); pad8 = new Key(104); pad9 = new Key(105);\r
- */\r
- alt = new IKey(); shift = new IKey(); ctrl = new IKey();\r
- esc = new IKey(); spc = new IKey(); rtn = new IKey();\r
- left = new IKey(); right = new IKey(); up = new IKey(); down = new IKey();\r
- comma = new IKey(); period = new IKey();\r
- q = new IKey(); w = new IKey(); e = new IKey(); r = new IKey(); t = new IKey(); y = new IKey(); u = new IKey(); i = new IKey(); o = new IKey(); p = new IKey();\r
- a = new IKey(); s = new IKey(); d = new IKey(); f = new IKey(); g = new IKey(); h = new IKey(); j = new IKey(); k = new IKey(); l = new IKey();\r
- z = new IKey(); x = new IKey(); c = new IKey(); v = new IKey(); b = new IKey(); n = new IKey(); m = new IKey();\r
- one = new IKey(); two = new IKey(); three = new IKey(); four = new IKey(); five = new IKey(); six = new IKey(); seven = new IKey(); eight = new IKey(); nine = new IKey(); zero = new IKey();\r
- pad0 = new IKey(); pad1 = new IKey(); pad2 = new IKey(); pad3 = new IKey(); pad4 = new IKey(); pad5 = new IKey(); pad6 = new IKey(); pad7 = new IKey(); pad8 = new IKey(); pad9 = new IKey();\r
-\r
- map = new System.Collections.Generic.Dictionary<System.Windows.Input.Key, IKey>();\r
- map.Add(Key.Alt, alt); map.Add(Key.Shift, shift); map.Add(Key.Ctrl, ctrl);\r
- map.Add(Key.Escape, esc); map.Add(Key.Space, spc); map.Add(Key.Enter, rtn);\r
- map.Add(Key.Left, left); map.Add(Key.Right, right); map.Add(Key.Up, up); map.Add(Key.Down, down);\r
- map.Add(Key.Tab, tab);\r
- map.Add(Key.PageDown, comma); map.Add(Key.PageUp, period);\r
- map.Add(Key.Q, q); map.Add(Key.W, w); map.Add(Key.E, e); map.Add(Key.R, r); map.Add(Key.T, t); map.Add(Key.Y, y); map.Add(Key.U, u); map.Add(Key.I, i); map.Add(Key.O, o); map.Add(Key.P, p);\r
- map.Add(Key.A, a); map.Add(Key.S, s); map.Add(Key.D, d); map.Add(Key.F, f); map.Add(Key.G, g); map.Add(Key.H, h); map.Add(Key.J, j); map.Add(Key.K, k); map.Add(Key.L, l);\r
- map.Add(Key.Z, z); map.Add(Key.X, x); map.Add(Key.C, c); map.Add(Key.V, v); map.Add(Key.B, b); map.Add(Key.N, n); map.Add(Key.M, m);\r
- map.Add(Key.D1, one); map.Add(Key.D2, two); map.Add(Key.D3, three); map.Add(Key.D4, four); map.Add(Key.D5, five); map.Add(Key.D6, six); map.Add(Key.D7, seven); map.Add(Key.D8, eight); map.Add(Key.D9, nine); map.Add(Key.D0, zero);\r
- map.Add(Key.NumPad0, pad0); map.Add(Key.NumPad1, pad1); map.Add(Key.NumPad2, pad2); map.Add(Key.NumPad3, pad3); map.Add(Key.NumPad4, pad4); map.Add(Key.NumPad5, pad5); map.Add(Key.NumPad6, pad6); map.Add(Key.NumPad7, pad7); map.Add(Key.NumPad8, pad8); map.Add(Key.NumPad9, pad9);\r
- }\r
- }\r
-\r
-}
\ No newline at end of file