01: /*
02: *
03: *
04: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
05: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU General Public License version
09: * 2 only, as published by the Free Software Foundation.
10: *
11: * This program is distributed in the hope that it will be useful, but
12: * WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * General Public License version 2 for more details (a copy is
15: * included at /legal/license.txt).
16: *
17: * You should have received a copy of the GNU General Public License
18: * version 2 along with this work; if not, write to the Free Software
19: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20: * 02110-1301 USA
21: *
22: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
23: * Clara, CA 95054 or visit www.sun.com if you need additional
24: * information or have any questions.
25: */
26:
27: package javax.microedition.lcdui;
28:
29: /**
30: * Utility class that is used to convert key codes from platform independent
31: * codes to platform-specific and vice versa.
32: */
33: class KeyConverter {
34:
35: /**
36: * Return the key code that corresponds to the specified game
37: * action on the device. gameAction must be a defined game action
38: * (Canvas.UP, Canvas.DOWN, Canvas.FIRE, etc.)
39: * <B>Post-conditions:</B><BR> The key code of the key that
40: * corresponds to the specified action is returned. The return
41: * value will be 0 if the game action is invalid or not supported
42: * by the device.
43: *
44: * @param gameAction The game action to obtain the key code for.
45: *
46: * @return the key code.
47: */
48: public static native int getKeyCode(int gameAction);
49:
50: /**
51: * Returns the game action associated with the given key code on
52: * the device. keyCode must refer to a key that is mapped as a
53: * game key on the device. The game action of the key is returned.
54: * The return value will be 0 if the key is not mapped to
55: * a game action, or it will be -1 if the keycode is invalid.
56: *
57: * @param keyCode the key code
58: *
59: * @return the corresponding game action
60: * (UP, DOWN, LEFT, RIGHT, FIRE, etc.)
61: */
62: public static native int getGameAction(int keyCode);
63:
64: /**
65: * Returns <code>0</code> if keyCode is not a system key.
66: * Otherwise, returns one of the EventConstants.SYSTEM_KEY_ constants.
67: *
68: * @param keyCode get the system equivalent key.
69: *
70: * @return translated system key or zero if it is not a system key.
71: */
72: public static native int getSystemKey(int keyCode);
73:
74: /**
75: * Gets an informative key string for a key. The string returned
76: * should resemble the text physically printed on the key. For
77: * example, on a device with function keys F1 through F4, calling
78: * this method on the keycode for the F1 key will return the
79: * string "F1". A typical use for this string will be to compose
80: * help text such as "Press F1 to proceed."
81: *
82: * <p>There is no direct mapping from game actions to key
83: * names. To get the string name for a game action, the
84: * application must call
85: *
86: * <p><code>getKeyName(getKeyCode(GAME_A))</code>
87: *
88: * @param keyCode the key code being requested
89: *
90: * @return a string name for the key, or <code>null</code> if no name
91: * is available
92: */
93: public static native String getKeyName(int keyCode);
94: }
|