aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2019-08-17 20:50:20 +0200
committerDavid Robillard <d@drobilla.net>2019-09-07 09:51:48 +0200
commit7162fa4f5656ad7dfe2d6fea02f9f33c5aa1b1cf (patch)
tree0f885354b2d75875003401379d5aaf9aadda226f /test
parent27e43183d89aad98f6000ee187b05547776ae4c2 (diff)
Add clipboard support
Diffstat (limited to 'test')
-rw-r--r--test/pugl_test.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/test/pugl_test.c b/test/pugl_test.c
index ee58cf8..4bd5f80 100644
--- a/test/pugl_test.c
+++ b/test/pugl_test.c
@@ -147,7 +147,7 @@ swapFocus(PuglTestApp* app)
}
static void
-onKeyPress(PuglView* view, const PuglEventKey* event)
+onKeyPress(PuglView* view, const PuglEventKey* event, const char* prefix)
{
PuglTestApp* app = (PuglTestApp*)puglGetHandle(view);
PuglRect frame = puglGetFrame(view);
@@ -156,6 +156,14 @@ onKeyPress(PuglView* view, const PuglEventKey* event)
swapFocus(app);
} else if (event->key == 'q' || event->key == PUGL_KEY_ESCAPE) {
app->quit = 1;
+ } else if (event->state & PUGL_MOD_CTRL && event->key == 'c') {
+ puglSetClipboard(view, NULL, "Pugl test", strlen("Pugl test") + 1);
+ fprintf(stderr, "%sCopy \"Pugl test\"\n", prefix);
+ } else if (event->state & PUGL_MOD_CTRL && event->key == 'v') {
+ const char* type = NULL;
+ size_t len = 0;
+ const char* text = (const char*)puglGetClipboard(view, &type, &len);
+ fprintf(stderr, "%sPaste \"%s\"\n", prefix, text);
} else if (event->state & PUGL_MOD_SHIFT) {
if (event->key == PUGL_KEY_UP) {
frame.height += 10;
@@ -220,7 +228,7 @@ onParentEvent(PuglView* view, const PuglEvent* event)
}
break;
case PUGL_KEY_PRESS:
- onKeyPress(view, &event->key);
+ onKeyPress(view, &event->key, "Parent: ");
break;
case PUGL_MOTION_NOTIFY:
break;
@@ -252,7 +260,7 @@ onEvent(PuglView* view, const PuglEvent* event)
app->quit = 1;
break;
case PUGL_KEY_PRESS:
- onKeyPress(view, &event->key);
+ onKeyPress(view, &event->key, "Child: ");
break;
case PUGL_MOTION_NOTIFY:
app->xAngle = fmodf(app->xAngle - (float)(event->motion.x - app->lastMouseX), 360.0f);