/* * * * Copyright 1990-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */ package javax.microedition.lcdui; /** * Utility class that is used to convert key codes from platform independent * codes to platform-specific and vice versa. */ class KeyConverter { /** * Return the key code that corresponds to the specified game * action on the device. gameAction must be a defined game action * (Canvas.UP, Canvas.DOWN, Canvas.FIRE, etc.) * <B>Post-conditions:</B><BR> The key code of the key that * corresponds to the specified action is returned. The return * value will be 0 if the game action is invalid or not supported * by the device. * * @param gameAction The game action to obtain the key code for. * * @return the key code. */ public static native int getKeyCode(int gameAction); /** * Returns the game action associated with the given key code on * the device. keyCode must refer to a key that is mapped as a * game key on the device. The game action of the key is returned. * The return value will be 0 if the key is not mapped to * a game action, or it will be -1 if the keycode is invalid. * * @param keyCode the key code * * @return the corresponding game action * (UP, DOWN, LEFT, RIGHT, FIRE, etc.) */ public static native int getGameAction(int keyCode); /** * Returns <code>0</code> if keyCode is not a system key. * Otherwise, returns one of the EventConstants.SYSTEM_KEY_ constants. * * @param keyCode get the system equivalent key. * * @return translated system key or zero if it is not a system key. */ public static native int getSystemKey(int keyCode); /** * Gets an informative key string for a key. The string returned * should resemble the text physically printed on the key. For * example, on a device with function keys F1 through F4, calling * this method on the keycode for the F1 key will return the * string "F1". A typical use for this string will be to compose * help text such as "Press F1 to proceed." * * <p>There is no direct mapping from game actions to key * names. To get the string name for a game action, the * application must call * * <p><code>getKeyName(getKeyCode(GAME_A))</code> * * @param keyCode the key code being requested * * @return a string name for the key, or <code>null</code> if no name * is available */ public static native String getKeyName(int keyCode); }