/* Copyright 1990-2001 Sun Microsystems, Inc. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP OR SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH DAMAGES. Except as contained in this notice, the names of The Open Group and/or Sun Microsystems, Inc. shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group and/or Sun Microsystems, Inc., as applicable. X Window System is a trademark of The Open Group OSF/1, OSF/Motif and Motif are registered trademarks, and OSF, the OSF logo, LBX, X Window System, and Xinerama are trademarks of the Open Group. All other trademarks and registered trademarks mentioned herein are the property of their respective owners. No right, title or interest in or to any trademark, service mark, logo or trade name of Sun Microsystems, Inc. or its licensors is granted. */ #ifndef SUNIM_H #define SUNIM_H #include "IMArg.h" #include "IMProtocolStruct.h" #include "IMCharSubsets.h" typedef struct IMHRN_ { char *id; /* id */ UTFCHAR *name; /* HRN */ } IMHRN, *IMHRNList; typedef IMHRN IMLEName; typedef IMHRN IMLocale; /* * IM_VK_ to check keycode of IMKeyListEvent */ #define IM_SHIFT_MASK (1 << 0) #define IM_CTRL_MASK (1 << 1) #define IM_META_MASK (1 << 2) #define IM_ALT_MASK (1 << 3) #define IM_ALT_GRAPH_MASK (1 << 5) #define IM_BUTTON1_MASK (1 << 4) #define IM_BUTTON2_MASK ALT_MASK #define IM_BUTTON3_MASK META_MASK #define IM_VK_ENTER '\n' #define IM_VK_BACK_SPACE '\b' #define IM_VK_TAB '\t' #define IM_VK_CANCEL 0x03 #define IM_VK_CLEAR 0x0C #define IM_VK_SHIFT 0x10 #define IM_VK_CONTROL 0x11 #define IM_VK_ALT 0x12 #define IM_VK_PAUSE 0x13 #define IM_VK_CAPS_LOCK 0x14 #define IM_VK_ESCAPE 0x1B #define IM_VK_SPACE 0x20 #define IM_VK_PAGE_UP 0x21 #define IM_VK_PAGE_DOWN 0x22 #define IM_VK_END 0x23 #define IM_VK_HOME 0x24 #define IM_VK_LEFT 0x25 #define IM_VK_UP 0x26 #define IM_VK_RIGHT 0x27 #define IM_VK_DOWN 0x28 #define IM_VK_COMMA 0x2C #define IM_VK_MINUS 0x2D #define IM_VK_PERIOD 0x2E #define IM_VK_SLASH 0x2F #define IM_VK_0 0x30 #define IM_VK_1 0x31 #define IM_VK_2 0x32 #define IM_VK_3 0x33 #define IM_VK_4 0x34 #define IM_VK_5 0x35 #define IM_VK_6 0x36 #define IM_VK_7 0x37 #define IM_VK_8 0x38 #define IM_VK_9 0x39 #define IM_VK_SEMICOLON 0x3B #define IM_VK_EQUALS 0x3D #define IM_VK_A 0x41 #define IM_VK_B 0x42 #define IM_VK_C 0x43 #define IM_VK_D 0x44 #define IM_VK_E 0x45 #define IM_VK_F 0x46 #define IM_VK_G 0x47 #define IM_VK_H 0x48 #define IM_VK_I 0x49 #define IM_VK_J 0x4A #define IM_VK_K 0x4B #define IM_VK_L 0x4C #define IM_VK_M 0x4D #define IM_VK_N 0x4E #define IM_VK_O 0x4F #define IM_VK_P 0x50 #define IM_VK_Q 0x51 #define IM_VK_R 0x52 #define IM_VK_S 0x53 #define IM_VK_T 0x54 #define IM_VK_U 0x55 #define IM_VK_V 0x56 #define IM_VK_W 0x57 #define IM_VK_X 0x58 #define IM_VK_Y 0x59 #define IM_VK_Z 0x5A #define IM_VK_OPEN_BRACKET 0x5B #define IM_VK_BACK_SLASH 0x5C #define IM_VK_CLOSE_BRACKET 0x5D #define IM_VK_NUMPAD0 0x60 #define IM_VK_NUMPAD1 0x61 #define IM_VK_NUMPAD2 0x62 #define IM_VK_NUMPAD3 0x63 #define IM_VK_NUMPAD4 0x64 #define IM_VK_NUMPAD5 0x65 #define IM_VK_NUMPAD6 0x66 #define IM_VK_NUMPAD7 0x67 #define IM_VK_NUMPAD8 0x68 #define IM_VK_NUMPAD9 0x69 #define IM_VK_MULTIPLY 0x6A #define IM_VK_ADD 0x6B #define IM_VK_SEPARATER 0x6C #define IM_VK_SUBTRACT 0x6D #define IM_VK_DECIMAL 0x6E #define IM_VK_DIVIDE 0x6F #define IM_VK_DELETE 0x7F /* ASCII DEL */ #define IM_VK_NUM_LOCK 0x90 #define IM_VK_SCROLL_LOCK 0x91 #define IM_VK_F1 0x70 #define IM_VK_F2 0x71 #define IM_VK_F3 0x72 #define IM_VK_F4 0x73 #define IM_VK_F5 0x74 #define IM_VK_F6 0x75 #define IM_VK_F7 0x76 #define IM_VK_F8 0x77 #define IM_VK_F9 0x78 #define IM_VK_F10 0x79 #define IM_VK_F11 0x7A #define IM_VK_F12 0x7B #define IM_VK_F13 0xF000 #define IM_VK_F14 0xF001 #define IM_VK_F15 0xF002 #define IM_VK_F16 0xF003 #define IM_VK_F17 0xF004 #define IM_VK_F18 0xF005 #define IM_VK_F19 0xF006 #define IM_VK_F20 0xF007 #define IM_VK_F21 0xF008 #define IM_VK_F22 0xF009 #define IM_VK_F23 0xF00A #define IM_VK_F24 0xF00B #define IM_VK_PRINTSCREEN 0x9A #define IM_VK_INSERT 0x9B #define IM_VK_HELP 0x9C #define IM_VK_META 0x9D #define IM_VK_BACK_QUOTE 0xC0 #define IM_VK_QUOTE 0xDE #define IM_VK_KP_UP 0xE0 #define IM_VK_KP_DOWN 0xE1 #define IM_VK_KP_LEFT 0xE2 #define IM_VK_KP_RIGHT 0xE3 #define IM_VK_DEAD_GRAVE 0x80 #define IM_VK_DEAD_ACUTE 0x81 #define IM_VK_DEAD_CIRCUMFLEX 0x82 #define IM_VK_DEAD_TILDE 0x83 #define IM_VK_DEAD_MACRON 0x84 #define IM_VK_DEAD_BREVE 0x85 #define IM_VK_DEAD_ABOVEDOT 0x86 #define IM_VK_DEAD_DIAERESIS 0x87 #define IM_VK_DEAD_ABOVERING 0x88 #define IM_VK_DEAD_DOUBLEACUTE 0x89 #define IM_VK_DEAD_CARON 0x8a #define IM_VK_DEAD_CEDILLA 0x8b #define IM_VK_DEAD_OGONEK 0x8c #define IM_VK_DEAD_IOTA 0x8d #define IM_VK_DEAD_VOICED_SOUND 0x8e #define IM_VK_DEAD_SEMIVOICED_SOUND 0x8f #define IM_VK_AMPERSAND 0x96 #define IM_VK_ASTERISK 0x97 #define IM_VK_QUOTEDBL 0x98 #define IM_VK_LESS 0x99 #define IM_VK_GREATER 0xa0 #define IM_VK_BRACELEFT 0xa1 #define IM_VK_BRACERIGHT 0xa2 #define IM_VK_AT 0x0200 #define IM_VK_COLON 0x0201 #define IM_VK_CIRCUMFLEX 0x0202 #define IM_VK_DOLLAR 0x0203 #define IM_VK_EURO_SIGN 0x0204 #define IM_VK_EXCLAMATION_MARK 0x0205 #define IM_VK_INVERTED_EXCLAMATION_MARK 0x0206 #define IM_VK_LEFT_PARENTHESIS 0x0207 #define IM_VK_NUMBER_SIGN 0x0208 #define IM_VK_PLUS 0x0209 #define IM_VK_RIGHT_PARENTHESIS 0x020A #define IM_VK_UNDERSCORE 0x020B #define IM_VK_FINAL 0x0018 #define IM_VK_CONVERT 0x001C #define IM_VK_NONCONVERT 0x001D #define IM_VK_ACCEPT 0x001E #define IM_VK_MODECHANGE 0x001F #define IM_VK_KANA 0x0015 #define IM_VK_HANGUL 0x0015 #define IM_VK_JUNJA 0x0017 #define IM_VK_FINAL 0x0018 #define IM_VK_KANJI 0x0019 #define IM_VK_HANJA 0x0019 #define IM_VK_ALPHANUMERIC 0x00F0 #define IM_VK_KATAKANA 0x00F1 #define IM_VK_HIRAGANA 0x00F2 #define IM_VK_FULL_WIDTH 0x00F3 #define IM_VK_HALF_WIDTH 0x00F4 #define IM_VK_ROMAN_CHARACTERS 0x00F5 #define IM_VK_ALL_CANDIDATES 0x0100 #define IM_VK_PREVIOUS_CANDIDATE 0x0101 #define IM_VK_CODE_INPUT 0x0102 #define IM_VK_JAPANESE_KATAKANA 0x0103 #define IM_VK_JAPANESE_HIRAGANA 0x0104 #define IM_VK_JAPANESE_ROMAN 0x0105 #define IM_VK_CUT 0xFFD1 #define IM_VK_COPY 0xFFCD #define IM_VK_PASTE 0xFFCF #define IM_VK_UNDO 0xFFCB #define IM_VK_AGAIN 0xFFC9 #define IM_VK_FIND 0xFFD0 #define IM_VK_PROPS 0xFFCA #define IM_VK_STOP 0xFFC8 #define IM_VK_COMPOSE 0xFF20 #define IM_VK_ALT_GRAPH 0xFF7E #define IM_VK_UNDEFINED 0x0 #include "SunIMMMan.h" #include "SunIMProt.h" #include "SunIMMthd.h" #include "SunIMPriv.h" #include "SunIMCore.h" #include "SunIMPub.h" #endif /* SUNIM_H */