Changed Length.Zero to return value instead of Length.

Spacing shorthand methods now returns Spacing object instead of Control interface.
This commit is contained in:
Sander Schobers 2019-04-10 21:26:57 +02:00
parent 04779d6588
commit eb0e8322ef
2 changed files with 11 additions and 11 deletions

View File

@ -13,11 +13,11 @@ func (l *Length) Value() float32 {
return l.float32 return l.float32
} }
func (l *Length) Zero(value float32) *Length { func (l *Length) Zero(value float32) float32 {
if l == nil { if l == nil {
return &Length{value} return value
} }
return l return l.Value()
} }
func Fixed(l float32) *Length { return &Length{l} } func Fixed(l float32) *Length { return &Length{l} }

View File

@ -70,7 +70,7 @@ func addMargin(bounds geom.PointF32, size geom.PointF32, margin SideLengths) geo
func (s *Spacing) Arrange(ctx Context, bounds geom.RectangleF32, offset geom.PointF32) { func (s *Spacing) Arrange(ctx Context, bounds geom.RectangleF32, offset geom.PointF32) {
var size = s.Proxy.DesiredSize(ctx) var size = s.Proxy.DesiredSize(ctx)
var w, h = s.Width.Zero(size.X), s.Height.Zero(size.Y) var w, h = s.Width.Zero(size.X), s.Height.Zero(size.Y)
var content = addMargin(geom.PtF32(bounds.Dx(), bounds.Dy()), geom.PtF32(w.Value(), h.Value()), s.Margin).Add(bounds.Min) var content = addMargin(geom.PtF32(bounds.Dx(), bounds.Dy()), geom.PtF32(w, h), s.Margin).Add(bounds.Min)
s.Proxy.Arrange(ctx, content, offset) s.Proxy.Arrange(ctx, content, offset)
} }
@ -85,8 +85,8 @@ func (s *Spacing) DesiredSize(ctx Context) geom.PointF32 {
var size = s.Proxy.DesiredSize(ctx) var size = s.Proxy.DesiredSize(ctx)
var w, h = s.Width.Zero(size.X), s.Height.Zero(size.Y) var w, h = s.Width.Zero(size.X), s.Height.Zero(size.Y)
return geom.PtF32( return geom.PtF32(
s.Margin.Left.Value()+w.Value()+s.Margin.Right.Value(), s.Margin.Left.Value()+w+s.Margin.Right.Value(),
s.Margin.Top.Value()+h.Value()+s.Margin.Bottom.Value()) s.Margin.Top.Value()+h+s.Margin.Bottom.Value())
} }
func (s *Spacing) SetSize(w, h float32) { func (s *Spacing) SetSize(w, h float32) {
@ -95,7 +95,7 @@ func (s *Spacing) SetSize(w, h float32) {
} }
// FixedSize wraps the Control c to fill exactly the space specified. // FixedSize wraps the Control c to fill exactly the space specified.
func FixedSize(c Control, w, h float32) Control { func FixedSize(c Control, w, h float32) *Spacing {
return BuildSpacing(c, func(s *Spacing) { return BuildSpacing(c, func(s *Spacing) {
s.Width = Fixed(w) s.Width = Fixed(w)
s.Height = Fixed(h) s.Height = Fixed(h)
@ -103,7 +103,7 @@ func FixedSize(c Control, w, h float32) Control {
} }
// FixedHeight wraps the Control c to fill exactly the height specified. Width is taken from Control c. // FixedHeight wraps the Control c to fill exactly the height specified. Width is taken from Control c.
func FixedHeight(c Control, h float32) Control { func FixedHeight(c Control, h float32) *Spacing {
return BuildSpacing(c, func(s *Spacing) { return BuildSpacing(c, func(s *Spacing) {
s.Height = Fixed(h) s.Height = Fixed(h)
}) })
@ -148,10 +148,10 @@ func stretch(c Control, w, h bool) *Spacing {
} }
// Stretch wraps the Control c to stretch in both directions. // Stretch wraps the Control c to stretch in both directions.
func Stretch(c Control) Control { return stretch(c, true, true) } func Stretch(c Control) *Spacing { return stretch(c, true, true) }
// StretchHeight wraps the Control c to stretch vertically. Width is taken from Control c. // StretchHeight wraps the Control c to stretch vertically. Width is taken from Control c.
func StretchHeight(c Control) Control { return stretch(c, false, true) } func StretchHeight(c Control) *Spacing { return stretch(c, false, true) }
// StretchWidth wraps the Control c to stretch horizontally. Height is taken from Control c. // StretchWidth wraps the Control c to stretch horizontally. Height is taken from Control c.
func StretchWidth(c Control) Control { return stretch(c, true, false) } func StretchWidth(c Control) *Spacing { return stretch(c, true, false) }