aboutsummaryrefslogtreecommitdiff
path: root/demos/dev/sdl-ime.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/dev/sdl-ime.c')
-rw-r--r--demos/dev/sdl-ime.c38
1 files changed, 38 insertions, 0 deletions
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 <SDL3/SDL_events.h>
+#include <SDL3/SDL_init.h>
+#include <SDL3/SDL_timer.h>
+#include <SDL3/SDL_video.h>
+#include <stdio.h>
+
+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();
+}