diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-29 16:55:43 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-29 16:55:43 +0800 |
| commit | c9a461c52b37156f14944caa085bb794c184e5e3 (patch) | |
| tree | 139a30173393ccc6e1d1bb0fa64b12bd66192db5 | |
| parent | 0b953f7f33b81491d5f3dd5df36f46d4c00891e4 (diff) | |
| download | cru-c9a461c52b37156f14944caa085bb794c184e5e3.tar.gz cru-c9a461c52b37156f14944caa085bb794c184e5e3.tar.bz2 cru-c9a461c52b37156f14944caa085bb794c184e5e3.zip | |
Add sdl-ime demo.
| -rw-r--r-- | demos/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | demos/dev/sdl-ime.c | 38 | ||||
| -rw-r--r-- | demos/dev/xcb-cairo.cpp (renamed from demos/xcb/cairo-start/main.cpp) | 1 | ||||
| -rw-r--r-- | demos/dev/xcb.cpp (renamed from demos/xcb/start/main.cpp) | 0 | ||||
| -rw-r--r-- | demos/xcb/CMakeLists.txt | 7 | ||||
| -rw-r--r-- | demos/xcb/cairo-start/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | demos/xcb/start/CMakeLists.txt | 2 |
7 files changed, 38 insertions, 19 deletions
diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt index 516ef7ae..a14eee80 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt @@ -6,10 +6,5 @@ add_subdirectory(platform) add_subdirectory(main) add_subdirectory(ScrollView) add_subdirectory(InputMethod) - -if(UNIX AND NOT APPLE AND NOT EMSCRIPTEN) - add_subdirectory(xcb) -endif() - add_subdirectory(parse) 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(); +} diff --git a/demos/xcb/cairo-start/main.cpp b/demos/dev/xcb-cairo.cpp index 331f90d7..97461cd8 100644 --- a/demos/xcb/cairo-start/main.cpp +++ b/demos/dev/xcb-cairo.cpp @@ -3,7 +3,6 @@ #include <unistd.h> #include <xcb/xcb.h> #include <cstdlib> -#include <iostream> int main() { int screen_num; diff --git a/demos/xcb/start/main.cpp b/demos/dev/xcb.cpp index c4e3761e..c4e3761e 100644 --- a/demos/xcb/start/main.cpp +++ b/demos/dev/xcb.cpp diff --git a/demos/xcb/CMakeLists.txt b/demos/xcb/CMakeLists.txt deleted file mode 100644 index 97292467..00000000 --- a/demos/xcb/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -find_library(LIBRARY_XCB xcb REQUIRED) - -add_library(demo-xcb-base INTERFACE) -target_link_libraries(demo-xcb-base INTERFACE ${LIBRARY_XCB}) - -add_subdirectory(start) -add_subdirectory(cairo-start) diff --git a/demos/xcb/cairo-start/CMakeLists.txt b/demos/xcb/cairo-start/CMakeLists.txt deleted file mode 100644 index d08f2c96..00000000 --- a/demos/xcb/cairo-start/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -find_library(LIBRARY_CAIRO cairo REQUIRED) - -add_executable(demo-xcb-cairo-start main.cpp) -target_link_libraries(demo-xcb-cairo-start PUBLIC demo-xcb-base ${LIBRARY_CAIRO}) diff --git a/demos/xcb/start/CMakeLists.txt b/demos/xcb/start/CMakeLists.txt deleted file mode 100644 index 25e37be9..00000000 --- a/demos/xcb/start/CMakeLists.txt +++ /dev/null @@ -1,2 +0,0 @@ -add_executable(demo-xcb-start main.cpp) -target_link_libraries(demo-xcb-start PUBLIC demo-xcb-base) |
