Files
silver_pose/v2/vendor/gioui.org/widget/border.go
T
ilaandClaude Opus 4.8 f58728cddd chore(v2): vendor dependencies for offline/China builds
go mod vendor pins onnxruntime_go v1.12.1, Gio and the rest into v2/vendor
so go run/build work without hitting proxy.golang.org (blocked/slow in
China). Verified: CGO_ENABLED=1 go build -mod=vendor ./internal/spike and
GOOS=windows go build -mod=vendor ./internal/ui both pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 16:35:01 +08:00

45 lines
800 B
Go

// SPDX-License-Identifier: Unlicense OR MIT
package widget
import (
"image"
"image/color"
"gioui.org/layout"
"gioui.org/op/clip"
"gioui.org/op/paint"
"gioui.org/unit"
)
// Border lays out a widget and draws a border inside it.
type Border struct {
Color color.NRGBA
CornerRadius unit.Dp
Width unit.Dp
}
func (b Border) Layout(gtx layout.Context, w layout.Widget) layout.Dimensions {
dims := w(gtx)
sz := dims.Size
rr := gtx.Dp(b.CornerRadius)
width := gtx.Dp(b.Width)
whalf := (width + 1) / 2
sz.X -= whalf * 2
sz.Y -= whalf * 2
r := image.Rectangle{Max: sz}
r = r.Add(image.Point{X: whalf, Y: whalf})
paint.FillShape(gtx.Ops,
b.Color,
clip.Stroke{
Path: clip.UniformRRect(r, rr).Path(gtx.Ops),
Width: float32(width),
}.Op(),
)
return dims
}