diff options
Diffstat (limited to 'iup/include/iupkey.h')
-rwxr-xr-x | iup/include/iupkey.h | 457 |
1 files changed, 457 insertions, 0 deletions
diff --git a/iup/include/iupkey.h b/iup/include/iupkey.h new file mode 100755 index 0000000..b80c47e --- /dev/null +++ b/iup/include/iupkey.h @@ -0,0 +1,457 @@ +/** \file + * \brief Keyboard Keys definitions. + * + * See Copyright Notice in "iup.h" + */ + +#ifndef __IUPKEY_H +#define __IUPKEY_H + +/* from 32 to 126, all character sets are equal, + the key code i the same as the character code. */ + +#define K_SP ' ' /* 32 (0x20) */ +#define K_exclam '!' /* 33 */ +#define K_quotedbl '\"' /* 34 */ +#define K_numbersign '#' /* 35 */ +#define K_dollar '$' /* 36 */ +#define K_percent '%' /* 37 */ +#define K_ampersand '&' /* 38 */ +#define K_apostrophe '\'' /* 39 */ +#define K_parentleft '(' /* 40 */ +#define K_parentright ')' /* 41 */ +#define K_asterisk '*' /* 42 */ +#define K_plus '+' /* 43 */ +#define K_comma ',' /* 44 */ +#define K_minus '-' /* 45 */ +#define K_period '.' /* 46 */ +#define K_slash '/' /* 47 */ +#define K_0 '0' /* 48 (0x30) */ +#define K_1 '1' /* 49 */ +#define K_2 '2' /* 50 */ +#define K_3 '3' /* 51 */ +#define K_4 '4' /* 52 */ +#define K_5 '5' /* 53 */ +#define K_6 '6' /* 54 */ +#define K_7 '7' /* 55 */ +#define K_8 '8' /* 56 */ +#define K_9 '9' /* 57 */ +#define K_colon ':' /* 58 */ +#define K_semicolon ';' /* 59 */ +#define K_less '<' /* 60 */ +#define K_equal '=' /* 61 */ +#define K_greater '>' /* 62 */ +#define K_question '?' /* 63 */ +#define K_at '@' /* 64 */ +#define K_A 'A' /* 65 (0x41) */ +#define K_B 'B' /* 66 */ +#define K_C 'C' /* 67 */ +#define K_D 'D' /* 68 */ +#define K_E 'E' /* 69 */ +#define K_F 'F' /* 70 */ +#define K_G 'G' /* 71 */ +#define K_H 'H' /* 72 */ +#define K_I 'I' /* 73 */ +#define K_J 'J' /* 74 */ +#define K_K 'K' /* 75 */ +#define K_L 'L' /* 76 */ +#define K_M 'M' /* 77 */ +#define K_N 'N' /* 78 */ +#define K_O 'O' /* 79 */ +#define K_P 'P' /* 80 */ +#define K_Q 'Q' /* 81 */ +#define K_R 'R' /* 82 */ +#define K_S 'S' /* 83 */ +#define K_T 'T' /* 84 */ +#define K_U 'U' /* 85 */ +#define K_V 'V' /* 86 */ +#define K_W 'W' /* 87 */ +#define K_X 'X' /* 88 */ +#define K_Y 'Y' /* 89 */ +#define K_Z 'Z' /* 90 */ +#define K_bracketleft '[' /* 91 */ +#define K_backslash '\\' /* 92 */ +#define K_bracketright ']' /* 93 */ +#define K_circum '^' /* 94 */ +#define K_underscore '_' /* 95 */ +#define K_grave '`' /* 96 */ +#define K_a 'a' /* 97 (0x61) */ +#define K_b 'b' /* 98 */ +#define K_c 'c' /* 99 */ +#define K_d 'd' /* 100 */ +#define K_e 'e' /* 101 */ +#define K_f 'f' /* 102 */ +#define K_g 'g' /* 103 */ +#define K_h 'h' /* 104 */ +#define K_i 'i' /* 105 */ +#define K_j 'j' /* 106 */ +#define K_k 'k' /* 107 */ +#define K_l 'l' /* 108 */ +#define K_m 'm' /* 109 */ +#define K_n 'n' /* 110 */ +#define K_o 'o' /* 111 */ +#define K_p 'p' /* 112 */ +#define K_q 'q' /* 113 */ +#define K_r 'r' /* 114 */ +#define K_s 's' /* 115 */ +#define K_t 't' /* 116 */ +#define K_u 'u' /* 117 */ +#define K_v 'v' /* 118 */ +#define K_w 'w' /* 119 */ +#define K_x 'x' /* 120 */ +#define K_y 'y' /* 121 */ +#define K_z 'z' /* 122 */ +#define K_braceleft '{' /* 123 */ +#define K_bar '|' /* 124 */ +#define K_braceright '}' /* 125 */ +#define K_tilde '~' /* 126 */ + +#define iup_isprint(_c) ((_c) > 31 && (_c) < 127) + +/* also define the escape sequences that have keys associated */ + +#define K_BS '\b' /* 8 */ +#define K_TAB '\t' /* 9 */ +#define K_LF '\n' /* 10 (0x0A) not a real key, is a combination of CR with a modifier, just to document */ +#define K_CR '\r' /* 13 (0x0D) */ + +/* backward compatible definitions */ + +#define K_quoteleft K_grave +#define K_quoteright K_apostrophe +#define isxkey iup_isXkey + +/* IUP Extended Key Codes, range start at 128 */ +/* Modifiers use 256 interval */ +/* These key code definitions are specific to IUP */ + +#define iup_isXkey(_c) ((_c) > 128) +#define iup_isShiftXkey(_c) (((_c) > 256) && ((_c) < 512)) +#define iup_isCtrlXkey(_c) (((_c) > 512) && ((_c) < 768)) +#define iup_isAltXkey(_c) (((_c) > 768) && ((_c) < 1024)) +#define iup_isSysXkey(_c) (((_c) > 1024) && ((_c) < 1280)) + +#define IUPxCODE(_c) ((_c) + 128) /* Normal (must be above 128) */ +#define IUPsxCODE(_c) ((_c) + 256) /* Shift (must have range to include the standard keys and the normal extended keys, so must be above 256 */ +#define IUPcxCODE(_c) ((_c) + 512) /* Ctrl */ +#define IUPmxCODE(_c) ((_c) + 768) /* Alt */ +#define IUPyxCODE(_c) ((_c) + 1024) /* Sys (Win or Apple) */ + +#define IUP_NUMMAXCODES 1280 /* 5*256=1280 Normal+Shift+Ctrl+Alt+Sys */ + +#define K_HOME IUPxCODE(1) +#define K_UP IUPxCODE(2) +#define K_PGUP IUPxCODE(3) +#define K_LEFT IUPxCODE(4) +#define K_MIDDLE IUPxCODE(5) +#define K_RIGHT IUPxCODE(6) +#define K_END IUPxCODE(7) +#define K_DOWN IUPxCODE(8) +#define K_PGDN IUPxCODE(9) +#define K_INS IUPxCODE(10) +#define K_DEL IUPxCODE(11) +#define K_PAUSE IUPxCODE(12) +#define K_ESC IUPxCODE(13) +#define K_ccedilla IUPxCODE(14) +#define K_F1 IUPxCODE(15) +#define K_F2 IUPxCODE(16) +#define K_F3 IUPxCODE(17) +#define K_F4 IUPxCODE(18) +#define K_F5 IUPxCODE(19) +#define K_F6 IUPxCODE(20) +#define K_F7 IUPxCODE(21) +#define K_F8 IUPxCODE(22) +#define K_F9 IUPxCODE(23) +#define K_F10 IUPxCODE(24) +#define K_F11 IUPxCODE(25) +#define K_F12 IUPxCODE(26) +#define K_Print IUPxCODE(27) +#define K_Menu IUPxCODE(28) + +#define K_acute IUPxCODE(29) /* no Shift/Ctrl/Alt */ + +#define K_sHOME IUPsxCODE(K_HOME ) +#define K_sUP IUPsxCODE(K_UP ) +#define K_sPGUP IUPsxCODE(K_PGUP ) +#define K_sLEFT IUPsxCODE(K_LEFT ) +#define K_sMIDDLE IUPsxCODE(K_MIDDLE ) +#define K_sRIGHT IUPsxCODE(K_RIGHT ) +#define K_sEND IUPsxCODE(K_END ) +#define K_sDOWN IUPsxCODE(K_DOWN ) +#define K_sPGDN IUPsxCODE(K_PGDN ) +#define K_sINS IUPsxCODE(K_INS ) +#define K_sDEL IUPsxCODE(K_DEL ) +#define K_sSP IUPsxCODE(K_SP ) +#define K_sTAB IUPsxCODE(K_TAB ) +#define K_sCR IUPsxCODE(K_CR ) +#define K_sBS IUPsxCODE(K_BS ) +#define K_sPAUSE IUPsxCODE(K_PAUSE ) +#define K_sESC IUPsxCODE(K_ESC ) +#define K_Ccedilla IUPsxCODE(K_ccedilla) +#define K_sF1 IUPsxCODE(K_F1 ) +#define K_sF2 IUPsxCODE(K_F2 ) +#define K_sF3 IUPsxCODE(K_F3 ) +#define K_sF4 IUPsxCODE(K_F4 ) +#define K_sF5 IUPsxCODE(K_F5 ) +#define K_sF6 IUPsxCODE(K_F6 ) +#define K_sF7 IUPsxCODE(K_F7 ) +#define K_sF8 IUPsxCODE(K_F8 ) +#define K_sF9 IUPsxCODE(K_F9 ) +#define K_sF10 IUPsxCODE(K_F10 ) +#define K_sF11 IUPsxCODE(K_F11 ) +#define K_sF12 IUPsxCODE(K_F12 ) +#define K_sPrint IUPsxCODE(K_Print ) +#define K_sMenu IUPsxCODE(K_Menu ) + +#define K_cHOME IUPcxCODE(K_HOME ) +#define K_cUP IUPcxCODE(K_UP ) +#define K_cPGUP IUPcxCODE(K_PGUP ) +#define K_cLEFT IUPcxCODE(K_LEFT ) +#define K_cMIDDLE IUPcxCODE(K_MIDDLE ) +#define K_cRIGHT IUPcxCODE(K_RIGHT ) +#define K_cEND IUPcxCODE(K_END ) +#define K_cDOWN IUPcxCODE(K_DOWN ) +#define K_cPGDN IUPcxCODE(K_PGDN ) +#define K_cINS IUPcxCODE(K_INS ) +#define K_cDEL IUPcxCODE(K_DEL ) +#define K_cSP IUPcxCODE(K_SP ) +#define K_cTAB IUPcxCODE(K_TAB ) +#define K_cCR IUPcxCODE(K_CR ) +#define K_cBS IUPcxCODE(K_BS ) +#define K_cPAUSE IUPcxCODE(K_PAUSE ) +#define K_cESC IUPcxCODE(K_ESC ) +#define K_cCcedilla IUPcxCODE(K_ccedilla) +#define K_cF1 IUPcxCODE(K_F1 ) +#define K_cF2 IUPcxCODE(K_F2 ) +#define K_cF3 IUPcxCODE(K_F3 ) +#define K_cF4 IUPcxCODE(K_F4 ) +#define K_cF5 IUPcxCODE(K_F5 ) +#define K_cF6 IUPcxCODE(K_F6 ) +#define K_cF7 IUPcxCODE(K_F7 ) +#define K_cF8 IUPcxCODE(K_F8 ) +#define K_cF9 IUPcxCODE(K_F9 ) +#define K_cF10 IUPcxCODE(K_F10 ) +#define K_cF11 IUPcxCODE(K_F11 ) +#define K_cF12 IUPcxCODE(K_F12 ) +#define K_cPrint IUPcxCODE(K_Print ) +#define K_cMenu IUPcxCODE(K_Menu ) + +#define K_mHOME IUPmxCODE(K_HOME ) +#define K_mUP IUPmxCODE(K_UP ) +#define K_mPGUP IUPmxCODE(K_PGUP ) +#define K_mLEFT IUPmxCODE(K_LEFT ) +#define K_mMIDDLE IUPmxCODE(K_MIDDLE ) +#define K_mRIGHT IUPmxCODE(K_RIGHT ) +#define K_mEND IUPmxCODE(K_END ) +#define K_mDOWN IUPmxCODE(K_DOWN ) +#define K_mPGDN IUPmxCODE(K_PGDN ) +#define K_mINS IUPmxCODE(K_INS ) +#define K_mDEL IUPmxCODE(K_DEL ) +#define K_mSP IUPmxCODE(K_SP ) +#define K_mTAB IUPmxCODE(K_TAB ) +#define K_mCR IUPmxCODE(K_CR ) +#define K_mBS IUPmxCODE(K_BS ) +#define K_mPAUSE IUPmxCODE(K_PAUSE ) +#define K_mESC IUPmxCODE(K_ESC ) +#define K_mCcedilla IUPmxCODE(K_ccedilla) +#define K_mF1 IUPmxCODE(K_F1 ) +#define K_mF2 IUPmxCODE(K_F2 ) +#define K_mF3 IUPmxCODE(K_F3 ) +#define K_mF4 IUPmxCODE(K_F4 ) +#define K_mF5 IUPmxCODE(K_F5 ) +#define K_mF6 IUPmxCODE(K_F6 ) +#define K_mF7 IUPmxCODE(K_F7 ) +#define K_mF8 IUPmxCODE(K_F8 ) +#define K_mF9 IUPmxCODE(K_F9 ) +#define K_mF10 IUPmxCODE(K_F10 ) +#define K_mF11 IUPmxCODE(K_F11 ) +#define K_mF12 IUPmxCODE(K_F12 ) +#define K_mPrint IUPmxCODE(K_Print ) +#define K_mMenu IUPmxCODE(K_Menu ) + +#define K_yHOME IUPyxCODE(K_HOME ) +#define K_yUP IUPyxCODE(K_UP ) +#define K_yPGUP IUPyxCODE(K_PGUP ) +#define K_yLEFT IUPyxCODE(K_LEFT ) +#define K_yMIDDLE IUPyxCODE(K_MIDDLE ) +#define K_yRIGHT IUPyxCODE(K_RIGHT ) +#define K_yEND IUPyxCODE(K_END ) +#define K_yDOWN IUPyxCODE(K_DOWN ) +#define K_yPGDN IUPyxCODE(K_PGDN ) +#define K_yINS IUPyxCODE(K_INS ) +#define K_yDEL IUPyxCODE(K_DEL ) +#define K_ySP IUPyxCODE(K_SP ) +#define K_yTAB IUPyxCODE(K_TAB ) +#define K_yCR IUPyxCODE(K_CR ) +#define K_yBS IUPyxCODE(K_BS ) +#define K_yPAUSE IUPyxCODE(K_PAUSE ) +#define K_yESC IUPyxCODE(K_ESC ) +#define K_yCcedilla IUPyxCODE(K_ccedilla) +#define K_yF1 IUPyxCODE(K_F1 ) +#define K_yF2 IUPyxCODE(K_F2 ) +#define K_yF3 IUPyxCODE(K_F3 ) +#define K_yF4 IUPyxCODE(K_F4 ) +#define K_yF5 IUPyxCODE(K_F5 ) +#define K_yF6 IUPyxCODE(K_F6 ) +#define K_yF7 IUPyxCODE(K_F7 ) +#define K_yF8 IUPyxCODE(K_F8 ) +#define K_yF9 IUPyxCODE(K_F9 ) +#define K_yF10 IUPyxCODE(K_F10 ) +#define K_yF11 IUPyxCODE(K_F11 ) +#define K_yF12 IUPyxCODE(K_F12 ) +#define K_yPrint IUPyxCODE(K_Print ) +#define K_yMenu IUPyxCODE(K_Menu ) + +#define K_sPlus IUPsxCODE(K_plus ) +#define K_sComma IUPsxCODE(K_comma ) +#define K_sMinus IUPsxCODE(K_minus ) +#define K_sPeriod IUPsxCODE(K_period ) +#define K_sSlash IUPsxCODE(K_slash ) +#define K_sAsterisk IUPsxCODE(K_asterisk) + +#define K_cA IUPcxCODE(K_A) +#define K_cB IUPcxCODE(K_B) +#define K_cC IUPcxCODE(K_C) +#define K_cD IUPcxCODE(K_D) +#define K_cE IUPcxCODE(K_E) +#define K_cF IUPcxCODE(K_F) +#define K_cG IUPcxCODE(K_G) +#define K_cH IUPcxCODE(K_H) +#define K_cI IUPcxCODE(K_I) +#define K_cJ IUPcxCODE(K_J) +#define K_cK IUPcxCODE(K_K) +#define K_cL IUPcxCODE(K_L) +#define K_cM IUPcxCODE(K_M) +#define K_cN IUPcxCODE(K_N) +#define K_cO IUPcxCODE(K_O) +#define K_cP IUPcxCODE(K_P) +#define K_cQ IUPcxCODE(K_Q) +#define K_cR IUPcxCODE(K_R) +#define K_cS IUPcxCODE(K_S) +#define K_cT IUPcxCODE(K_T) +#define K_cU IUPcxCODE(K_U) +#define K_cV IUPcxCODE(K_V) +#define K_cW IUPcxCODE(K_W) +#define K_cX IUPcxCODE(K_X) +#define K_cY IUPcxCODE(K_Y) +#define K_cZ IUPcxCODE(K_Z) +#define K_c1 IUPcxCODE(K_1) +#define K_c2 IUPcxCODE(K_2) +#define K_c3 IUPcxCODE(K_3) +#define K_c4 IUPcxCODE(K_4) +#define K_c5 IUPcxCODE(K_5) +#define K_c6 IUPcxCODE(K_6) +#define K_c7 IUPcxCODE(K_7) +#define K_c8 IUPcxCODE(K_8) +#define K_c9 IUPcxCODE(K_9) +#define K_c0 IUPcxCODE(K_0) +#define K_cPlus IUPcxCODE(K_plus ) +#define K_cComma IUPcxCODE(K_comma ) +#define K_cMinus IUPcxCODE(K_minus ) +#define K_cPeriod IUPcxCODE(K_period ) +#define K_cSlash IUPcxCODE(K_slash ) +#define K_cSemicolon IUPcxCODE(K_semicolon ) +#define K_cEqual IUPcxCODE(K_equal ) +#define K_cBracketleft IUPcxCODE(K_bracketleft ) +#define K_cBracketright IUPcxCODE(K_bracketright) +#define K_cBackslash IUPcxCODE(K_backslash ) +#define K_cAsterisk IUPcxCODE(K_asterisk ) + +#define K_mA IUPmxCODE(K_A) +#define K_mB IUPmxCODE(K_B) +#define K_mC IUPmxCODE(K_C) +#define K_mD IUPmxCODE(K_D) +#define K_mE IUPmxCODE(K_E) +#define K_mF IUPmxCODE(K_F) +#define K_mG IUPmxCODE(K_G) +#define K_mH IUPmxCODE(K_H) +#define K_mI IUPmxCODE(K_I) +#define K_mJ IUPmxCODE(K_J) +#define K_mK IUPmxCODE(K_K) +#define K_mL IUPmxCODE(K_L) +#define K_mM IUPmxCODE(K_M) +#define K_mN IUPmxCODE(K_N) +#define K_mO IUPmxCODE(K_O) +#define K_mP IUPmxCODE(K_P) +#define K_mQ IUPmxCODE(K_Q) +#define K_mR IUPmxCODE(K_R) +#define K_mS IUPmxCODE(K_S) +#define K_mT IUPmxCODE(K_T) +#define K_mU IUPmxCODE(K_U) +#define K_mV IUPmxCODE(K_V) +#define K_mW IUPmxCODE(K_W) +#define K_mX IUPmxCODE(K_X) +#define K_mY IUPmxCODE(K_Y) +#define K_mZ IUPmxCODE(K_Z) +#define K_m1 IUPmxCODE(K_1) +#define K_m2 IUPmxCODE(K_2) +#define K_m3 IUPmxCODE(K_3) +#define K_m4 IUPmxCODE(K_4) +#define K_m5 IUPmxCODE(K_5) +#define K_m6 IUPmxCODE(K_6) +#define K_m7 IUPmxCODE(K_7) +#define K_m8 IUPmxCODE(K_8) +#define K_m9 IUPmxCODE(K_9) +#define K_m0 IUPmxCODE(K_0) +#define K_mPlus IUPmxCODE(K_plus ) +#define K_mComma IUPmxCODE(K_comma ) +#define K_mMinus IUPmxCODE(K_minus ) +#define K_mPeriod IUPmxCODE(K_period ) +#define K_mSlash IUPmxCODE(K_slash ) +#define K_mSemicolon IUPmxCODE(K_semicolon ) +#define K_mEqual IUPmxCODE(K_equal ) +#define K_mBracketleft IUPmxCODE(K_bracketleft ) +#define K_mBracketright IUPmxCODE(K_bracketright) +#define K_mBackslash IUPmxCODE(K_backslash ) +#define K_mAsterisk IUPmxCODE(K_asterisk ) + +#define K_yA IUPyxCODE(K_A) +#define K_yB IUPyxCODE(K_B) +#define K_yC IUPyxCODE(K_C) +#define K_yD IUPyxCODE(K_D) +#define K_yE IUPyxCODE(K_E) +#define K_yF IUPyxCODE(K_F) +#define K_yG IUPyxCODE(K_G) +#define K_yH IUPyxCODE(K_H) +#define K_yI IUPyxCODE(K_I) +#define K_yJ IUPyxCODE(K_J) +#define K_yK IUPyxCODE(K_K) +#define K_yL IUPyxCODE(K_L) +#define K_yM IUPyxCODE(K_M) +#define K_yN IUPyxCODE(K_N) +#define K_yO IUPyxCODE(K_O) +#define K_yP IUPyxCODE(K_P) +#define K_yQ IUPyxCODE(K_Q) +#define K_yR IUPyxCODE(K_R) +#define K_yS IUPyxCODE(K_S) +#define K_yT IUPyxCODE(K_T) +#define K_yU IUPyxCODE(K_U) +#define K_yV IUPyxCODE(K_V) +#define K_yW IUPyxCODE(K_W) +#define K_yX IUPyxCODE(K_X) +#define K_yY IUPyxCODE(K_Y) +#define K_yZ IUPyxCODE(K_Z) +#define K_y1 IUPyxCODE(K_1) +#define K_y2 IUPyxCODE(K_2) +#define K_y3 IUPyxCODE(K_3) +#define K_y4 IUPyxCODE(K_4) +#define K_y5 IUPyxCODE(K_5) +#define K_y6 IUPyxCODE(K_6) +#define K_y7 IUPyxCODE(K_7) +#define K_y8 IUPyxCODE(K_8) +#define K_y9 IUPyxCODE(K_9) +#define K_y0 IUPyxCODE(K_0) +#define K_yPlus IUPyxCODE(K_plus ) +#define K_yComma IUPyxCODE(K_comma ) +#define K_yMinus IUPyxCODE(K_minus ) +#define K_yPeriod IUPyxCODE(K_period ) +#define K_ySlash IUPyxCODE(K_slash ) +#define K_ySemicolon IUPyxCODE(K_semicolon ) +#define K_yEqual IUPyxCODE(K_equal ) +#define K_yBracketleft IUPyxCODE(K_bracketleft ) +#define K_yBracketright IUPyxCODE(K_bracketright) +#define K_yBackslash IUPyxCODE(K_backslash ) +#define K_yAsterisk IUPyxCODE(K_asterisk ) + + +#endif |