keymap_input_md.c
来自「This is a resource based on j2me embedde」· C语言 代码 · 共 270 行
C
270 行
/* * * * Copyright 1990-2007 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. */#include <kni.h>#include <keymap_input.h>#include <midp_logging.h>/** * @file * * Platform key mapping and input mode handling functions. * * This file contains all the platform input related * code, including all the key binding functions. *//** * Platform specific code to name mapping table. */static const Key Keys[] = { {KEYMAP_KEY_POWER, "POWER" }, /* 0 */ {KEYMAP_KEY_SOFT1, "SOFT1" }, /* 1 */ {KEYMAP_KEY_SOFT2, "SOFT2" }, /* 2 */ {KEYMAP_KEY_UP, "Up" }, /* 3 */ {KEYMAP_KEY_DOWN, "Down" }, /* 4 */ {KEYMAP_KEY_LEFT, "Left" }, /* 5 */ {KEYMAP_KEY_RIGHT, "Right" }, /* 6 */ {KEYMAP_KEY_SELECT, "Select" }, /* 7 */ {KEYMAP_KEY_SEND, "Send" }, /* 8 */ {KEYMAP_KEY_END, "End" }, /* 9 */ {KEYMAP_KEY_CLEAR, "Clear" }, /* 10 */ {KEYMAP_KEY_1, "1" }, /* 11 */ {KEYMAP_KEY_2, "2" }, /* 12 */ {KEYMAP_KEY_3, "3" }, /* 13 */ {KEYMAP_KEY_4, "4" }, /* 14 */ {KEYMAP_KEY_5, "5" }, /* 15 */ {KEYMAP_KEY_6, "6" }, /* 16 */ {KEYMAP_KEY_7, "7" }, /* 17 */ {KEYMAP_KEY_8, "8" }, /* 18 */ {KEYMAP_KEY_9, "9" }, /* 19 */ {KEYMAP_KEY_ASTERISK, "*" }, /* 20 */ {KEYMAP_KEY_0, "0" }, /* 21 */ {KEYMAP_KEY_POUND, "#" }, /* 22 */ {KEYMAP_KEY_GAMEA, "Calendar" }, /* 23 */ {KEYMAP_KEY_GAMEB, "Addressbook" }, /* 24 */ {KEYMAP_KEY_GAMEC, "Menu" }, /* 25 */ {KEYMAP_KEY_GAMED, "Mail" }, /* 26 */ {KEYMAP_KEY_SPACE, "Space" }, /* 27 */};/** * Return the key code corresponding to the given abstract * game action. * * @param gameAction game action value * IMPL_NOTE:move to share platform */int keymap_get_key_code(int gameAction){ REPORT_CALL_TRACE1(LC_LOWUI, "LF:STUB:keymap_get_key_code(%d)\n", gameAction); switch (gameAction) { case 1: /* Canvas.UP */ return KEYMAP_KEY_UP; case 6: /* Canvas.DOWN */ return KEYMAP_KEY_DOWN; case 2: /* Canvas.LEFT */ return KEYMAP_KEY_LEFT; case 5: /* Canvas.RIGHT */ return KEYMAP_KEY_RIGHT; case 8: /* Canvas.FIRE */ return KEYMAP_KEY_SELECT; case 9: /* Canvas.GAME_A */ return KEYMAP_KEY_GAMEA; case 10: /* Canvas.GAME_B */ return KEYMAP_KEY_GAMEB; case 11: /* Canvas.GAME_C */ return KEYMAP_KEY_GAMEC; case 12: /* Canvas.GAME_D */ return KEYMAP_KEY_GAMED; default: return 0; }}/** * Return the abstract game action corresponding to the * given key code. * * @param keyCode key code value * IMPL_NOTE:move to share platform */int keymap_get_game_action(int keyCode){ REPORT_CALL_TRACE1(LC_LOWUI, "LF:STUB:keymap_get_game_action(%d)\n", keyCode); switch (keyCode) { case KEYMAP_KEY_UP: return 1; /* Canvas.UP */ case KEYMAP_KEY_DOWN: return 6; /* Canvas.DOWN */ case KEYMAP_KEY_LEFT: return 2; /* Canvas.LEFT */ case KEYMAP_KEY_RIGHT: return 5; /* Canvas.RIGHT */ case KEYMAP_KEY_SELECT: return 8; /* Canvas.FIRE */ case KEYMAP_KEY_GAMEA: case KEYMAP_KEY_1: return 9; /* Canvas.GAME_A */ case KEYMAP_KEY_GAMEB: case KEYMAP_KEY_3: return 10; /* Canvas.GAME_B */ case KEYMAP_KEY_GAMEC: case KEYMAP_KEY_7: return 11; /* Canvas.GAME_C */ case KEYMAP_KEY_GAMED: case KEYMAP_KEY_9: return 12; /* Canvas.GAME_D */ default: if(keymap_is_invalid_key_code(keyCode)) { /* Invalid key code */ return -1; } /* No game action available for this key */ return 0; }}/** * Return the system key corresponding to the given key * code. * * @param keyCode key code value * IMPL_NOTE:move to share platform */intkeymap_get_system_key(int keyCode){ REPORT_CALL_TRACE1(LC_LOWUI, "LF:STUB:keymap_get_system_key(%d)\n", keyCode); switch (keyCode) { case KEYMAP_KEY_POWER: return 1; case KEYMAP_KEY_SEND: return 2; case KEYMAP_KEY_END: return 3; case KEYMAP_KEY_CLEAR: case KEYMAP_KEY_BACKSPACE: return 4; default: return 0; }}/** * Return the key string to the given key code. * * @param keyCode key code value * * @return C pointer to char or NULL if the keyCode does not * correspond to any name. * IMPL_NOTE:move to share platform and change to loop through table Keys[] */char *keymap_get_key_name(int keyCode){ REPORT_CALL_TRACE1(LC_LOWUI, "LF:STUB:keymap_get_key_name(%d)\n", keyCode); switch (keyCode) { case KEYMAP_KEY_POWER: return Keys[0].name; case KEYMAP_KEY_SEND: return Keys[8].name; case KEYMAP_KEY_END: return Keys[9].name; case KEYMAP_KEY_CLEAR: return Keys[10].name; case KEYMAP_KEY_SOFT1: return Keys[1].name; case KEYMAP_KEY_SOFT2: return Keys[2].name; case KEYMAP_KEY_UP: return Keys[3].name; case KEYMAP_KEY_DOWN: return Keys[4].name; case KEYMAP_KEY_LEFT: return Keys[5].name; case KEYMAP_KEY_RIGHT: return Keys[6].name; case KEYMAP_KEY_SELECT: return Keys[7].name; case KEYMAP_KEY_1: return Keys[11].name; case KEYMAP_KEY_2: return Keys[12].name; case KEYMAP_KEY_3: return Keys[13].name; case KEYMAP_KEY_4: return Keys[14].name; case KEYMAP_KEY_5: return Keys[15].name; case KEYMAP_KEY_6: return Keys[16].name; case KEYMAP_KEY_7: return Keys[17].name; case KEYMAP_KEY_8: return Keys[18].name; case KEYMAP_KEY_9: return Keys[19].name; case KEYMAP_KEY_0: return Keys[21].name; case KEYMAP_KEY_ASTERISK: return Keys[20].name; case KEYMAP_KEY_POUND: return Keys[22].name; case KEYMAP_KEY_GAMEA: return Keys[23].name; case KEYMAP_KEY_GAMEB: return Keys[24].name; case KEYMAP_KEY_GAMEC: return Keys[25].name; case KEYMAP_KEY_GAMED: return Keys[26].name; case KEYMAP_KEY_SPACE: return Keys[27].name; } return 0;}/** * Return whether the keycode given is correct for * this platform. * * @param keyCode key code value */jbooleankeymap_is_invalid_key_code(int keyCode){ REPORT_CALL_TRACE1(LC_LOWUI, "LF:STUB:keymap_is_invalid_key_code(%d)\n", keyCode); /* * Valid within UNICODE and not 0x0 and 0xffff * since they are defined to be invalid */ if ((keyCode <= 0x0) || (keyCode >= 0xFFFF) ) { return KNI_TRUE; } return KNI_FALSE;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?