layout: replace NewContext with a Queue argument to Context.Reset

We're about to reduce the scope of the Window.Queue by moving it
to FrameEvent. As a consequence, Context can no longer rely on a
Queue constant over its lifetime.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2020-05-03 21:00:52 +02:00
parent d350f82011
commit 289fe02b90
3 changed files with 8 additions and 14 deletions
+2 -8
View File
@@ -29,13 +29,6 @@ type Context struct {
*op.Ops
}
// NewContext returns a Context for an event queue.
func NewContext(q event.Queue) *Context {
return &Context{
queue: q,
}
}
// layout a widget with a set of constraints and return its
// dimensions. The widget dimensions are constrained and the previous
// constraints are restored after layout.
@@ -51,10 +44,11 @@ func ctxLayout(gtx *Context, cs Constraints, w Widget) Dimensions {
// Reset the context. The constraints' minimum and maximum values are
// set to the size.
func (c *Context) Reset(cfg system.Config, size image.Point) {
func (c *Context) Reset(q event.Queue, cfg system.Config, size image.Point) {
c.Constraints = RigidConstraints(size)
c.Dimensions = Dimensions{}
c.cfg = cfg
c.queue = q
if c.Ops == nil {
c.Ops = new(op.Ops)
}
+5 -5
View File
@@ -10,7 +10,7 @@ import (
func ExampleInset() {
gtx := new(layout.Context)
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
// Loose constraints with no minimal size.
gtx.Constraints.Width.Min = 0
gtx.Constraints.Height.Min = 0
@@ -33,7 +33,7 @@ func ExampleInset() {
func ExampleDirection() {
gtx := new(layout.Context)
// Rigid constraints with both minimum and maximum set.
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
layout.Center.Layout(gtx, func() {
// Lay out a 50x50 sized widget.
@@ -50,7 +50,7 @@ func ExampleDirection() {
func ExampleFlex() {
gtx := new(layout.Context)
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
layout.Flex{}.Layout(gtx,
// Rigid 10x10 widget.
@@ -72,7 +72,7 @@ func ExampleFlex() {
func ExampleStack() {
gtx := new(layout.Context)
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
gtx.Constraints.Width.Min = 0
gtx.Constraints.Height.Min = 0
@@ -94,7 +94,7 @@ func ExampleStack() {
func ExampleList() {
gtx := new(layout.Context)
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
// The list is 1e6 elements, but only 5 fit the constraints.
const listLen = 1e6
+1 -1
View File
@@ -9,7 +9,7 @@ import (
func TestStack(t *testing.T) {
var gtx Context
gtx.Reset(nil, image.Point{X: 100, Y: 100})
gtx.Reset(nil, nil, image.Point{X: 100, Y: 100})
gtx.Constraints.Width.Min = 0
gtx.Constraints.Height.Min = 0
exp := image.Point{X: 60, Y: 70}