func (b *ProgressBar) SetSize(size math.Size) { b.ProgressBar.SetSize(size) b.chevrons = nil if size.Area() > 0 { b.chevrons = b.theme.Driver().CreateCanvas(size) b.chevronWidth = size.H / 2 cw := b.chevronWidth for x := -cw * 2; x < size.W; x += cw * 2 { // x0 x2 // | x1 | x3 // | | // A-----B - y0 // \ \ // \ \ // F C - y1 // / / // / / // E-----D - y2 y0, y1, y2 := 0, size.H/2, size.H x0, x1 := x, x+cw/2 x2, x3 := x0+cw, x1+cw var chevron = gxui.Polygon{ /* A */ gxui.PolygonVertex{Position: math.Point{X: x0, Y: y0}}, /* B */ gxui.PolygonVertex{Position: math.Point{X: x2, Y: y0}}, /* C */ gxui.PolygonVertex{Position: math.Point{X: x3, Y: y1}}, /* D */ gxui.PolygonVertex{Position: math.Point{X: x2, Y: y2}}, /* E */ gxui.PolygonVertex{Position: math.Point{X: x0, Y: y2}}, /* F */ gxui.PolygonVertex{Position: math.Point{X: x1, Y: y1}}, } b.chevrons.DrawPolygon(chevron, gxui.TransparentPen, gxui.CreateBrush(gxui.Gray30)) } b.chevrons.Complete() } }