Cómo llega un widget a la pantalla
Tres capas, y cada una solo conoce la que tiene debajo:
toolkit widget tree Button, Table, Agenda, VBox ... (or a skin.Object)
│ Draw(p painter.Painter, theme *Theme)
▼
painter.Painter FillRect, StrokeRect, Text, PutPixel, ...
│
├─ PixelPainter → an RGBA []byte → window, browser canvas, PNG, Android
└─ CellPainter → a grid of cells → a terminal, as 24-bit ANSIUn widget nunca sabe qué painter ha recibido. Un backend nunca sabe qué widgets han dibujado. Esa es toda la razón por la que un mismo árbol de widgets puede mostrarse en una ventana nativa, un navegador y un terminal sin una sola línea de código condicional.
| La costura del painter | las primitivas, las capacidades opcionales, los dos painters |
| El toolkit | el conjunto de widgets, temas, layouts, texto y accesibilidad |
| Skins | describir las partes y los estados de un widget como datos en lugar de en Go |
Creada el por tannevaled
Modificada el por tannevaled