program TestConversion;
// from 32 to 126, all character sets are equal,
// the key code is the same as the ASCii character code.
const
K_SP = ' ' ; // 32 (0x20)
K_exclam = '!' ; // 33
K_quotedbl = '"'; // 34 { !! removed backslash }
K_numbersign = '#' ; // 35
K_dollar = '$' ; // 36
K_percent = '%' ; // 37
K_ampersand = '&' ; // 38
K_apostrophe = ''''; // 39
K_parentleft = '(' ; // 40
K_parentright = ')' ; // 41
K_asterisk = '*' ; // 42
K_plus = '+' ; // 43
K_comma = ',' ; // 44
K_minus = '-' ; // 45
K_period = '.' ; // 46
K_slash = '/' ; // 47
K_0 = '0' ; // 48 (0x30)
K_1 = '1' ; // 49
K_2 = '2' ; // 50
K_3 = '3' ; // 51
K_4 = '4' ; // 52
K_5 = '5' ; // 53
K_6 = '6' ; // 54
K_7 = '7' ; // 55
K_8 = '8' ; // 56
K_9 = '9' ; // 57
K_colon = ':' ; // 58
K_semicolon = ';' ; // 59
K_less = '<' ; // 60
K_equal = '=' ; // 61
K_greater = '>' ; // 62
K_question = '?' ; // 63
K_at = '@' ; // 64
K_ucA = 'A' ; // 65 (0x41) !! added "uc" to elimiate duplicate
K_ucB = 'B' ; // 66 !! added "uc" to elimiate duplicate
K_ucC = 'C' ; // 67 !! added "uc" to elimiate duplicate
K_ucD = 'D' ; // 68 !! added "uc" to elimiate duplicate
K_ucE = 'E' ; // 69 !! added "uc" to elimiate duplicate
K_ucF = 'F' ; // 70 !! added "uc" to elimiate duplicate
K_ucG = 'G' ; // 71 !! added "uc" to elimiate duplicate
K_ucH = 'H' ; // 72 !! added "uc" to elimiate duplicate
K_ucI = 'I' ; // 73 !! added "uc" to elimiate duplicate
K_ucJ = 'J' ; // 74 !! added "uc" to elimiate duplicate
K_ucK = 'K' ; // 75 !! added "uc" to elimiate duplicate
K_ucL = 'L' ; // 76 !! added "uc" to elimiate duplicate
K_ucM = 'M' ; // 77 !! added "uc" to elimiate duplicate
K_ucN = 'N' ; // 78 !! added "uc" to elimiate duplicate
K_ucO = 'O' ; // 79 !! added "uc" to elimiate duplicate
K_ucP = 'P' ; // 80 !! added "uc" to elimiate duplicate
K_ucQ = 'Q' ; // 81 !! added "uc" to elimiate duplicate
K_ucR = 'R' ; // 82 !! added "uc" to elimiate duplicate
K_ucS = 'S' ; // 83 !! added "uc" to elimiate duplicate
K_ucT = 'T' ; // 84 !! added "uc" to elimiate duplicate
K_ucU = 'U' ; // 85 !! added "uc" to elimiate duplicate
K_ucV = 'V' ; // 86 !! added "uc" to elimiate duplicate
K_ucW = 'W' ; // 87 !! added "uc" to elimiate duplicate
K_ucX = 'X' ; // 88 !! added "uc" to elimiate duplicate
K_ucY = 'Y' ; // 89 !! added "uc" to elimiate duplicate
K_ucZ = 'Z' ; // 90 !! added "uc" to elimiate duplicate
K_bracketleft = '[' ; // 91
K_backslash = '\' ; // 92
K_bracketright = ']'; // 93
K_circum = '^' ; // 94
K_underscore = '_' ; // 95
K_grave = '`' ; // 96
K_lca = 'a' ; // 97 (0x61) !! added "lc" to elimiate duplicate
K_lcb = 'b' ; // 98 !! added "lc" to elimiate duplicate
K_lcc = 'c' ; // 99 !! added "lc" to elimiate duplicate
K_lcd = 'd' ; // 100 !! added "lc" to elimiate duplicate
K_lce = 'e' ; // 101 !! added "lc" to elimiate duplicate
K_lcf = 'f' ; // 102 !! added "lc" to elimiate duplicate
K_lcg = 'g' ; // 103 !! added "lc" to elimiate duplicate
K_lch = 'h' ; // 104 !! added "lc" to elimiate duplicate
K_lci = 'i' ; // 105 !! added "lc" to elimiate duplicate
K_lcj = 'j' ; // 106 !! added "lc" to elimiate duplicate
K_lck = 'k' ; // 107 !! added "lc" to elimiate duplicate
K_lcl = 'l' ; // 108 !! added "lc" to elimiate duplicate
K_lcm = 'm' ; // 109 !! added "lc" to elimiate duplicate
K_lcn = 'n' ; // 110 !! added "lc" to elimiate duplicate
K_lco = 'o' ; // 111 !! added "lc" to elimiate duplicate
K_lcp = 'p' ; // 112 !! added "lc" to elimiate duplicate
K_lcq = 'q' ; // 113 !! added "lc" to elimiate duplicate
K_lcr = 'r' ; // 114 !! added "lc" to elimiate duplicate
K_lcs = 's' ; // 115 !! added "lc" to elimiate duplicate
K_lct = 't' ; // 116 !! added "lc" to elimiate duplicate
K_lcu = 'u' ; // 117 !! added "lc" to elimiate duplicate
K_lcv = 'v' ; // 118 !! added "lc" to elimiate duplicate
K_lcw = 'w' ; // 119 !! added "lc" to elimiate duplicate
K_lcx = 'x' ; // 120 !! added "lc" to elimiate duplicate
K_lcy = 'y' ; // 121 !! added "lc" to elimiate duplicate
K_lcz = 'z' ; // 122 !! added "lc" to elimiate duplicate
K_braceleft = '{' ; // 123
K_bar = '|' ; // 124
K_braceright = '}' ; // 125
K_tilde = '~' ; // 126 (0x7E)
// Printable ASCii keys
// #define iup_isprint(_c) ((_c) > 31 && (_c) < 127)
function iup_isprint(_c : DWORD)
: boolean32; inline;
begin
result := (_c > 31) and (_c < 127);
end;
// also define the escape sequences that have keys associated
const
K_eBS = 8 ; // '\b' 8
K_eTAB = 9 ; // '\t' 9
K_eLF = 10; // '\n' 10 (0Ah) not a real key, is a combination of
// CR with a modifier, just to document
K_eCR = 13; // '\r' 13 (0Dh)
// backward compatible definitions
const
K_quoteleft = K_grave ;
K_quoteright = K_apostrophe;
{ this synonym can be implemented as an FPC macro or as a repeat of the }
{ iup_isXkey function }
{ }
{ isxkey = iup_isXkey; }
// IUP Extended Key Codes, range start at 128 */
// #define iup_isXkey(_c) ((_c) >= 128)
// same as isxkey
function iup_isXkey(_c : DWORD)
: boolean32; inline;
begin
result := (_c > 128);
end;
function isxkey(_c : DWORD) : boolean32; inline;
begin
result := iup_isXkey(_c);
end;
// These use the same definition as X11 and GDK.
// This also means that any X11 or GDK definition can also be used.
const
K_PAUSE = DWORD($FF13);
K_ESC = DWORD($FF1B);
K_HOME = DWORD($FF50);
K_LEFT = DWORD($FF51);
K_UP = DWORD($FF52);
K_RIGHT = DWORD($FF53);
K_DOWN = DWORD($FF54);
K_PGUP = DWORD($FF55);
K_PGDN = DWORD($FF56);
K_END = DWORD($FF57);
K_MIDDLE = DWORD($FF0B);
K_Print = DWORD($FF61);
K_INS = DWORD($FF63);
K_Menu = DWORD($FF67);
K_DEL = DWORD($FFFF);
K_F1 = DWORD($FFBE);
K_F2 = DWORD($FFBF);
K_F3 = DWORD($FFC0);
K_F4 = DWORD($FFC1);
K_F5 = DWORD($FFC2);
K_F6 = DWORD($FFC3);
K_F7 = DWORD($FFC4);
K_F8 = DWORD($FFC5);
K_F9 = DWORD($FFC6);
K_F10 = DWORD($FFC7);
K_F11 = DWORD($FFC8);
K_F12 = DWORD($FFC9);
// no Shift/Ctrl/Alt
const
K_LSHIFT = DWORD($FFE1);
K_RSHIFT = DWORD($FFE2);
K_LCTRL = DWORD($FFE3);
K_RCTRL = DWORD($FFE4);
K_LALT = DWORD($FFE9);
K_RALT = DWORD($FFEA);
K_NUM = DWORD($FF7F);
K_SCROLL = DWORD($FF14);
K_CAPS = DWORD($FFE5);
// Also, these are the same as the Latin-1 definition
const
K_lccedilla = DWORD($00E7); // duplicate identifier - changed to lc..
K_uCcedilla = DWORD($00C7); // " " to uC..
K_acute = DWORD($00B4); // no Shift/Ctrl/Alt
K_diaeresis = DWORD($00A8);