comparison src/video/SDL_sysvideo.h @ 2303:d87417504c75

First pass implementation of new SDL scancode concept, as discussed with Christian Walther. Currently only implemented on Mac OS X for sanity checking purposes.
author Sam Lantinga <slouken@libsdl.org>
date Tue, 05 Feb 2008 07:19:23 +0000
parents 4baee598306d
children 96411dcd2267 56cf872c723a e27bdcc80744
comparison
equal deleted inserted replaced
2302:7ae1c419b626 2303:d87417504c75
255 /* * * */ 255 /* * * */
256 /* Event manager functions 256 /* Event manager functions
257 */ 257 */
258 void (*PumpEvents) (_THIS); 258 void (*PumpEvents) (_THIS);
259 259
260 /* Get the layout key code corresponding to the given physical key code
261 * according to the OS' current keyboard layout.
262 *
263 * - For character keys, this should return the Unicode code point of the
264 * character that is generated when the key is pressed without shift or
265 * any other modifiers.
266 * - For non-character keys, this should return one of the SDLK_* constants
267 * (usually the argument itself since these keys are typically layout-
268 * independent). Make sure that all of these values returned by this
269 * function have a suitable name defined, either the default from
270 * SDL_keynames.h, or one set using SDL_SetKeyName() in VideoInit(). In
271 * particular, if this function can return any of the codes whose default
272 * names start with "SDLK_" (usually, it shouldn't, since these are layout-
273 * dependent character keys), these names should be replaced by proper
274 * user-readable names.
275 * - If there are keys that cannot be adequately described by either a
276 * single Unicode character or an SDLK_* constant, this function may return
277 * a code with SDL_KEY_LAYOUT_SPECIAL_BIT set in the most significant byte
278 * and an arbitrary value in the less significant 3 bytes. The
279 * GetSpecialKeyName() function must then be implemented to take this code
280 * and return a human-readable key name for it.
281 * If the argument is not a physical key code or if translation of the key
282 * code by the OS' keyboard layout fails for any reason, the argument must
283 * be returned unchanged.
284 *
285 * On platforms that don't have the notion of a user-configurable keyboard
286 * layout, this may be left unimplemented. The default implementation of
287 * SDL_GetLayoutKey() then acts as the identity. The note about defining
288 * key names above particularly applies in this case.
289 */
290 SDLKey(*GetLayoutKey) (_THIS, SDLKey physicalKey);
291
292 /* Get a human-readable name for a special layout key code.
293 * This only needs to be implemented if this driver's implementation of
294 * GetLayoutKey() generates such codes (with SDL_KEY_LAYOUT_SPECIAL_BIT
295 * set) - see above.
296 */
297 const char *(*GetSpecialKeyName) (_THIS, SDLKey layoutKey);
298
299 /* * * */ 260 /* * * */
300 /* Data common to all drivers */ 261 /* Data common to all drivers */
301 int num_displays; 262 int num_displays;
302 SDL_VideoDisplay *displays; 263 SDL_VideoDisplay *displays;
303 int current_display; 264 int current_display;