Wie ein Widget auf den Bildschirm kommt
Drei Schichten, und jede kennt nur die unter ihr:
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 ANSIEin Widget erfährt nie, welchen Painter es bekommen hat. Ein Back-End erfährt nie, welche Widgets gezeichnet haben. Genau deshalb kann ein Widget-Baum in einem nativen Fenster, einem Browser und einem Terminal ohne eine Zeile bedingten Codes angezeigt werden.
| Die Painter-Schnittstelle | die Primitive, die optionalen Fähigkeiten, die beiden Painter |
| Das Toolkit | der Widget-Satz, Themes, Layouts, Text und Barrierefreiheit |
| Skins | die Teile und Zustände eines Widgets als Daten statt in Go beschreiben |
Erstellt am von tannevaled
Geändert am von tannevaled