lazarus/lcl/interfaces/customdrawn/android/keycodes.pas

415 lines
16 KiB
ObjectPascal

(*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*)
// Note: This translation does not limit itself to the NDK defined constants
// but instead all constants from android.view.KeyEvent can be added here
//
// The NDK files are located in usr/include/android/keycodes.h
unit keycodes;
interface
uses ctypes;
(******************************************************************
*
* IMPORTANT NOTICE:
*
* This file is part of Android's set of stable system headers
* exposed by the Android NDK (Native Development Kit).
*
* Third-party source AND binary code relies on the definitions
* here to be FROZEN ON ALL UPCOMING PLATFORM RELEASES.
*
* - DO NOT MODIFY ENUMS (EXCEPT IF YOU ADD NEW 32-BIT VALUES)
* - DO NOT MODIFY CONSTANTS OR FUNCTIONAL MACROS
* - DO NOT CHANGE THE SIGNATURE OF FUNCTIONS IN ANY WAY
* - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
*)
(*
* Key codes.
*)
const
// First NDK defined keycodes
AKEYCODE_UNKNOWN = 0;
AKEYCODE_SOFT_LEFT = 1;
AKEYCODE_SOFT_RIGHT = 2;
AKEYCODE_HOME = 3;
AKEYCODE_BACK = 4;
AKEYCODE_CALL = 5;
AKEYCODE_ENDCALL = 6;
AKEYCODE_0 = 7;
AKEYCODE_1 = 8;
AKEYCODE_2 = 9;
AKEYCODE_3 = 10;
AKEYCODE_4 = 11;
AKEYCODE_5 = 12;
AKEYCODE_6 = 13;
AKEYCODE_7 = 14;
AKEYCODE_8 = 15;
AKEYCODE_9 = 16;
AKEYCODE_STAR = 17;
AKEYCODE_POUND = 18;
AKEYCODE_DPAD_UP = 19;
AKEYCODE_DPAD_DOWN = 20;
AKEYCODE_DPAD_LEFT = 21;
AKEYCODE_DPAD_RIGHT = 22;
AKEYCODE_DPAD_CENTER = 23;
AKEYCODE_VOLUME_UP = 24;
AKEYCODE_VOLUME_DOWN = 25;
AKEYCODE_POWER = 26;
AKEYCODE_CAMERA = 27;
AKEYCODE_CLEAR = 28;
AKEYCODE_A = 29;
AKEYCODE_B = 30;
AKEYCODE_C = 31;
AKEYCODE_D = 32;
AKEYCODE_E = 33;
AKEYCODE_F = 34;
AKEYCODE_G = 35;
AKEYCODE_H = 36;
AKEYCODE_I = 37;
AKEYCODE_J = 38;
AKEYCODE_K = 39;
AKEYCODE_L = 40;
AKEYCODE_M = 41;
AKEYCODE_N = 42;
AKEYCODE_O = 43;
AKEYCODE_P = 44;
AKEYCODE_Q = 45;
AKEYCODE_R = 46;
AKEYCODE_S = 47;
AKEYCODE_T = 48;
AKEYCODE_U = 49;
AKEYCODE_V = 50;
AKEYCODE_W = 51;
AKEYCODE_X = 52;
AKEYCODE_Y = 53;
AKEYCODE_Z = 54;
AKEYCODE_COMMA = 55;
AKEYCODE_PERIOD = 56;
AKEYCODE_ALT_LEFT = 57;
AKEYCODE_ALT_RIGHT = 58;
AKEYCODE_SHIFT_LEFT = 59;
AKEYCODE_SHIFT_RIGHT = 60;
AKEYCODE_TAB = 61;
AKEYCODE_SPACE = 62;
AKEYCODE_SYM = 63;
AKEYCODE_EXPLORER = 64;
AKEYCODE_ENVELOPE = 65;
AKEYCODE_ENTER = 66;
AKEYCODE_DEL = 67;
AKEYCODE_GRAVE = 68;
AKEYCODE_MINUS = 69;
AKEYCODE_EQUALS = 70;
AKEYCODE_LEFT_BRACKET = 71;
AKEYCODE_RIGHT_BRACKET = 72;
AKEYCODE_BACKSLASH = 73;
AKEYCODE_SEMICOLON = 74;
AKEYCODE_APOSTROPHE = 75;
AKEYCODE_SLASH = 76;
AKEYCODE_AT = 77;
AKEYCODE_NUM = 78;
AKEYCODE_HEADSETHOOK = 79;
AKEYCODE_FOCUS = 80; // *Camera* focus
AKEYCODE_PLUS = 81;
AKEYCODE_MENU = 82;
AKEYCODE_NOTIFICATION = 83;
AKEYCODE_SEARCH = 84;
AKEYCODE_MEDIA_PLAY_PAUSE = 85;
AKEYCODE_MEDIA_STOP = 86;
AKEYCODE_MEDIA_NEXT = 87;
AKEYCODE_MEDIA_PREVIOUS = 88;
AKEYCODE_MEDIA_REWIND = 89;
AKEYCODE_MEDIA_FAST_FORWARD = 90;
AKEYCODE_MUTE = 91;
AKEYCODE_PAGE_UP = 92;
AKEYCODE_PAGE_DOWN = 93;
AKEYCODE_PICTSYMBOLS = 94;
AKEYCODE_SWITCH_CHARSET = 95;
AKEYCODE_BUTTON_A = 96;
AKEYCODE_BUTTON_B = 97;
AKEYCODE_BUTTON_C = 98;
AKEYCODE_BUTTON_X = 99;
AKEYCODE_BUTTON_Y = 100;
AKEYCODE_BUTTON_Z = 101;
AKEYCODE_BUTTON_L1 = 102;
AKEYCODE_BUTTON_R1 = 103;
AKEYCODE_BUTTON_L2 = 104;
AKEYCODE_BUTTON_R2 = 105;
AKEYCODE_BUTTON_THUMBL = 106;
AKEYCODE_BUTTON_THUMBR = 107;
AKEYCODE_BUTTON_START = 108;
AKEYCODE_BUTTON_SELECT = 109;
AKEYCODE_BUTTON_MODE = 110;
// Now all elements from android.view.KeyEvent
ACTION_DOWN = 0;
ACTION_MULTIPLE = 2;
ACTION_UP = 1;
FLAG_CANCELED = $20;
FLAG_CANCELED_LONG_PRESS = $100;
FLAG_EDITOR_ACTION = $10;
FLAG_FALLBACK = $400;
FLAG_FROM_SYSTEM = 8;
FLAG_KEEP_TOUCH_MODE = 4;
FLAG_LONG_PRESS = $80;
FLAG_SOFT_KEYBOARD = 2;
FLAG_TRACKING = $200;
FLAG_VIRTUAL_HARD_KEY = $40;
FLAG_WOKE_HERE = 1;
KEYCODE_0 = 7;
KEYCODE_1 = 8;
KEYCODE_2 = 9;
KEYCODE_3 = 10;
KEYCODE_3D_MODE = $000000ce; // 3D Mode key. Toggles the display between 2D and 3D mode.
KEYCODE_4 = 11;
KEYCODE_5 = 12;
KEYCODE_6 = 13;
KEYCODE_7 = 14;
KEYCODE_8 = 15;
KEYCODE_9 = 16;
KEYCODE_A = 29;
KEYCODE_ALT_LEFT = $00000039;
KEYCODE_ALT_RIGHT = $0000003a;
KEYCODE_APOSTROPHE = $0000004b;
KEYCODE_APP_SWITCH = $000000bb;
KEYCODE_AT = $0000004d;
KEYCODE_AVR_INPUT = $000000b6;
KEYCODE_AVR_POWER = $000000b5;
KEYCODE_B = 30;
KEYCODE_BACK = 4;
KEYCODE_BACKSLASH = $00000049;
KEYCODE_BOOKMARK = $000000ae;
KEYCODE_BREAK = $00000079;
KEYCODE_BUTTON_1 = $000000bc;
KEYCODE_BUTTON_10 = $000000c5;
KEYCODE_BUTTON_11 = $000000c6;
KEYCODE_BUTTON_12 = $000000c7;
KEYCODE_BUTTON_13 = $000000c8;
KEYCODE_BUTTON_14 = $000000c9;
KEYCODE_BUTTON_15 = $000000ca;
KEYCODE_BUTTON_16 = $000000cb; // Generic Game Pad Button #16.
KEYCODE_BUTTON_2 = $000000bd; // Generic Game Pad Button #2.
KEYCODE_BUTTON_3 = $000000be;
KEYCODE_BUTTON_4 = $000000bf;
KEYCODE_BUTTON_5 = $000000c0;
KEYCODE_BUTTON_6 = $000000c1;
KEYCODE_BUTTON_7 = $000000c2;
KEYCODE_BUTTON_8 = $000000c3;
KEYCODE_BUTTON_9 = $000000c4; // Generic Game Pad Button #9.
KEYCODE_BUTTON_A = $00000060; // A Button key. On a game controller, the A button should be either the button labeled A or the first button on the upper row of controller buttons.
KEYCODE_BUTTON_B = $00000061;
KEYCODE_BUTTON_C = $00000062;
KEYCODE_BUTTON_L1 = $00000066; // L1 Button key. On a game controller, the L1 button should be either the button labeled L1 (or L) or the top left trigger button.
KEYCODE_BUTTON_L2 = $00000068;
KEYCODE_BUTTON_MODE = $0000006e; // Mode Button key. On a game controller, the button labeled Mode.
KEYCODE_BUTTON_R1 = $00000067; // R1 Button key. On a game controller, the R1 button should be either the button labeled R1 (or R) or the top right trigger button.
KEYCODE_BUTTON_R2 = $00000069; // R2 Button key. On a game controller, the R2 button should be either the button labeled R2 or the bottom right trigger button.
KEYCODE_BUTTON_SELECT = $0000006d; // Select Button key. On a game controller, the button labeled Select.
KEYCODE_BUTTON_START = $0000006c; // Start Button key. On a game controller, the button labeled Start.
KEYCODE_BUTTON_THUMBL = $0000006a; // Left Thumb Button key. On a game controller, the left thumb button indicates that the left (or only) joystick is pressed.
KEYCODE_BUTTON_THUMBR = $0000006b; // Right Thumb Button key. On a game controller, the right thumb button indicates that the right joystick is pressed.
KEYCODE_BUTTON_X = $00000063; // X Button key. On a game controller, the X button should be either the button labeled X or the first button on the lower row of controller buttons.
KEYCODE_BUTTON_Y = $00000064; // Y Button key. On a game controller, the Y button should be either the button labeled Y or the second button on the lower row of controller buttons.
KEYCODE_BUTTON_Z = $00000065; // Z Button key. On a game controller, the Z button should be either the button labeled Z or the third button on the lower row of controller buttons.
KEYCODE_C = 31; // 'C' key.
KEYCODE_CALCULATOR = $000000d2; // Calculator special function key. Used to launch a calculator application.
KEYCODE_CALENDAR = $000000d0; // Calendar special function key. Used to launch a calendar application.
KEYCODE_CALL = $00000005; // Call key.
KEYCODE_CAMERA = $0000001b; // Camera key. Used to launch a camera application or take pictures.
KEYCODE_CAPS_LOCK = $00000073;
KEYCODE_CAPTIONS = $000000af; // Toggle captions key. Switches the mode for closed-captioning text, for example during television shows.
KEYCODE_CHANNEL_DOWN = $000000a7; // Channel down key. On TV remotes, decrements the television channel.
KEYCODE_CHANNEL_UP = $000000a6; // Channel up key. On TV remotes, increments the television channel.
KEYCODE_CLEAR = $0000001c;
KEYCODE_COMMA = $00000037;
KEYCODE_CONTACTS = $000000cf; // Contacts special function key. Used to launch an address book application.
KEYCODE_CTRL_LEFT = $00000071; // Left Control modifier key.
KEYCODE_CTRL_RIGHT = $00000072; // Right Control modifier key.
KEYCODE_D = 32;
KEYCODE_DEL = $00000043; // Backspace key. Deletes characters before the insertion point, unlike KEYCODE_FORWARD_DEL.
KEYCODE_DPAD_CENTER = $00000017; // Directional Pad Center key. May also be synthesized from trackball motions.
KEYCODE_DPAD_DOWN = $00000014; // Directional Pad Down key. May also be synthesized from trackball motions.
KEYCODE_DPAD_LEFT = $00000015; // Directional Pad Left key. May also be synthesized from trackball motions.
KEYCODE_DPAD_RIGHT = $00000016; // Directional Pad Right key. May also be synthesized from trackball motions.
KEYCODE_DPAD_UP = $00000013; // Directional Pad Up key. May also be synthesized from trackball motions.
KEYCODE_DVR = $000000ad; // DVR key. On some TV remotes, switches to a DVR mode for recorded shows.
KEYCODE_E = 33;
KEYCODE_ENDCALL = $00000006; // End Call key.
KEYCODE_ENTER = $00000042; // Enter key.
KEYCODE_ENVELOPE = $00000041; // Envelope special function key. Used to launch a mail application.
KEYCODE_EQUALS = $00000046; // '=' key.
KEYCODE_ESCAPE = $0000006f; // Escape key.
KEYCODE_EXPLORER = $00000040; // Explorer special function key. Used to launch a browser application.
KEYCODE_F = 34; // 'F' key.
KEYCODE_F1 = $00000083;
KEYCODE_F10 = $0000008c;
KEYCODE_F11 = $0000008d;
KEYCODE_F12 = $0000008e;
KEYCODE_F2 = $00000084;
KEYCODE_F3 = $00000085;
KEYCODE_F4 = $00000086;
KEYCODE_F5 = $00000087;
KEYCODE_F6 = $00000088;
KEYCODE_F7 = $00000089;
KEYCODE_F8 = $0000008a;
KEYCODE_F9 = $0000008b;
KEYCODE_FOCUS = $00000050; // Camera Focus key. Used to focus the camera.
KEYCODE_FORWARD = $0000007d; // Forward key. Navigates forward in the history stack. Complement of KEYCODE_BACK.
KEYCODE_FORWARD_DEL = $00000070; // Forward Delete key. Deletes characters ahead of the insertion point, unlike KEYCODE_DEL.
KEYCODE_FUNCTION = $00000077; // Function modifier key.
KEYCODE_G = 35;
KEYCODE_GRAVE = $00000044; // '`' (backtick) key.
KEYCODE_GUIDE = $000000ac; // Guide key. On TV remotes, shows a programming guide.
KEYCODE_H = 36;
KEYCODE_HEADSETHOOK = $0000004f; // Headset Hook key. Used to hang up calls and stop media.
KEYCODE_HOME = $00000003; // Home key. This key is handled by the framework and is never delivered to applications.
KEYCODE_I = 37;
KEYCODE_INFO = $000000a5; // Info key. Common on TV remotes to show additional information related to what is currently being viewed.
KEYCODE_INSERT = $0000007c; // Insert key. Toggles insert / overwrite edit mode.
KEYCODE_J = 38;
KEYCODE_K = 39;
KEYCODE_L = 40;
KEYCODE_LANGUAGE_SWITCH = $000000cc; // Language Switch key. Toggles the current input language such as switching between English and Japanese on a QWERTY keyboard. On some devices, the same function may be performed by pressing Shift+Spacebar.
KEYCODE_LEFT_BRACKET = $00000047; // '[' key.
KEYCODE_M = 41;
KEYCODE_MANNER_MODE = $000000cd; // Manner Mode key. Toggles silent or vibrate mode on and off to make the device behave more politely in certain settings such as on a crowded train. On some devices, the key may only operate when long-pressed.
KEYCODE_MEDIA_CLOSE = $00000080; // Close media key. May be used to close a CD tray, for example.
KEYCODE_MEDIA_EJECT = $00000081; // Eject media key. May be used to eject a CD tray, for example.
KEYCODE_MEDIA_FAST_FORWARD = $0000005a; // Fast Forward media key.
KEYCODE_MEDIA_NEXT = $00000057; // Play Next media key.
KEYCODE_MEDIA_PAUSE = $0000007f; // Pause media key.
KEYCODE_MEDIA_PLAY = $0000007e; // Play media key.
KEYCODE_MEDIA_PLAY_PAUSE = $00000055; // Play/Pause media key.
KEYCODE_MEDIA_PREVIOUS = $00000058; // Play Previous media key.
KEYCODE_MEDIA_RECORD = $00000082; // Record media key.
KEYCODE_MEDIA_REWIND = $00000059; // Rewind media key.
KEYCODE_MEDIA_STOP = $00000056; // Stop media key.
KEYCODE_MENU = $00000052; // Menu key.
KEYCODE_META_LEFT = $00000075; // Left Meta modifier key.
KEYCODE_META_RIGHT = $00000076; // Right Meta modifier key.
KEYCODE_MINUS = $00000045; // '-'
KEYCODE_MOVE_END = $0000007b; // End Movement key. Used for scrolling or moving the cursor around to the end of a line or to the bottom of a list.
KEYCODE_MOVE_HOME = $0000007a; // Home Movement key. Used for scrolling or moving the cursor around to the start of a line or to the top of a list.
KEYCODE_MUSIC = $000000d1; // Music special function key. Used to launch a music player application.
KEYCODE_MUTE = $0000005b; //Mute key. Mutes the microphone, unlike KEYCODE_VOLUME_MUTE
KEYCODE_N = 42;
KEYCODE_NOTIFICATION = $00000053;
KEYCODE_NUM = $0000004e; // Number modifier key. Used to enter numeric symbols. This key is not Num Lock; it is more like KEYCODE_ALT_LEFT and is interpreted as an ALT key by MetaKeyKeyListener.
KEYCODE_NUMPAD_0 = $00000090;
KEYCODE_NUMPAD_1 = $00000091;
KEYCODE_NUMPAD_2 = $00000092;
KEYCODE_NUMPAD_3 = $00000093;
KEYCODE_NUMPAD_4 = $00000094;
KEYCODE_NUMPAD_5 = $00000095;
KEYCODE_NUMPAD_6 = $00000096;
KEYCODE_NUMPAD_7 = $00000097;
KEYCODE_NUMPAD_8 = $00000098;
KEYCODE_NUMPAD_9 = $00000099;
KEYCODE_NUMPAD_ADD = $0000009d;
KEYCODE_NUMPAD_COMMA = $0000009f;
KEYCODE_NUMPAD_DIVIDE = $0000009a;
KEYCODE_NUMPAD_DOT = $0000009e;
KEYCODE_NUMPAD_ENTER = $000000a0;
KEYCODE_NUMPAD_EQUALS = $000000a1;
KEYCODE_NUMPAD_LEFT_PAREN = $000000a2;
KEYCODE_NUMPAD_MULTIPLY = $0000009b;
KEYCODE_NUMPAD_RIGHT_PAREN = $000000a3;
KEYCODE_NUMPAD_SUBTRACT = $0000009c;
KEYCODE_NUM_LOCK = $0000008f;
KEYCODE_O = 43;
KEYCODE_P = 44;
KEYCODE_PAGE_DOWN = $0000005d;
KEYCODE_PAGE_UP = $0000005c;
KEYCODE_PERIOD = $00000038;
KEYCODE_PICTSYMBOLS = $0000005e;
KEYCODE_PLUS = $00000051; // '+' key
KEYCODE_POUND = $00000012; // '#' key.
KEYCODE_POWER = $0000001a;
KEYCODE_PROG_BLUE = $000000ba;
KEYCODE_PROG_GREEN = $000000b8;
KEYCODE_PROG_RED = $000000b7;
KEYCODE_PROG_YELLOW = $000000b9;
KEYCODE_Q = 45;
KEYCODE_R = 46;
KEYCODE_RIGHT_BRACKET = $00000048;
KEYCODE_S = 47;
KEYCODE_SCROLL_LOCK = $00000074;
KEYCODE_SEARCH = $00000054;
KEYCODE_SEMICOLON = $0000004a;
KEYCODE_SETTINGS = $000000b0;
KEYCODE_SHIFT_LEFT = 59;
KEYCODE_SHIFT_RIGHT = 60;
KEYCODE_SLASH = $0000004c; // '/' key.
KEYCODE_SOFT_LEFT = $00000001;
KEYCODE_SOFT_RIGHT = $00000002;
KEYCODE_SPACE = $0000003e;
KEYCODE_STAR = $00000011;
KEYCODE_STB_INPUT = $000000b4;
KEYCODE_STB_POWER = $000000b3;
KEYCODE_SWITCH_CHARSET = $0000005f;
KEYCODE_SYM = $0000003f; // Symbol modifier key. Used to enter alternate symbols.
KEYCODE_SYSRQ = $00000078; // System Request / Print Screen key.
KEYCODE_T = 48;
KEYCODE_TAB = $0000003d;
KEYCODE_TV = $000000aa;
KEYCODE_TV_INPUT = $000000b2;
KEYCODE_TV_POWER = $000000b1;
KEYCODE_U = 49;
KEYCODE_UNKNOWN = 0;
KEYCODE_V = 50;
KEYCODE_VOLUME_DOWN = $00000019;
KEYCODE_VOLUME_MUTE = $000000a4;
KEYCODE_VOLUME_UP = $00000018;
KEYCODE_W = 51;
KEYCODE_WINDOW = $000000ab; // Window key. On TV remotes, toggles picture-in-picture mode or other windowing functions.
KEYCODE_X = 52;
KEYCODE_Y = 53;
KEYCODE_Z = 54;
KEYCODE_ZOOM_IN = $000000a8;
KEYCODE_ZOOM_OUT = $000000a9;
MAX_KEYCODE = $00000054; // deprecated!
META_ALT_LEFT_ON = $00000010;
META_ALT_MASK = $00000032;
META_ALT_ON = $00000002;
META_ALT_RIGHT_ON = $00000020;
META_CAPS_LOCK_ON = $00100000;
META_CTRL_LEFT_ON = $00002000;
META_CTRL_MASK = $00007000;
META_CTRL_ON = $00001000;
META_CTRL_RIGHT_ON = $00004000;
META_FUNCTION_ON = $00000008;
META_META_LEFT_ON = $00020000;
META_META_MASK = $00070000;
META_META_ON = $00010000;
META_META_RIGHT_ON = $00040000;
META_NUM_LOCK_ON = $00200000;
META_SCROLL_LOCK_ON = $00400000;
META_SHIFT_LEFT_ON = $00000040;
META_SHIFT_MASK = $000000c1;
META_SHIFT_ON = $00000001;
META_SHIFT_RIGHT_ON = $00000080;
META_SYM_ON = 4;
implementation
end.