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  

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

logo

Autor artykułu: mgr Jerzy Wałaszek

 

SDL2

Interfejs SDL2:

SDL_TextInputEvent

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/CategoryAPI.

SDL_TextInputEvent

Struktura zawiera informację o zdarzeniu wprowadzania tekstu z klawiatury.

Pola danych

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.

Przykładowy kod

// 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.

Uwagi

Struktura SDL_TextInputEvent należy do unii SDL_Event i jest używana do zgłaszania zdarzenia typu SDL_TEXTINPUT. Dostęp do niej uzyskujesz poprzez pole zdarzenia text.

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.

Powiązane enumeracje

Powiązane struktury

Powiązane funkcje

 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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.