From c9a461c52b37156f14944caa085bb794c184e5e3 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Sat, 29 Nov 2025 16:55:43 +0800 Subject: Add sdl-ime demo. --- demos/dev/sdl-ime.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 demos/dev/sdl-ime.c (limited to 'demos/dev/sdl-ime.c') diff --git a/demos/dev/sdl-ime.c b/demos/dev/sdl-ime.c new file mode 100644 index 00000000..0eccfa00 --- /dev/null +++ b/demos/dev/sdl-ime.c @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include + +int main() { + SDL_Window* window; + SDL_Rect area = {0, 0, 1, 1}; + int cursor = 0; + + window = SDL_CreateWindow("", 400, 200, 0); + SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS); + SDL_SetTextInputArea(window, &area, cursor); + SDL_StartTextInput(window); + + SDL_Event e; + while (SDL_WaitEvent(&e)) { + if (e.type == SDL_EVENT_TEXT_INPUT) { + printf("%s: %s\n", "SDL_EVENT_TEXT_INPUT", e.text.text); + fflush(stdout); + } else if (e.type == SDL_EVENT_TEXT_EDITING) { + printf("%s: %s, start %i, length %i\n", "SDL_EVENT_TEXT_EDITING", + e.edit.text, e.edit.start, e.edit.length); + fflush(stdout); + } else if (e.type == SDL_EVENT_TEXT_EDITING_CANDIDATES) { + printf("%s: num_candidates %i, selected %i\n", + "SDL_EVENT_TEXT_EDITING_CANDIDATES", + e.edit_candidates.num_candidates, + e.edit_candidates.selected_candidate); + fflush(stdout); + } else if (e.type == SDL_EVENT_QUIT) { + break; + } + } + + SDL_Quit(); +} -- cgit v1.2.3