Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

Do strony głównej I LO w Tarnowie

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

©2020 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2 wg kategorii

Wsparcie Klawiatury

Rozdziały:
     Interfejs SDL2 wg nazw
     Interfejs SDL2 wg kategorii

 

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2. Oryginał znajdziesz pod tym adresem: https://wiki.libsdl.org/APIByCategory.

ZWsparcie Klawiatury

Pliki nagłówkowe: SDL_keyboard.h, SDL_keycode.h, SDL_scancode.h

Wprowadzenie

Ta kategoria zawiera funkcje obsługi wprowadzania danych z klawiatury.

SDL używa dwóch różnych rodzajów wartości do reprezentacji klawisza na klawiaturze - kod matrycowy (ang. scancode) i kod klawisza (ang. keycode).

Wartości SDL_Scancode są używane do reprezentacji fizycznego położenia klawisza na klawiaturze. Wartości tego typu używa się między innymi do przedstawiania klawiszy klawiatury w polu  key.keysym.scancode struktury SDL_Event. Wartości w enumeracji SDL_Scancode opierają się na definicjach podanych w standardzie USB usage page (http://www.usb.org/developers/docs/). Stałe kodów matrycowych używają nazwy symbolu poprzedzonej przez przedrostek SDL_SCANCODE_ (np.: SDL_SCANCODE_SPACE).

Wartości SDL_Keycode są odwzorowane na bieżący układ klawiatury i wiążą się z wartościami SDL_Scancode. Wartości tego typu są używane miedzy innymi do reprezentacji symboli klawiszy w polu key.keysym.sym field struktury SDL_Event. Wartości w enumeracji SDL_Keycode opierają się na wartościach Unicode reprezentujących niezmodyfikowany znak, który zostałby wygenerowany po naciśnięciu klawisza, lub kod matrycowy z ustawionym najstarszym bitem (połączonym alternatywą bitową z 0x40000000) dla tych klawiszy, które nie generują znaków. Stałe kodów znaków używają nazwy symbolu (pisanej małymi znakami dla liter) poprzedzonej prefiksem SDLK_ (np.: SDLK_SPACE).

Specjalnym wyjątkiem są klawisze liczbowe u góry klawiatury, które zawsze są odwzorowane jako SDLK_0, SDLK_1, ..., SDLK_9, bez względu na układ klawiatury.

Podstawowa różnica pomiędzy tymi dwoma wartościami ujawnia się w sytuacjach, gdzie system operacyjny odwzorowuje fizyczne klawisze w różne wirtualne litery. Na przykład, gdy standardowa klawiatura QWERTY jest odwzorowana w układ klawiatury niemieckiej QWERTZ , klawisz "Y" wygeneruje zdarzenie z kodem matrycowym SDL_SCANCODE_Y, lecz z kodem klawisza SDLK_z. Które z tych kodów używać, pozostawione jest do decyzji aplikacji: kody matrycowe są wygodne w sytuacjach, gdzie sterowanie zależy od układu klawiszy (np. klawisze "WASD" jako klawisze strzałek dla lewej ręki), natomiast kody klawiszy nadają się lepiej w sytuacjach, gdzie sterowanie zależy od wprowadzanych znaków  (np. klawisz "I" jako Inventory).

Enumeracje

SDL_Keycode
SDL_Keymod
SDL_Scancode

Struktury

SDL_Keysym

Funkcje

SDL_GetKeyFromName
SDL_GetKeyFromScancode
SDL_GetKeyName
SDL_GetKeyboardFocus
SDL_GetKeyboardState
SDL_GetModState
SDL_GetScancodeFromKey
SDL_GetScancodeFromName
SDL_GetScancodeName
SDL_HasScreenKeyboardSupport
SDL_IsScreenKeyboardShown
SDL_IsTextInputActive
SDL_SetModState
SDL_SetTextInputRect
SDL_StartTextInput
SDL_StopTextInput

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2020 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.