Skip to content

Instantly share code, notes, and snippets.

@jzs

jzs/example.go Secret

Last active January 16, 2020 10:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jzs/addaa1ca2a280c33f10e82660ee3037b to your computer and use it in GitHub Desktop.
Save jzs/addaa1ca2a280c33f10e82660ee3037b to your computer and use it in GitHub Desktop.
Not properly centering
package main
import (
"image"
"image/color"
"gioui.org/app"
"gioui.org/f32"
"gioui.org/font/gofont"
"gioui.org/io/system"
"gioui.org/layout"
"gioui.org/op/clip"
"gioui.org/op/paint"
"gioui.org/unit"
"gioui.org/widget/material"
)
func main() {
gofont.Register()
go func() {
w := app.NewWindow(
app.Size(unit.Dp(400), unit.Dp(400)),
app.Title("C"),
)
theme := material.NewTheme()
gtx := layout.NewContext(w.Queue())
for {
e := <-w.Events()
switch e := e.(type) {
case system.DestroyEvent:
panic(e.Err)
case system.FrameEvent:
gtx.Reset(e.Config, e.Size)
// Do layout
size := 100
gtx.Constraints.Height.Min = size
gtx.Constraints.Width.Min = size
layout.Stack{Alignment: layout.Center}.Layout(gtx,
layout.Expanded(func() {
size := float32(gtx.Constraints.Width.Min)
rr := float32(size) * .5
clip.Rect{
Rect: f32.Rectangle{Max: f32.Point{X: size, Y: size}},
NE: rr, NW: rr, SE: rr, SW: rr,
}.Op(gtx.Ops).Add(gtx.Ops)
fill(gtx, color.RGBA{0, 255, 0, 255})
}),
layout.Stacked(func() {
lbl := theme.Label(unit.Dp(32), "a")
lbl.Layout(gtx)
}),
)
// End layout
e.Frame(gtx.Ops)
}
}
}()
app.Main()
}
func fill(gtx *layout.Context, col color.RGBA) {
cs := gtx.Constraints
d := image.Point{X: cs.Width.Min, Y: cs.Height.Min}
dr := f32.Rectangle{
Max: f32.Point{X: float32(d.X), Y: float32(d.Y)},
}
paint.ColorOp{Color: col}.Add(gtx.Ops)
paint.PaintOp{Rect: dr}.Add(gtx.Ops)
gtx.Dimensions = layout.Dimensions{Size: d}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment