From 078b07c858cd48dbce449fbba546264331fdfd85 Mon Sep 17 00:00:00 2001 From: Dagen Brock Date: Sun, 1 May 2016 07:56:02 -0500 Subject: [PATCH] add clipboard support to SDL2 --- src/sdl2_driver.c | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/sdl2_driver.c b/src/sdl2_driver.c index 26cffc8..1f87e7c 100644 --- a/src/sdl2_driver.c +++ b/src/sdl2_driver.c @@ -557,6 +557,33 @@ x_dialog_create_gsport_conf(const char *str) config_write_config_gsplus_file(); } +char *g_clipboard; +size_t g_clipboard_pos; + +void clipboard_paste(void) { + char *clipboard; + if (SDL_HasClipboardText()) { + clipboard = SDL_GetClipboardText(); + if (g_clipboard) { + free(g_clipboard); + g_clipboard_pos = 0; + } + g_clipboard = strdup(clipboard); + free(clipboard); + } +} + +int clipboard_get_char() { + if (!g_clipboard) + return 0; + if (g_clipboard[g_clipboard_pos] == '\n') + g_clipboard_pos++; + if (g_clipboard[g_clipboard_pos] == '\0') + return 0; + return g_clipboard[g_clipboard_pos++] | 0x80; +} + + // Old driver cruft @@ -574,9 +601,8 @@ void x_full_screen(int do_full) { } void x_release_kimage(Kimage* kimage_ptr) { } // OG Addding ratio int x_calc_ratio(float x,float y) { return 1; } -// TODO: Add clipboard support -void clipboard_paste(void) { } -int clipboard_get_char(void) { return 0; } + + void x_set_mask_and_shift(word32 x_mask, word32 *mask_ptr, int *shift_left_ptr, int *shift_right_ptr) { return; } void x_update_color(int col_num, int red, int green, int blue, word32 rgb) { } void x_update_physical_colormap() { }