src/video/SDL_sysvideo.h
changeset 2268 4baee598306d
parent 2245 989fb86ad1ec
child 2303 d87417504c75
equal deleted inserted replaced
2267:c785543d1843 2268:4baee598306d
    23 
    23 
    24 #ifndef _SDL_sysvideo_h
    24 #ifndef _SDL_sysvideo_h
    25 #define _SDL_sysvideo_h
    25 #define _SDL_sysvideo_h
    26 
    26 
    27 #include "SDL_mouse.h"
    27 #include "SDL_mouse.h"
       
    28 #include "SDL_keysym.h"
    28 
    29 
    29 /* The SDL video driver */
    30 /* The SDL video driver */
    30 
    31 
    31 typedef struct SDL_Window SDL_Window;
    32 typedef struct SDL_Window SDL_Window;
    32 typedef struct SDL_Texture SDL_Texture;
    33 typedef struct SDL_Texture SDL_Texture;
   254     /* * * */
   255     /* * * */
   255     /* Event manager functions
   256     /* Event manager functions
   256      */
   257      */
   257     void (*PumpEvents) (_THIS);
   258     void (*PumpEvents) (_THIS);
   258 
   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 
   259     /* * * */
   299     /* * * */
   260     /* Data common to all drivers */
   300     /* Data common to all drivers */
   261     int num_displays;
   301     int num_displays;
   262     SDL_VideoDisplay *displays;
   302     SDL_VideoDisplay *displays;
   263     int current_display;
   303     int current_display;