summaryrefslogtreecommitdiff
path: root/container_darwin.go
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-10-27 23:57:54 -0400
committerPietro Gagliardi <[email protected]>2014-10-27 23:57:54 -0400
commit6b27bd732743948e0002abe4d452212fad8ac045 (patch)
tree65ae76cefa98fb72adbcb48fd4432b967afb20bd /container_darwin.go
parenta2cbccd41e1ed2f3f8cf832594d27343278000b7 (diff)
Restructured container on Mac OS X likewise. Still have to test.
Diffstat (limited to 'container_darwin.go')
-rw-r--r--container_darwin.go24
1 files changed, 12 insertions, 12 deletions
diff --git a/container_darwin.go b/container_darwin.go
index 58b7777..539ed57 100644
--- a/container_darwin.go
+++ b/container_darwin.go
@@ -10,7 +10,9 @@ import (
import "C"
type container struct {
- *controlSingleObject
+ id C.id
+ resize func(x int, y int, width int, height int, d *sizing)
+ margined bool
}
type sizing struct {
@@ -25,7 +27,7 @@ type sizing struct {
func newContainer() *container {
c := new(container)
- c.controlSingleObject = newControlSingleObject(C.newContainerView(unsafe.Pointer(c)))
+ c.id = C.newContainerView(unsafe.Pointer(c))
return c
}
@@ -33,21 +35,19 @@ func (c *container) parent() *controlParent {
return &controlParent{c.id}
}
-func (c *container) allocation(margined bool) C.struct_xrect {
+//export containerResized
+func containerResized(data unsafe.Pointer) {
+ c := (*container)(data)
+ d := beginResize()
+ // TODO make this a parameter
b := C.containerBounds(c.id)
- if margined {
+ if c.margined {
b.x += C.intptr_t(macXMargin)
b.y += C.intptr_t(macYMargin)
b.width -= C.intptr_t(macXMargin) * 2
b.height -= C.intptr_t(macYMargin) * 2
}
- return b
-}
-
-// we can just return these values as is
-func (c *container) bounds(d *sizing) (int, int, int, int) {
- b := C.containerBounds(c.id)
- return int(b.x), int(b.y), int(b.width), int(b.height)
+ c.resize(int(b.x), int(b.y), int(b.width), int(b.height), d)
}
// These are based on measurements from Interface Builder.
@@ -58,7 +58,7 @@ const (
macYPadding = 8
)
-func (w *window) beginResize() (d *sizing) {
+func beginResize() (d *sizing) {
d = new(sizing)
d.xpadding = macXPadding
d.ypadding = macYPadding