summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-04 17:07:06 -0400
committerPietro Gagliardi <[email protected]>2014-08-04 17:07:06 -0400
commit84297ad7e13d3f10e967358ad10e286e9e193584 (patch)
tree152572455fa8a60143f072dae65465146d995dd8
parent1ba1f475ba1652d57ff569d42ede09944d74f2fb (diff)
Cleaned up Mac OS X Tab code from the previous commit.
-rw-r--r--redo/objc_darwin.h2
-rw-r--r--redo/tab_darwin.go17
-rw-r--r--redo/tab_darwin.m26
3 files changed, 8 insertions, 37 deletions
diff --git a/redo/objc_darwin.h b/redo/objc_darwin.h
index b739f39..28b07e4 100644
--- a/redo/objc_darwin.h
+++ b/redo/objc_darwin.h
@@ -54,7 +54,7 @@ extern id newLabel(void);
extern void moveControl(id, intptr_t, intptr_t, intptr_t, intptr_t);
/* tab_darwin.m */
-extern id newTab(void *);
+extern id newTab(void);
extern void tabAppend(id, char *, id);
/* table_darwin.m */
diff --git a/redo/tab_darwin.go b/redo/tab_darwin.go
index 3a9b338..25b94d0 100644
--- a/redo/tab_darwin.go
+++ b/redo/tab_darwin.go
@@ -15,9 +15,9 @@ type tab struct {
}
func newTab() Tab {
- t := new(tab)
- t._id = C.newTab(unsafe.Pointer(t))
- return t
+ return &tab{
+ _id: C.newTab(),
+ }
}
func (t *tab) Append(name string, control Control) {
@@ -28,15 +28,6 @@ func (t *tab) Append(name string, control Control) {
C.tabAppend(t._id, cname, c.view)
}
-//export tabResized
-func tabResized(data unsafe.Pointer, width C.intptr_t, height C.intptr_t) {
-// t := (*tab)(unsafe.Pointer(data))
-// for _, c := range t.tabs {
- // the tab area's coordinate system is localized, so the origin is (0, 0)
-// c.resize(0, 0, int(width), int(height))
-// }
-}
-
func (t *tab) id() C.id {
return t._id
}
@@ -54,7 +45,7 @@ func (t *tab) preferredSize(d *sizing) (width, height int) {
return int(s.width), int(s.height)
}
-// no need to override Control.commitResize() as only prepared the tabbed control; its children will be reallocated when that one is resized
+// no need to override Control.commitResize() as only prepared the tabbed control; its children will be resized when that one is resized (and NSTabView itself will call setFrame: for us)
func (t *tab) commitResize(a *allocation, d *sizing) {
basecommitResize(t, a, d)
}
diff --git a/redo/tab_darwin.m b/redo/tab_darwin.m
index 7697e26..a143934 100644
--- a/redo/tab_darwin.m
+++ b/redo/tab_darwin.m
@@ -7,32 +7,12 @@
#define toNSTabView(x) ((NSTabView *) (x))
#define toNSView(x) ((NSView *) (x))
-@interface goTabView : NSTabView {
-@public
- void *gotab;
-}
-@end
-
-@implementation goTabView
-
-- (void)setFrame:(NSRect)r
-{
- NSRect content;
-
- [super setFrame:r];
- content = [self contentRect];
- tabResized(self->gotab, (intptr_t) content.size.width, (intptr_t) content.size.height);
-}
-
-@end
-
-id newTab(void *gotab)
+id newTab(void)
{
- goTabView *t;
+ NSTabView *t;
- t = [[goTabView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
+ t = [[NSTabView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
setStandardControlFont((id) t); // safe; same selector provided by NSTabView
- t->gotab = gotab;
return (id) t;
}