bricolint
bricolint: nada de interfaz dibujada a mano
El bricolage —dibujo improvisado, hecho a mano— es la manera en que una
interfaz pierde sin hacer ruido su respuesta visual al pulsar, al pasar el
puntero y al recibir el foco, sus temas, su escalado HiDPI y su accesibilidad.
go-widgets/bricolint
impide que una aplicación que ya se ha pasado al toolkit vuelva atrás.
p.FillRect(bar, theme.Bg) // flagged: hand-drawn chrome
toolkit.NewBackdrop(theme.Bg).Draw(p) // a toolkit widget
func (v *view) Draw(p painter.Painter) {
b := toolkit.NewButton("ok") // flagged: a new widget every frame
b.Draw(p)
}- Una primitiva del painter en el código de la aplicación: un método de
dibujo (
FillRect,StrokeRect,FillPath,DrawImage,Text,PutPixel, …) invocado sobre un receptor cuyo tipo estático es un tipo de painter. Consultar o recortar la superficie (Size,PushClip,PushTranslate) no es dibujar y no se señala.-primitives=sustituye la lista. - Un widget desechado en cada fotograma: una llamada
toolkit.New…dentro de un método llamadoDraw,PaintoRender. Un widget reconstruido en cada pintado no conserva ningún estado de interacción. Constrúyalo una vez, guárdelo en un campo y contrólelo mediante un enlace.-checkthrow=falsedesactiva esta regla.
Hay código que es una auténtica hoja —un framebuffer de juego, un backend de painter, las entrañas del propio toolkit— y lo declara explícitamente:
p.FillRect(bg, c) //bricolint:allow engine SVG raster blit — a genuine leaf//bricolint:allowfile painter back-end — this file IS the leaf
package pdfsurfaceLa razón es obligatoria: una directiva sin ella se ignora, y el hallazgo sigue saltando hasta que alguien deja escrita la justificación.
jobs:
bricolint:
uses: go-widgets/bricolint/.github/workflows/bricolint.yml@mainCreada el por tannevaled
Modificada el por tannevaled