~eliasnaur/gio

f942db9e25bb35e134be70379a3092f1a5707086 — Pierre.Curto 6 months ago 29740ba
layout: added documentation

Added comment on the use of Dimension.Baseline and Direction.Layout constraint minimum clearing.
Also, renamed the Direction receiver for consistency and removed unnecessary conversions.

Signed-off-by: Pierre.Curto <pierre.curto@gmail.com>
1 files changed, 8 insertions(+), 3 deletions(-)

M layout/layout.go
M layout/layout.go => layout/layout.go +8 -3
@@ 23,6 23,10 @@ type Constraints struct {
}

// Dimensions are the resolved size and baseline for a widget.
//
// Baseline is the distance from the bottom of a widget to the baseline of
// any text it contains (or 0). The purpose is to be able to align text
// that span multiple widgets.
type Dimensions struct {
	Size     image.Point
	Baseline int


@@ 153,7 157,8 @@ func UniformInset(v unit.Value) Inset {
}

// Layout a widget according to the direction.
func (a Direction) Layout(gtx Context, w Widget) Dimensions {
// The widget is called with the context constraints minimum cleared.
func (d Direction) Layout(gtx Context, w Widget) Dimensions {
	macro := op.Record(gtx.Ops)
	cs := gtx.Constraints
	gtx.Constraints.Min = image.Point{}


@@ 167,13 172,13 @@ func (a Direction) Layout(gtx Context, w Widget) Dimensions {
		sz.Y = cs.Min.Y
	}
	var p image.Point
	switch Direction(a) {
	switch d {
	case N, S, Center:
		p.X = (sz.X - dims.Size.X) / 2
	case NE, SE, E:
		p.X = sz.X - dims.Size.X
	}
	switch Direction(a) {
	switch d {
	case W, Center, E:
		p.Y = (sz.Y - dims.Size.Y) / 2
	case SW, S, SE: