45 lines
1020 B
Go
45 lines
1020 B
Go
// 1 march 2014
|
|
|
|
package ui
|
|
|
|
// #include "objc_darwin.h"
|
|
import "C"
|
|
|
|
type sizing struct {
|
|
sizingbase
|
|
|
|
// for size calculations
|
|
// nothing for mac
|
|
|
|
// for the actual resizing
|
|
neighborAlign C.struct_xalignment
|
|
}
|
|
|
|
// THIS IS A GUESS. TODO.
|
|
// The only indication that this is remotely correct is the Auto Layout Guide implying that 12 pixels is the "Aqua space".
|
|
const (
|
|
macXMargin = 12
|
|
macYMargin = 12
|
|
macXPadding = 12
|
|
macYPadding = 12
|
|
)
|
|
|
|
func (s *sizer) beginResize() (d *sizing) {
|
|
d = new(sizing)
|
|
if spaced {
|
|
d.xmargin = macXMargin
|
|
d.ymargin = macYMargin
|
|
d.xpadding = macXPadding
|
|
d.ypadding = macYPadding
|
|
}
|
|
return d
|
|
}
|
|
|
|
func (s *sizer) translateAllocationCoords(allocations []*allocation, winwidth, winheight int) {
|
|
for _, a := range allocations {
|
|
// winheight - y because (0,0) is the bottom-left corner of the window and not the top-left corner
|
|
// (winheight - y) - height because (x, y) is the bottom-left corner of the control and not the top-left
|
|
a.y = (winheight - a.y) - a.height
|
|
}
|
|
}
|