46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
// 30 july 2014
|
|
|
|
package ui
|
|
|
|
// All Controls embed this structure, which provides the Control interface methods.
|
|
// If a Control needs to override one of these functions, it assigns to the function variables.
|
|
type controldefs struct {
|
|
fsetParent func(p *controlParent)
|
|
fcontainerShow func()
|
|
fcontainerHide func()
|
|
fallocate func(x int, y int, width int, height int, d *sizing) []*allocation
|
|
fpreferredSize func(*sizing) (int, int)
|
|
fcommitResize func(*allocation, *sizing)
|
|
fgetAuxResizeInfo func(*sizing)
|
|
}
|
|
|
|
// There's no newcontroldefs() function; all defaults are set by controlbase.
|
|
|
|
func (w *controldefs) setParent(p *controlParent) {
|
|
w.fsetParent(p)
|
|
}
|
|
|
|
func (w *controldefs) containerShow() {
|
|
w.fcontainerShow()
|
|
}
|
|
|
|
func (w *controldefs) containerHide() {
|
|
w.fcontainerHide()
|
|
}
|
|
|
|
func (w *controldefs) allocate(x int, y int, width int, height int, d *sizing) []*allocation {
|
|
return w.fallocate(x, y, width, height, d)
|
|
}
|
|
|
|
func (w *controldefs) preferredSize(d *sizing) (int, int) {
|
|
return w.fpreferredSize(d)
|
|
}
|
|
|
|
func (w *controldefs) commitResize(c *allocation, d *sizing) {
|
|
w.fcommitResize(c, d)
|
|
}
|
|
|
|
func (w *controldefs) getAuxResizeInfo(d *sizing) {
|
|
w.fgetAuxResizeInfo(d)
|
|
}
|