GoSurface — la coque
Les fenêtres surgissantes, les feuilles et les listes déroulantes passent toutes par elle. Elle gère la zone sûre, le clavier virtuel, l'en-tête et le pied fixes, un corps défilant, la fenêtre qui est au premier plan, la restauration du focus, la propriété du bouton Retour et le redimensionnement par glissement.
| Placement | Aspect | Sert à |
|---|---|---|
CENTER | Une carte au milieu | Confirmations, réglages |
BOTTOM | Une feuille qui monte depuis le bas | Listes, pages de gestion |
ANCHOR | Une carte épinglée à côté d'une commande | Listes déroulantes, menus contextuels |
close_requested — masquer ou libérer — revient
à l'écran propriétaire, parce que la coque ne peut pas savoir pourquoi elle se ferme (enregistrer et
fermer, ou abandonner).
GoSheet — une page venue du bas
var sheet := GoSheet.new()
add_child(sheet)
sheet.open("Inventaire")
sheet.toolbar().add_child(GoStyle.line_edit("Rechercher…"))
sheet.toolbar().visible = true
sheet.footer().add_child(GoStyle.button("Fermer", sheet.close, GoStyle.Tone.PRIMARY))
sheet.footer().visible = true
Elle possède un CanvasLayer : elle se place donc de façon fiable au-dessus du HUD.
open() vide le corps et désactive le bouton Retour et les rangées fixes — un bouton mort
sur un écran d'où l'on ne peut revenir nulle part se lit comme une panne.
GoDialogs — des confirmations que vous await
if await dialogs.confirm("Supprimer la sauvegarde", "Cette action est irréversible."):
delete_save()
confirm(title, body, ok_text, cancel_text, extra, args, destructive) — tout ce qui suit le corps
est facultatif, et alert() fonctionne de la même manière avec un seul bouton. Renseignez
destructive pour ce qui ne peut pas être annulé : le bouton de confirmation devient le bouton
plein GoStyle.Tone.DANGER_SOLID. Sur un thème clair, un libellé de danger teinté doit s'assombrir
jusqu'à se lire comme du texte noir ; le bouton plein, lui, garde du texte blanc sur du rouge. La tonalité est
réappliquée à chaque appel parce qu'une même fenêtre est réutilisée, et un second confirm() alors
qu'une fenêtre est ouverte renvoie false immédiatement. confirm_key() accepte des
clés de traduction.
Disposition des boutons. action_layout vaut VERTICAL par défaut (sûr pour les
traductions longues), HORIZONTAL pour une seule rangée où chacun prend la moitié de la largeur, ou
AUTO, qui ne passe sur une rangée que si les deux libellés tiennent sur une seule ligne dans la
moitié de la carte, et les empile sinon. action_gap est l'espace entre les boutons et
body_gap l'espace au-dessus d'eux — faites-le plus large que l'écart entre boutons pour que la
question et le choix se lisent comme deux parties. Pour une seule boîte de dialogue, appelez
set_next_action_layout() avant de l'ouvrir. La rangée est construite à la première ouverture : un
GoDialogs chargé en autoload n'ajoute donc rien au démarrage.
GoForm — un formulaire à largeur plafonnée
GoScroll — le défilement tactile
Mettez-y une seule chose. Les en-têtes et les rangées de boutons se placent à l'extérieur — une longue
liste ne doit pas les pousser hors de l'écran. use_panel_edge() déplace la barre de défilement
dans la marge intérieure existante de la carte tandis que le contenu garde son retrait.