ui/cocoa/toolkit.m

changeset 26
a137277f9173
parent 25
78ae3efe463f
child 29
c96169444d88
--- a/ui/cocoa/toolkit.m	Sat Apr 05 13:02:37 2014 +0200
+++ b/ui/cocoa/toolkit.m	Sat Apr 05 15:53:41 2014 +0200
@@ -86,6 +86,34 @@
 }
 
 
+void ui_clipboard_set(char *str) {
+    NSString *string = [[NSString alloc] initWithUTF8String:str];
+    NSPasteboard * pasteBoard = [NSPasteboard generalPasteboard];
+    [pasteBoard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
+    [pasteBoard setString:string forType:NSStringPboardType];
+}
+
+char* ui_clipboard_get() {
+    NSPasteboard * pasteBoard = [NSPasteboard generalPasteboard];
+    NSArray *classes = [[NSArray alloc] initWithObjects:[NSString class], nil];
+    NSDictionary *options = [NSDictionary dictionary];
+    NSArray *data = [pasteBoard readObjectsForClasses:classes options:options];
+    
+    if(data != nil) {
+        NSString *str = [data componentsJoinedByString: @""];
+        
+        // copy C string
+        size_t length = [str lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
+        const char *cstr = [str UTF8String];
+        char *value = malloc(length + 1);
+        memcpy(value, cstr, length);
+        value[length] = '\0';
+        
+        return value;
+    } else {
+        return NULL;
+    }
+}
 
 @implementation EventWrapper
 

mercurial