aboutsummaryrefslogtreecommitdiffstats
path: root/src/jake2/sys/KBD.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jake2/sys/KBD.java')
-rw-r--r--src/jake2/sys/KBD.java204
1 files changed, 9 insertions, 195 deletions
diff --git a/src/jake2/sys/KBD.java b/src/jake2/sys/KBD.java
index 3272090..426778d 100644
--- a/src/jake2/sys/KBD.java
+++ b/src/jake2/sys/KBD.java
@@ -2,7 +2,7 @@
* KBD.java
* Copyright (C) 2004
*
- * $Id: KBD.java,v 1.5 2004-11-03 10:16:42 hzi Exp $
+ * $Id: KBD.java,v 1.6 2004-12-14 00:11:01 hzi Exp $
*/
/*
Copyright (C) 1997-2001 Id Software, Inc.
@@ -25,214 +25,28 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package jake2.sys;
-import jake2.client.Key;
-
-import java.awt.*;
-import java.awt.event.*;
/**
* KBD
*/
-public final class KBD {
+abstract public class KBD {
static int win_x = 0;
static int win_y = 0;
- static int win_w2 = 0;
- static int win_h2 = 0;
// motion values
public static int mx = 0;
public static int my = 0;
- static Robot robot;
- public static InputListener listener = new InputListener();
-
- static {
- try {
- robot = new Robot();
- } catch (AWTException e) {
- System.exit(1);
- }
- }
-
- public static void Init() {
- }
-
- public static void Update() {
- // get events
- HandleEvents();
- }
-
- public static void Close() {
- }
-
- static void HandleEvents() {
- int b;
-
- Jake2InputEvent event;
- while ( (event=InputListener.nextEvent()) != null ) {
- switch(event.type) {
- case Jake2InputEvent.KeyPress:
- case Jake2InputEvent.KeyRelease:
- Do_Key_Event(XLateKey((KeyEvent)event.ev), event.type == Jake2InputEvent.KeyPress);
- break;
-
- case Jake2InputEvent.MotionNotify:
-// if (IN.ignorefirst) {
-// IN.ignorefirst = false;
-// break;
-// }
- if (IN.mouse_active) {
- mx = (((MouseEvent)event.ev).getX() - win_w2) * 2;
- my = (((MouseEvent)event.ev).getY() - win_h2) * 2;
- } else {
- mx = 0;
- my = 0;
- }
- break;
-
- case Jake2InputEvent.ButtonPress:
- b=((MouseEvent)event.ev).getButton()-1;
- Do_Key_Event(Key.K_MOUSE1 + b, true);
- break;
-
- case Jake2InputEvent.ButtonRelease:
- b=((MouseEvent)event.ev).getButton()-1;
- Do_Key_Event(Key.K_MOUSE1 + b, false);
- break;
-
- case Jake2InputEvent.WheelMoved:
- int dir = ((MouseWheelEvent)event.ev).getWheelRotation();
- if (dir > 0) {
- Do_Key_Event(Key.K_MWHEELDOWN, true);
- Do_Key_Event(Key.K_MWHEELDOWN, false);
- } else {
- Do_Key_Event(Key.K_MWHEELUP, true);
- Do_Key_Event(Key.K_MWHEELUP, false);
- }
- break;
-
- case Jake2InputEvent.CreateNotify :
- case Jake2InputEvent.ConfigureNotify :
- Component c = ((ComponentEvent)event.ev).getComponent();
- win_x = 0;
- win_y = 0;
- win_w2 = c.getWidth() / 2;
- win_h2 = c.getHeight() / 2;
- while (c != null) {
- if (c instanceof Container) {
- Insets insets = ((Container)c).getInsets();
- win_x += insets.left;
- win_y += insets.top;
- }
- win_x += c.getX();
- win_y += c.getY();
- c = c.getParent();
- }
- break;
- }
- }
-
- if (mx != 0 || my != 0) {
- // move the mouse to the window center again
- robot.mouseMove(win_x + win_w2, win_y + win_h2);
- }
- }
-
- private static int XLateKey(KeyEvent ev) {
-
- int key = 0;
- int code = ev.getKeyCode();
-
- switch(code) {
-// 00626 case XK_KP_Page_Up: key = K_KP_PGUP; break;
- case KeyEvent.VK_PAGE_UP: key = Key.K_PGUP; break;
-
-// 00629 case XK_KP_Page_Down: key = K_KP_PGDN; break;
- case KeyEvent.VK_PAGE_DOWN: key = Key.K_PGDN; break;
-
-// 00632 case XK_KP_Home: key = K_KP_HOME; break;
- case KeyEvent.VK_HOME: key = Key.K_HOME; break;
+ abstract public void Init();
-// 00635 case XK_KP_End: key = K_KP_END; break;
- case KeyEvent.VK_END: key = Key.K_END; break;
-
- case KeyEvent.VK_KP_LEFT: key = Key.K_KP_LEFTARROW; break;
- case KeyEvent.VK_LEFT: key = Key.K_LEFTARROW; break;
-
- case KeyEvent.VK_KP_RIGHT: key = Key.K_KP_RIGHTARROW; break;
- case KeyEvent.VK_RIGHT: key = Key.K_RIGHTARROW; break;
+ abstract public void Update();
- case KeyEvent.VK_KP_DOWN: key = Key.K_KP_DOWNARROW; break;
- case KeyEvent.VK_DOWN: key = Key.K_DOWNARROW; break;
+ abstract public void Close();
+ abstract public void Do_Key_Event(int key, boolean down);
- case KeyEvent.VK_KP_UP: key = Key.K_KP_UPARROW; break;
- case KeyEvent.VK_UP: key = Key.K_UPARROW; break;
-
- case KeyEvent.VK_ESCAPE: key = Key.K_ESCAPE; break;
-
-
- case KeyEvent.VK_ENTER: key = Key.K_ENTER; break;
-// 00652 case XK_KP_Enter: key = K_KP_ENTER; break;
-
- case KeyEvent.VK_TAB: key = Key.K_TAB; break;
-
- case KeyEvent.VK_F1: key = Key.K_F1; break;
- case KeyEvent.VK_F2: key = Key.K_F2; break;
- case KeyEvent.VK_F3: key = Key.K_F3; break;
- case KeyEvent.VK_F4: key = Key.K_F4; break;
- case KeyEvent.VK_F5: key = Key.K_F5; break;
- case KeyEvent.VK_F6: key = Key.K_F6; break;
- case KeyEvent.VK_F7: key = Key.K_F7; break;
- case KeyEvent.VK_F8: key = Key.K_F8; break;
- case KeyEvent.VK_F9: key = Key.K_F9; break;
- case KeyEvent.VK_F10: key = Key.K_F10; break;
- case KeyEvent.VK_F11: key = Key.K_F11; break;
- case KeyEvent.VK_F12: key = Key.K_F12; break;
-
- case KeyEvent.VK_BACK_SPACE: key = Key.K_BACKSPACE; break;
-
- case KeyEvent.VK_DELETE: key = Key.K_DEL; break;
-// 00683 case XK_KP_Delete: key = K_KP_DEL; break;
-
- case KeyEvent.VK_PAUSE: key = Key.K_PAUSE; break;
-
- case KeyEvent.VK_SHIFT: key = Key.K_SHIFT; break;
- case KeyEvent.VK_CONTROL: key = Key.K_CTRL; break;
-
- case KeyEvent.VK_ALT:
- case KeyEvent.VK_ALT_GRAPH: key = Key.K_ALT; break;
-
-// 00700 case XK_KP_Begin: key = K_KP_5; break;
-// 00701
- case KeyEvent.VK_INSERT: key = Key.K_INS; break;
- // toggle console for DE and US keyboards
- case KeyEvent.VK_DEAD_ACUTE:
- case KeyEvent.VK_CIRCUMFLEX:
- case KeyEvent.VK_DEAD_CIRCUMFLEX: key = '`'; break;
-
- default:
- if ((ev.getModifiers() & (InputEvent.ALT_MASK | InputEvent.CTRL_MASK)) != 0) {
- key = ev.getKeyCode();
- } else {
- key = ev.getKeyChar();
- }
- if (key >= 'A' && key <= 'Z')
- key = key - 'A' + 'a';
- break;
- }
- if (key > 255) key = 0;
-
- return key;
- }
-
- static void Do_Key_Event(int key, boolean down) {
- Key.Event(key, down, Sys.Milliseconds());
- }
-
- static void centerMouse() {
- robot.mouseMove(win_x + win_w2, win_y + win_h2);
- }
-
+ abstract public void installGrabs();
+ abstract public void uninstallGrabs();
+ abstract public void centerMouse();
}