Began cleaning up the sizing/container/control stuff by changing container to sizing.

This commit is contained in:
Pietro Gagliardi 2014-08-01 23:29:19 -04:00
parent 9117da1405
commit e9b2f9f478
1 changed files with 6 additions and 4 deletions

View File

@ -25,16 +25,18 @@ type controlSizing interface {
getAuxResizeInfo(*sizing) getAuxResizeInfo(*sizing)
} }
// on Windows, this is only embedded by window, as all other containers cannot have their own children; beginResize() points to an instance method literal (TODO get correct term) from window // A sizer hosts a Control and resizes that Control based on changes in size to the parent Window.
// on GTK+ and Mac OS X, one is embedded by window and all containers; beginResize() points to a global function (TODO NOT GOOD; ideally the sizing data should be passed across size-allocate requests) // sizer is used by Window, Tab, and [TODO implement] Group to contain and control their respective controls.
type container struct { // Window is the beginning of the resize chain; resizes happen on the system side.
// Tab and Group are Controls and thus implement controlSizing; they should call their internal sizers's resize() method in their own commitResize().
type sizer struct {
child Control child Control
} }
// set to true to apply spacing to all windows // set to true to apply spacing to all windows
var spaced bool = false var spaced bool = false
func (c *container) resize(x, y, width, height int) { func (c *sizer) resize(x, y, width, height int) {
if c.child == nil { // no children; nothing to do if c.child == nil { // no children; nothing to do
return return
} }