summaryrefslogtreecommitdiff
path: root/container_darwin.m
diff options
context:
space:
mode:
Diffstat (limited to 'container_darwin.m')
-rw-r--r--container_darwin.m28
1 files changed, 21 insertions, 7 deletions
diff --git a/container_darwin.m b/container_darwin.m
index 0a598c6..1dfa7cb 100644
--- a/container_darwin.m
+++ b/container_darwin.m
@@ -21,12 +21,6 @@
@implementation goContainerView
-- (void)setFrameSize:(NSSize)s
-{
- [super setFrameSize:s];
- containerResized(self->gocontainer, (intptr_t) s.width, (intptr_t) s.height);
-}
-
@end
id newContainerView(void *gocontainer)
@@ -40,5 +34,25 @@ id newContainerView(void *gocontainer)
void moveControl(id c, intptr_t x, intptr_t y, intptr_t width, intptr_t height)
{
- [toNSView(c) setFrame:NSMakeRect((CGFloat) x, (CGFloat) y, (CGFloat) width, (CGFloat) height)];
+ NSView *v;
+ NSRect frame;
+
+ frame = NSMakeRect((CGFloat) x, (CGFloat) y, (CGFloat) width, (CGFloat) height);
+ // mac os x coordinate system has (0,0) in the lower-left
+ v = toNSView(c);
+ frame.origin.y = ([[v superview] bounds].size.height - frame.size.height) - frame.origin.y;
+ [v setFrame:frame];
+}
+
+struct xrect containerBounds(id view)
+{
+ NSRect b;
+ struct xrect r;
+
+ b = [toNSView(view) bounds];
+ r.x = (intptr_t) b.origin.x;
+ r.y = (intptr_t) b.origin.y;
+ r.width = (intptr_t) b.size.width;
+ r.height = (intptr_t) b.size.height;
+ return r;
}