Back to index

im-sdk  12.3.91
SunIM.h
Go to the documentation of this file.
00001 /*
00002 Copyright 1990-2001 Sun Microsystems, Inc. All Rights Reserved.
00003 
00004 Permission is hereby granted, free of charge, to any person obtaining a
00005 copy of this software and associated documentation files (the
00006 "Software"), to deal in the Software without restriction, including
00007 without limitation the rights to use, copy, modify, merge, publish,
00008 distribute, sublicense, and/or sell copies of the Software, and to
00009 permit persons to whom the Software is furnished to do so, subject to
00010 the following conditions: The above copyright notice and this
00011 permission notice shall be included in all copies or substantial
00012 portions of the Software.
00013 
00014 
00015 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00016 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
00017 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
00018 IN NO EVENT SHALL THE OPEN GROUP OR SUN MICROSYSTEMS, INC. BE LIABLE
00019 FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
00020 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH
00021 THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE EVEN IF
00022 ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH DAMAGES.
00023 
00024 
00025 Except as contained in this notice, the names of The Open Group and/or
00026 Sun Microsystems, Inc. shall not be used in advertising or otherwise to
00027 promote the sale, use or other dealings in this Software without prior
00028 written authorization from The Open Group and/or Sun Microsystems,
00029 Inc., as applicable.
00030 
00031 
00032 X Window System is a trademark of The Open Group
00033 
00034 OSF/1, OSF/Motif and Motif are registered trademarks, and OSF, the OSF
00035 logo, LBX, X Window System, and Xinerama are trademarks of the Open
00036 Group. All other trademarks and registered trademarks mentioned herein
00037 are the property of their respective owners. No right, title or
00038 interest in or to any trademark, service mark, logo or trade name of
00039 Sun Microsystems, Inc. or its licensors is granted.
00040 
00041 */
00042 #ifndef SUNIM_H
00043 #define SUNIM_H
00044 
00045 #include "IMArg.h"
00046 #include "IMProtocolStruct.h"
00047 #include "IMCharSubsets.h"
00048 
00049 typedef struct IMHRN_ {
00050     char *id;               /* id */
00051     UTFCHAR *name;          /* HRN */
00052 }   IMHRN, *IMHRNList;
00053 
00054 typedef struct IMEINFO_ {
00055      Bool enable;
00056      char *ime_id;          /* in ASCII */
00057      UTFCHAR *imename;
00058      UTFCHAR *version;             /* optional */
00059      UTFCHAR *description;  /* optional */
00060      UTFCHAR *author;              /* optional */
00061      UTFCHAR *copyright;    /* optional */
00062 }   IMEInfo;
00063 
00064 
00065 typedef IMHRN IMLEName;
00066 typedef IMHRN IMLocale;
00067 
00068 /*
00069  * IM_VK_ to check keycode of IMKeyListEvent
00070  */
00071 #define       IM_SHIFT_MASK (1 << 0)
00072 #define       IM_CTRL_MASK  (1 << 1)
00073 #define       IM_META_MASK  (1 << 2)
00074 #define       IM_ALT_MASK   (1 << 3)
00075 #define       IM_ALT_GRAPH_MASK    (1 << 5)
00076 #define       IM_BUTTON1_MASK      (1 << 4)
00077 #define       IM_BUTTON2_MASK      ALT_MASK
00078 #define       IM_BUTTON3_MASK      META_MASK
00079 
00080 #define IM_VK_ENTER          '\n'
00081 #define IM_VK_BACK_SPACE     '\b'
00082 #define IM_VK_TAB            '\t'
00083 #define IM_VK_CANCEL         0x03
00084 #define IM_VK_CLEAR          0x0C
00085 #define IM_VK_SHIFT          0x10
00086 #define IM_VK_CONTROL        0x11
00087 #define IM_VK_ALT            0x12
00088 #define IM_VK_PAUSE          0x13
00089 #define IM_VK_CAPS_LOCK      0x14
00090 #define IM_VK_ESCAPE         0x1B
00091 #define IM_VK_SPACE          0x20
00092 #define IM_VK_PAGE_UP        0x21
00093 #define IM_VK_PAGE_DOWN      0x22
00094 #define IM_VK_END            0x23
00095 #define IM_VK_HOME           0x24
00096 #define IM_VK_LEFT           0x25
00097 #define IM_VK_UP             0x26
00098 #define IM_VK_RIGHT          0x27
00099 #define IM_VK_DOWN           0x28
00100 #define IM_VK_COMMA          0x2C
00101 #define IM_VK_MINUS          0x2D
00102 #define IM_VK_PERIOD         0x2E
00103 #define IM_VK_SLASH          0x2F
00104 #define IM_VK_0              0x30
00105 #define IM_VK_1              0x31
00106 #define IM_VK_2              0x32
00107 #define IM_VK_3              0x33
00108 #define IM_VK_4              0x34
00109 #define IM_VK_5              0x35
00110 #define IM_VK_6              0x36
00111 #define IM_VK_7              0x37
00112 #define IM_VK_8              0x38
00113 #define IM_VK_9              0x39
00114 #define IM_VK_SEMICOLON      0x3B
00115 #define IM_VK_EQUALS         0x3D
00116 #define IM_VK_A              0x41
00117 #define IM_VK_B              0x42
00118 #define IM_VK_C              0x43
00119 #define IM_VK_D              0x44
00120 #define IM_VK_E              0x45
00121 #define IM_VK_F              0x46
00122 #define IM_VK_G              0x47
00123 #define IM_VK_H              0x48
00124 #define IM_VK_I              0x49
00125 #define IM_VK_J              0x4A
00126 #define IM_VK_K              0x4B
00127 #define IM_VK_L              0x4C
00128 #define IM_VK_M              0x4D
00129 #define IM_VK_N              0x4E
00130 #define IM_VK_O              0x4F
00131 #define IM_VK_P              0x50
00132 #define IM_VK_Q              0x51
00133 #define IM_VK_R              0x52
00134 #define IM_VK_S              0x53
00135 #define IM_VK_T              0x54
00136 #define IM_VK_U              0x55
00137 #define IM_VK_V              0x56
00138 #define IM_VK_W              0x57
00139 #define IM_VK_X              0x58
00140 #define IM_VK_Y              0x59
00141 #define IM_VK_Z              0x5A
00142 #define IM_VK_OPEN_BRACKET   0x5B
00143 #define IM_VK_BACK_SLASH     0x5C
00144 #define IM_VK_CLOSE_BRACKET  0x5D
00145 #define IM_VK_NUMPAD0        0x60
00146 #define IM_VK_NUMPAD1        0x61
00147 #define IM_VK_NUMPAD2        0x62
00148 #define IM_VK_NUMPAD3        0x63
00149 #define IM_VK_NUMPAD4        0x64
00150 #define IM_VK_NUMPAD5        0x65
00151 #define IM_VK_NUMPAD6        0x66
00152 #define IM_VK_NUMPAD7        0x67
00153 #define IM_VK_NUMPAD8        0x68
00154 #define IM_VK_NUMPAD9        0x69
00155 #define IM_VK_MULTIPLY       0x6A
00156 #define IM_VK_ADD            0x6B
00157 #define IM_VK_SEPARATER      0x6C
00158 #define IM_VK_SUBTRACT       0x6D
00159 #define IM_VK_DECIMAL        0x6E
00160 #define IM_VK_DIVIDE         0x6F
00161 #define IM_VK_DELETE         0x7F /* ASCII DEL */
00162 #define IM_VK_NUM_LOCK       0x90
00163 #define IM_VK_SCROLL_LOCK    0x91
00164 #define IM_VK_F1             0x70
00165 #define IM_VK_F2             0x71
00166 #define IM_VK_F3             0x72
00167 #define IM_VK_F4             0x73
00168 #define IM_VK_F5             0x74
00169 #define IM_VK_F6             0x75
00170 #define IM_VK_F7             0x76
00171 #define IM_VK_F8             0x77
00172 #define IM_VK_F9             0x78
00173 #define IM_VK_F10            0x79
00174 #define IM_VK_F11            0x7A
00175 #define IM_VK_F12            0x7B
00176 #define IM_VK_F13            0xF000
00177 #define IM_VK_F14            0xF001
00178 #define IM_VK_F15            0xF002
00179 #define IM_VK_F16            0xF003
00180 #define IM_VK_F17            0xF004
00181 #define IM_VK_F18            0xF005
00182 #define IM_VK_F19            0xF006
00183 #define IM_VK_F20            0xF007
00184 #define IM_VK_F21            0xF008
00185 #define IM_VK_F22            0xF009
00186 #define IM_VK_F23            0xF00A
00187 #define IM_VK_F24            0xF00B
00188 #define IM_VK_PRINTSCREEN    0x9A
00189 #define IM_VK_INSERT         0x9B
00190 #define IM_VK_HELP           0x9C
00191 #define IM_VK_META           0x9D
00192 #define IM_VK_BACK_QUOTE     0xC0
00193 #define IM_VK_QUOTE          0xDE
00194 #define IM_VK_KP_UP          0xE0
00195 #define IM_VK_KP_DOWN        0xE1
00196 #define IM_VK_KP_LEFT        0xE2
00197 #define IM_VK_KP_RIGHT       0xE3
00198 #define IM_VK_DEAD_GRAVE               0x80
00199 #define IM_VK_DEAD_ACUTE               0x81
00200 #define IM_VK_DEAD_CIRCUMFLEX          0x82
00201 #define IM_VK_DEAD_TILDE               0x83
00202 #define IM_VK_DEAD_MACRON              0x84
00203 #define IM_VK_DEAD_BREVE               0x85
00204 #define IM_VK_DEAD_ABOVEDOT            0x86
00205 #define IM_VK_DEAD_DIAERESIS           0x87
00206 #define IM_VK_DEAD_ABOVERING           0x88
00207 #define IM_VK_DEAD_DOUBLEACUTE         0x89
00208 #define IM_VK_DEAD_CARON               0x8a
00209 #define IM_VK_DEAD_CEDILLA             0x8b
00210 #define IM_VK_DEAD_OGONEK              0x8c
00211 #define IM_VK_DEAD_IOTA                0x8d
00212 #define IM_VK_DEAD_VOICED_SOUND        0x8e
00213 #define IM_VK_DEAD_SEMIVOICED_SOUND    0x8f
00214 #define IM_VK_AMPERSAND                0x96
00215 #define IM_VK_ASTERISK                 0x97
00216 #define IM_VK_QUOTEDBL                 0x98
00217 #define IM_VK_LESS                     0x99
00218 #define IM_VK_GREATER                  0xa0
00219 #define IM_VK_BRACELEFT                0xa1
00220 #define IM_VK_BRACERIGHT               0xa2
00221 #define IM_VK_AT                       0x0200
00222 #define IM_VK_COLON                    0x0201
00223 #define IM_VK_CIRCUMFLEX               0x0202
00224 #define IM_VK_DOLLAR                   0x0203
00225 #define IM_VK_EURO_SIGN                0x0204
00226 #define IM_VK_EXCLAMATION_MARK         0x0205
00227 #define IM_VK_INVERTED_EXCLAMATION_MARK 0x0206
00228 #define IM_VK_LEFT_PARENTHESIS         0x0207
00229 #define IM_VK_NUMBER_SIGN              0x0208
00230 #define IM_VK_PLUS                     0x0209
00231 #define IM_VK_RIGHT_PARENTHESIS        0x020A
00232 #define IM_VK_UNDERSCORE               0x020B
00233 #define IM_VK_FINAL                    0x0018
00234 #define IM_VK_CONVERT                  0x001C
00235 #define IM_VK_NONCONVERT               0x001D
00236 #define IM_VK_ACCEPT                   0x001E
00237 #define IM_VK_MODECHANGE               0x001F
00238 #define IM_VK_KANA                     0x0015
00239 #define IM_VK_HANGUL               0x0015
00240 #define IM_VK_JUNJA                0x0017
00241 #define IM_VK_FINAL                    0x0018
00242 #define IM_VK_KANJI                    0x0019
00243 #define IM_VK_HANJA                    0x0019
00244 #define IM_VK_ALPHANUMERIC             0x00F0
00245 #define IM_VK_KATAKANA                 0x00F1
00246 #define IM_VK_HIRAGANA                 0x00F2
00247 #define IM_VK_FULL_WIDTH               0x00F3
00248 #define IM_VK_HALF_WIDTH               0x00F4
00249 #define IM_VK_ROMAN_CHARACTERS         0x00F5
00250 #define IM_VK_ALL_CANDIDATES           0x0100
00251 #define IM_VK_PREVIOUS_CANDIDATE       0x0101
00252 #define IM_VK_CODE_INPUT               0x0102
00253 #define IM_VK_JAPANESE_KATAKANA        0x0103
00254 #define IM_VK_JAPANESE_HIRAGANA        0x0104
00255 #define IM_VK_JAPANESE_ROMAN           0x0105
00256 #define IM_VK_CUT                      0xFFD1
00257 #define IM_VK_COPY                     0xFFCD
00258 #define IM_VK_PASTE                    0xFFCF
00259 #define IM_VK_UNDO                     0xFFCB
00260 #define IM_VK_AGAIN                    0xFFC9
00261 #define IM_VK_FIND                     0xFFD0
00262 #define IM_VK_PROPS                    0xFFCA
00263 #define IM_VK_STOP                     0xFFC8
00264 #define IM_VK_COMPOSE                  0xFF20
00265 #define IM_VK_ALT_GRAPH                0xFF7E
00266 #define IM_VK_UNDEFINED                0x0
00267 
00268 #include "SunIMMMan.h"
00269 #include "SunIMProt.h"
00270 #include "SunIMMthd.h"
00271 #include "SunIMPriv.h"
00272 #include "SunIMCore.h"
00273 #include "SunIMPub.h"
00274 
00275 #endif /* SUNIM_H */