Plugin support: Eigene Felder im Plugin-Tab (api.ui-Widgets) #121

Open
opened 2026-09-17 20:30:09 +02:00 by meleki · 0 comments
Owner

Folge von #117, Punkt 2. Ein Plugin soll in seinem Tab eigene Felder zeigen — Text, Zahl, Checkbox, Auswahl, Farbe — ohne Graph.

Befund

Die Widgets gibt es alle schon in src/ui/widgets: TextField, NumberField, Checkbox, Dropdown, ColorField, Slider, Button, Label, dazu die Layouts und ScrollContainer. Ein Plugin darf sie nur nicht importieren, weil Pixi genau einmal existieren darf.

Zu bauen

  • api.ui bietet Fabriken an: textField, numberField, checkbox, dropdown, colorField, slider, button, label, dazu vstack, hstack und scroll.
  • Die Fabriken sind die Grenze: zurück kommt ein Widget, das nur an api-Stellen weitergereicht wird. Die Klassen bleiben intern und können umgebaut werden.
  • Was ein Plugin kaputt übergibt, wird geprüft und wirft mit einer Meldung, die den Plugin-Namen nennt — wie schon bei tabs.add.
  • Hält das Plugin die Werte nur selbst (Filter, Anzeige-Optionen), reicht das. Sollen sie im Projekt landen, kommt #120 dazu.
  • Tests: Unit-Tests je Fabrik, dazu ein e2e-Check, der in ein Plugin-Feld tippt.
  • Doku: Wiki Plugins.md mit der Liste der Fabriken.

Offen (mit Vorschlag)

  • Wird PLUGIN_API_VERSION angehoben? Vorschlag: ja, auf 2, und meta.api: 1 bleibt ladbar, solange nur etwas dazukommt. Die Version sagt dann, worauf ein Plugin sich verlassen darf.
Folge von #117, Punkt 2. Ein Plugin soll in seinem Tab eigene Felder zeigen — Text, Zahl, Checkbox, Auswahl, Farbe — ohne Graph. ## Befund Die Widgets gibt es alle schon in `src/ui/widgets`: `TextField`, `NumberField`, `Checkbox`, `Dropdown`, `ColorField`, `Slider`, `Button`, `Label`, dazu die Layouts und `ScrollContainer`. Ein Plugin darf sie nur nicht importieren, weil Pixi genau einmal existieren darf. ## Zu bauen - `api.ui` bietet Fabriken an: `textField`, `numberField`, `checkbox`, `dropdown`, `colorField`, `slider`, `button`, `label`, dazu `vstack`, `hstack` und `scroll`. - Die Fabriken sind die Grenze: zurück kommt ein Widget, das nur an `api`-Stellen weitergereicht wird. Die Klassen bleiben intern und können umgebaut werden. - Was ein Plugin kaputt übergibt, wird geprüft und wirft mit einer Meldung, die den Plugin-Namen nennt — wie schon bei `tabs.add`. - Hält das Plugin die Werte nur selbst (Filter, Anzeige-Optionen), reicht das. Sollen sie im Projekt landen, kommt #120 dazu. - Tests: Unit-Tests je Fabrik, dazu ein e2e-Check, der in ein Plugin-Feld tippt. - Doku: Wiki `Plugins.md` mit der Liste der Fabriken. ## Offen (mit Vorschlag) - Wird `PLUGIN_API_VERSION` angehoben? Vorschlag: ja, auf 2, und `meta.api: 1` bleibt ladbar, solange nur etwas dazukommt. Die Version sagt dann, worauf ein Plugin sich verlassen darf.
admin added this to the Development project 2026-09-17 20:32:57 +02:00
admin added the question label 2026-09-20 13:38:57 +02:00
admin added the low-priority label 2026-09-21 08:09:00 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: meleki/feuerwerk#121