Commit Graph

6 Commits

Author SHA1 Message Date
Elias Naur ce9bcee62b ui/layout: introduce Context
Context keeps the current Constraints and Dimensions so the layout
function scopes don't have to.

With

	ctx := new(layout.Context)

a label with margins and alignment goes from

	return al.Layout(ops, cs, func(cs layout.Constraints) layout.Dimensions {
		in := layout.Inset{...}
		return in.Layout(c, ops, cs, func(cs layout.Constraints) layout.Dimensions {
			return text.Label{...}.Layout(ops, cs)
		})
	})

to

	al.Layout(ops, ctx, func() {
		in := layout.Inset{...}
		in.Layout(c, ops, ctx, func() {
		       text.Label{...}.Layout(ops, ctx)
		})
	})

It was a difficult trade-off between the verbose functional approach
and the shorter but more complex Context.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-09-24 19:06:07 +02:00
Elias Naur 3817b19bbe ui/layout: update documentation to reflect the function scope changes
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-09-18 22:57:14 +02:00
Kenshi Kamata 82b0563c8b README, ui/layout: fix typos
Signed-off-by: Kenshi Kamata <kenshi.kamata@gmail.com>
2019-09-03 19:26:00 +02:00
Elias Naur 12089ea62a all: rename layout.Dimens to layout.Dimensions
Dimens is only 4 characters shorter and not worth the abbreviation.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-08-30 15:00:17 +02:00
Elias Naur a296903c76 ui: documentation fixes
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-08-11 19:50:03 +02:00
Elias Naur 3c941e938f ui/layout: expand package documentation
Signed-off-by: Elias Naur <mail@eliasnaur.com>
2019-08-10 17:56:16 +02:00