Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2024 mgr Jerzy Wałaszek
|
SDL_TextInputEvent
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Struktura zawiera informację o zdarzeniu wprowadzania tekstu z klawiatury.
Uint32 | type | SDL_TEXTINPUT. |
Uint32 | timestamp | czas zdarzenia. |
Uint32 | windowID | okno ze skupieniem klawiaturowym, jeśli istnieje. |
char[32] | text | tekst wejściowy zakończony zerem kodowany w UTF-8. |
// Zamiana 1024 ramek próbek dźwiękowych przy częstotliwości 48000Hz z float32 na int16. SDL_AudioCVT cvt; SDL_BuildAudioCVT(&cvt, AUDIO_F32, 2, 48000, AUDIO_S16, 2, 48000); SDL_assert(cvt.needed); // To zawsze jest potrzebne. cvt.len = 1024 * 2 * 4; // 1024 ramek sampli dźwiękowych stereo typu float32. cvt.buf = (Uint8 *) SDL_malloc(cvt.len * cvt.len_mult); // wczytaj swoje dane float32 do cvt.buf. SDL_ConvertAudio(&cvt); // cvt.buf zawiera cvt.len_cvt bajtów skonwertowanych danych. |
Oto samouczek (język angielski).
Szczegółowe wyjaśnienie (z listy mailingowej SDL, autor Jiang Jiang <gzjjgod at gmail.com>):
W typowej aplikacji GUI system operacyjny będzie odpowiedzialny za przekazywanie ci wprowadzanego teksu, ty zaś możesz wybrać sposób i miejsce jego prezentacji w swoim interfejsie użytkownika. Powiedzmy, że za pomocą pewnej metody odczytu wpisałem "abc" i otrzymałem znak Unicode "X". Aplikacja SDL najpierw otrzyma trzy zdarzenia typu SDL_TEXTEDITING z tekstami 'a', 'ab' i 'abc', a na końcu otrzyma zdarzenie SDL_TEXTINPUT ze znakiem Unicode 'X'. Podczas tego procesu komponowania tekstu użytkownik może naciskać dowolne klawisze, np. funkcyjne, Backspace, a zarówno aplikacja SDL jak i systemowa metoda wprowadzania tekstu otrzymają te klawisze i zdecydują, czy je obsłużyć, czy nie obsłużyć. Na przykład, gdy użytkownik naciśnie Backspace, to większość metod wprowadzania usunie ostatni znak we wprowadzanym tekście, a aplikacja SDL otrzyma nowe zdarzenie SDL_TEXTEDITING (powiedzmy, że użytkownik wpisał a, b, Backspace, c, to aplikacja otrzyma 4 zdarzenia zawierające teksty 'a', 'ab', 'a', 'ac'). [[SDL_SetTextInputRect]]() daje systemowi operacyjnemu wskazówkę, gdzie należy pokazać listę wprowadzanych znaków, ponieważ system operacyjny nie wie, gdzie chcesz wyświetlać tekst otrzymywany poprzez zdarzenie SDL_TEXTEDITING. |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.