aboutsummaryrefslogtreecommitdiff
path: root/pugl/pugl_internal.h
diff options
context:
space:
mode:
authorHanspeter Portner <dev@open-music-kontrollers.ch>2017-07-05 22:51:49 +0200
committerHanspeter Portner <dev@open-music-kontrollers.ch>2017-07-05 22:51:49 +0200
commit7081c1c1f06c658fb8edb34344e813b135cf7e2b (patch)
tree7379071879b7eeffb3b207911c3a72ede793eb0b /pugl/pugl_internal.h
parentadaf38d0984087ba9b6281dde46749dfb29a2a38 (diff)
downloadsynthpod-7081c1c1f06c658fb8edb34344e813b135cf7e2b.tar.xz
Squashed 'pugl/' changes from adaf38d..0406d71
0406d71 Implement clipboard c977ef2 Implement special key handling on MacOS git-subtree-dir: pugl git-subtree-split: 0406d71d421e141802ca8c085bbd00125a4af961
Diffstat (limited to 'pugl/pugl_internal.h')
-rw-r--r--pugl/pugl_internal.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/pugl/pugl_internal.h b/pugl/pugl_internal.h
index 4a3fc0ca..45084de3 100644
--- a/pugl/pugl_internal.h
+++ b/pugl/pugl_internal.h
@@ -40,6 +40,7 @@ struct PuglViewImpl {
PuglEventFunc eventFunc;
PuglInternals* impl;
+ char* selection;
char* windowClass;
PuglNativeWindow parent;
@@ -239,3 +240,34 @@ puglDispatchEvent(PuglView* view, const PuglEvent* event)
view->eventFunc(view, event);
}
}
+
+static void
+puglClearSelection(PuglView* view)
+{
+ if(view->selection) {
+ free(view->selection);
+ view->selection = NULL;
+ }
+}
+
+static void
+puglSetSelection(PuglView* view, const char *selection, size_t len)
+{
+ puglClearSelection(view);
+
+ if(selection) {
+ view->selection = (char*)malloc(len + 1);
+ if(view->selection) {
+ memcpy(view->selection, selection, len);
+ view->selection[len] = 0;
+ }
+ }
+}
+
+static const char*
+puglGetSelection(PuglView* view, size_t* len)
+{
+ if(len)
+ *len = view->selection ? strlen(view->selection) : 0;
+ return view->selection;
+}