Mercurial > sdl-ios-xcode
comparison src/video/x11/SDL_x11dyn.c @ 2325:c7bcf84ba1b9
Next version of internationalized input for X11. On my machine (famous last words :-) with a US English keyboard and locale I can compose ` and e and get a text
input event with the character รจ. You still get the keypress keyrelease events for the individual keys that go into composing the character.
author | Bob Pendleton <bob@pendleton.com> |
---|---|
date | Fri, 07 Mar 2008 20:54:11 +0000 |
parents | 2c835d58faad |
children | 6fc50bdd88c0 |
comparison
equal
deleted
inserted
replaced
2324:3202e4826c57 | 2325:c7bcf84ba1b9 |
---|---|
96 #endif /* SDL_VIDEO_DRIVER_X11_DYNAMIC */ | 96 #endif /* SDL_VIDEO_DRIVER_X11_DYNAMIC */ |
97 | 97 |
98 /* Annoying varargs entry point... */ | 98 /* Annoying varargs entry point... */ |
99 #ifdef X_HAVE_UTF8_STRING | 99 #ifdef X_HAVE_UTF8_STRING |
100 XIC(*pXCreateIC) (XIM,...) = NULL; | 100 XIC(*pXCreateIC) (XIM,...) = NULL; |
101 char *(*pXGetICValues) (XIC, ...) = NULL; | |
101 #endif | 102 #endif |
102 | 103 |
103 /* These SDL_X11_HAVE_* flags are here whether you have dynamic X11 or not. */ | 104 /* These SDL_X11_HAVE_* flags are here whether you have dynamic X11 or not. */ |
104 #define SDL_X11_MODULE(modname) int SDL_X11_HAVE_##modname = 1; | 105 #define SDL_X11_MODULE(modname) int SDL_X11_HAVE_##modname = 1; |
105 #define SDL_X11_SYM(rc,fn,params,args,ret) | 106 #define SDL_X11_SYM(rc,fn,params,args,ret) |
126 #undef SDL_X11_MODULE | 127 #undef SDL_X11_MODULE |
127 #undef SDL_X11_SYM | 128 #undef SDL_X11_SYM |
128 | 129 |
129 #ifdef X_HAVE_UTF8_STRING | 130 #ifdef X_HAVE_UTF8_STRING |
130 pXCreateIC = NULL; | 131 pXCreateIC = NULL; |
132 pXGetICValues = NULL; | |
131 #endif | 133 #endif |
132 | 134 |
133 for (i = 0; i < SDL_TABLESIZE(x11libs); i++) { | 135 for (i = 0; i < SDL_TABLESIZE(x11libs); i++) { |
134 if (x11libs[i].lib != NULL) { | 136 if (x11libs[i].lib != NULL) { |
135 SDL_UnloadObject(x11libs[i].lib); | 137 SDL_UnloadObject(x11libs[i].lib); |
163 #undef SDL_X11_MODULE | 165 #undef SDL_X11_MODULE |
164 #undef SDL_X11_SYM | 166 #undef SDL_X11_SYM |
165 | 167 |
166 #ifdef X_HAVE_UTF8_STRING | 168 #ifdef X_HAVE_UTF8_STRING |
167 X11_GetSym("XCreateIC", &SDL_X11_HAVE_UTF8, (void **) &pXCreateIC); | 169 X11_GetSym("XCreateIC", &SDL_X11_HAVE_UTF8, (void **) &pXCreateIC); |
170 X11_GetSym("XGetICValues", &SDL_X11_HAVE_UTF8, | |
171 (void **) &pXGetICValues); | |
168 #endif | 172 #endif |
169 | 173 |
170 if (SDL_X11_HAVE_BASEXLIB) { | 174 if (SDL_X11_HAVE_BASEXLIB) { |
171 /* all required symbols loaded. */ | 175 /* all required symbols loaded. */ |
172 SDL_ClearError(); | 176 SDL_ClearError(); |
177 } | 181 } |
178 } | 182 } |
179 #else | 183 #else |
180 #ifdef X_HAVE_UTF8_STRING | 184 #ifdef X_HAVE_UTF8_STRING |
181 pXCreateIC = XCreateIC; | 185 pXCreateIC = XCreateIC; |
186 pXGetICValues = XGetICValues; | |
182 #endif | 187 #endif |
183 #endif | 188 #endif |
184 | 189 |
185 return rc; | 190 return rc; |
186 } | 191 } |