summaryrefslogtreecommitdiff
path: root/prev/tab_darwin.m
diff options
context:
space:
mode:
Diffstat (limited to 'prev/tab_darwin.m')
-rw-r--r--prev/tab_darwin.m40
1 files changed, 40 insertions, 0 deletions
diff --git a/prev/tab_darwin.m b/prev/tab_darwin.m
new file mode 100644
index 0000000..1c2920a
--- /dev/null
+++ b/prev/tab_darwin.m
@@ -0,0 +1,40 @@
+// 25 july 2014
+
+#import "objc_darwin.h"
+#import "_cgo_export.h"
+#import <Cocoa/Cocoa.h>
+
+#define toNSTabView(x) ((NSTabView *) (x))
+#define toNSView(x) ((NSView *) (x))
+
+id newTab(void)
+{
+ NSTabView *t;
+
+ t = [[NSTabView alloc] initWithFrame:NSZeroRect];
+ setStandardControlFont((id) t); // safe; same selector provided by NSTabView
+ return (id) t;
+}
+
+void tabAppend(id t, char *name, id view)
+{
+ NSTabViewItem *i;
+
+ i = [[NSTabViewItem alloc] initWithIdentifier:nil];
+ [i setLabel:[NSString stringWithUTF8String:name]];
+ [i setView:toNSView(view)];
+ [toNSTabView(t) addTabViewItem:i];
+}
+
+struct xsize tabPreferredSize(id control)
+{
+ NSTabView *tv;
+ NSSize s;
+ struct xsize t;
+
+ tv = toNSTabView(control);
+ s = [tv minimumSize];
+ t.width = (intptr_t) s.width;
+ t.height = (intptr_t) s.height;
+ return t;
+}