Skip to content

Commit

Permalink
clipboard support
Browse files Browse the repository at this point in the history
  • Loading branch information
nesbox committed Mar 2, 2025
1 parent e16bbd1 commit e76d617
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 91 deletions.
9 changes: 3 additions & 6 deletions src/studio/screens/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -4065,19 +4065,16 @@ static void copyFromClipboard(Console* console)
{
if(tic_sys_clipboard_has())
{
const char* clipboard = tic_sys_clipboard_get();
char* clipboard = tic_sys_clipboard_get();

if(clipboard)
{
char* text = strdup(clipboard);

char* dst = text;
char* dst = clipboard;
for(const char* src = clipboard; *src; src++)
if(isprint(*src))
*dst++ = *src;

insertInputText(console, text);
free(text);
insertInputText(console, clipboard);

tic_sys_clipboard_free(clipboard);
}
Expand Down
6 changes: 4 additions & 2 deletions src/studio/studio.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,7 @@ struct Studio
s32 samplerate;
tic_font systemFont;

void *userdata;
};

#if defined(BUILD_EDITORS)
Expand Down Expand Up @@ -408,7 +409,7 @@ void sfx_stop(tic_mem* tic, s32 channel)
char getKeyboardText(Studio* studio)
{
char text;
if(!tic_sys_keyboard_text(&text))
if(!tic_sys_keyboard_text(&text, studio->userdata))
{
tic_mem* tic = studio->tic;
tic80_input* input = &tic->ram->input;
Expand Down Expand Up @@ -2695,7 +2696,7 @@ static bool onEnumModule(const char* name, const char* title, const char* hash,
}
#endif

Studio* studio_create(s32 argc, char **argv, s32 samplerate, tic80_pixel_color_format format, const char* folder, s32 maxscale, tic_layout keyboardLayout)
Studio* studio_create(s32 argc, char **argv, s32 samplerate, tic80_pixel_color_format format, const char* folder, s32 maxscale, tic_layout keyboardLayout, void *userdata)
{
setbuf(stdout, NULL);

Expand Down Expand Up @@ -2751,6 +2752,7 @@ Studio* studio_create(s32 argc, char **argv, s32 samplerate, tic80_pixel_color_f
.bytebattle = {0},
#endif
.tic = tic_core_create(samplerate, format),
.userdata = userdata,
};

{
Expand Down
6 changes: 3 additions & 3 deletions src/studio/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ extern "C" {
void tic_sys_clipboard_set(const char* text);
bool tic_sys_clipboard_has();
char* tic_sys_clipboard_get();
void tic_sys_clipboard_free(const char* text);
void tic_sys_clipboard_free(char* text);
u64 tic_sys_counter_get();
u64 tic_sys_freq_get();
bool tic_sys_fullscreen_get();
Expand All @@ -64,7 +64,7 @@ void tic_sys_title(const char* title);
void tic_sys_open_path(const char* path);
void tic_sys_open_url(const char* path);
void tic_sys_preseed();
bool tic_sys_keyboard_text(char* text);
bool tic_sys_keyboard_text(char* text, void* userdata);
void tic_sys_update_config();
void tic_sys_default_mapping(tic_mapping* mapping);

Expand Down Expand Up @@ -170,7 +170,7 @@ void studio_exit(Studio* studio);
void studio_delete(Studio* studio);
const StudioConfig* studio_config(Studio* studio);

Studio* studio_create(s32 argc, char **argv, s32 samplerate, tic80_pixel_color_format format, const char* appFolder, s32 maxscale, tic_layout keyboardLayout);
Studio* studio_create(s32 argc, char **argv, s32 samplerate, tic80_pixel_color_format format, const char* appFolder, s32 maxscale, tic_layout keyboardLayout, void *userdata);

#ifdef __cplusplus
}
Expand Down
Loading

0 comments on commit e76d617

Please sign in to comment.