public static bool XF86VidModeGetModeLine(IntPtr display, int screen, out int dotclock_return, out API.XF86VidModeModeLine modeline);
public static bool CheckIfEvent(IntPtr display, ref XEvent event_return, API.CheckEventPredicate predicate, IntPtr arg);
internal void ProcessEvent(ref XEvent e) { switch (e.type) { case XEventName.KeyPress: case XEventName.KeyRelease: bool pressed = e.type == XEventName.KeyPress; IntPtr keysym = API.LookupKeysym(ref e.KeyEvent, 0); IntPtr keysym2 = API.LookupKeysym(ref e.KeyEvent, 1); if (keymap.ContainsKey((XKey)keysym)) { keyboard[keymap[(XKey)keysym]] = pressed; } else if (keymap.ContainsKey((XKey)keysym2)) { keyboard[keymap[(XKey)keysym2]] = pressed; } else { Debug.Print("KeyCode {0} (Keysym: {1}, {2}) not mapped.", e.KeyEvent.keycode, (XKey)keysym, (XKey)keysym2); } break; case XEventName.ButtonPress: if (e.ButtonEvent.button == 1) { mouse[OpenTK.Input.MouseButton.Left] = true; } else if (e.ButtonEvent.button == 2) { mouse[OpenTK.Input.MouseButton.Middle] = true; } else if (e.ButtonEvent.button == 3) { mouse[OpenTK.Input.MouseButton.Right] = true; } else if (e.ButtonEvent.button == 4) { mouse.Wheel++; } else if (e.ButtonEvent.button == 5) { mouse.Wheel--; } else if (e.ButtonEvent.button == 6) { mouse[OpenTK.Input.MouseButton.Button1] = true; } else if (e.ButtonEvent.button == 7) { mouse[OpenTK.Input.MouseButton.Button2] = true; } else if (e.ButtonEvent.button == 8) { mouse[OpenTK.Input.MouseButton.Button3] = true; } else if (e.ButtonEvent.button == 9) { mouse[OpenTK.Input.MouseButton.Button4] = true; } else if (e.ButtonEvent.button == 10) { mouse[OpenTK.Input.MouseButton.Button5] = true; } else if (e.ButtonEvent.button == 11) { mouse[OpenTK.Input.MouseButton.Button6] = true; } else if (e.ButtonEvent.button == 12) { mouse[OpenTK.Input.MouseButton.Button7] = true; } else if (e.ButtonEvent.button == 13) { mouse[OpenTK.Input.MouseButton.Button8] = true; } else if (e.ButtonEvent.button == 14) { mouse[OpenTK.Input.MouseButton.Button9] = true; } //if ((e.state & (int)X11.MouseMask.Button4Mask) != 0) m.Wheel++; //if ((e.state & (int)X11.MouseMask.Button5Mask) != 0) m.Wheel--; //Debug.Print("Button pressed: {0}", e.ButtonEvent.button); break; case XEventName.ButtonRelease: if (e.ButtonEvent.button == 1) { mouse[OpenTK.Input.MouseButton.Left] = false; } else if (e.ButtonEvent.button == 2) { mouse[OpenTK.Input.MouseButton.Middle] = false; } else if (e.ButtonEvent.button == 3) { mouse[OpenTK.Input.MouseButton.Right] = false; } else if (e.ButtonEvent.button == 6) { mouse[OpenTK.Input.MouseButton.Button1] = false; } else if (e.ButtonEvent.button == 7) { mouse[OpenTK.Input.MouseButton.Button2] = false; } else if (e.ButtonEvent.button == 8) { mouse[OpenTK.Input.MouseButton.Button3] = false; } else if (e.ButtonEvent.button == 9) { mouse[OpenTK.Input.MouseButton.Button4] = false; } else if (e.ButtonEvent.button == 10) { mouse[OpenTK.Input.MouseButton.Button5] = false; } else if (e.ButtonEvent.button == 11) { mouse[OpenTK.Input.MouseButton.Button6] = false; } else if (e.ButtonEvent.button == 12) { mouse[OpenTK.Input.MouseButton.Button7] = false; } else if (e.ButtonEvent.button == 13) { mouse[OpenTK.Input.MouseButton.Button8] = false; } else if (e.ButtonEvent.button == 14) { mouse[OpenTK.Input.MouseButton.Button9] = false; } break; case XEventName.MotionNotify: mouse.Position = new System.Drawing.Point(e.MotionEvent.x, e.MotionEvent.y); break; } }