GoSnackbar — le message qui se place tout seul
Il se pose en bas (ou en haut), au-dessus de la zone sûre et du clavier, et s'en va de lui-même. Sans lui, vous écrivez le calque, le placement, le minuteur et la libération sur chaque écran qui doit dire « enregistré ».
snack.show_text("Enregistré", GoTheme.SUCCESS)
# Une chance d'annuler — 0 est le premier bouton, -1 signifie que le délai a expiré
if await snack.post({"text": "Objet jeté", "actions": ["Annuler"]}) == 0:
restore_item()
Les messages font la queue au lieu de s'écraser les uns les autres, et les répétitions d'une même ligne sont fusionnées — un serveur qui échoue quatre fois par seconde n'empile plus quatre minutes d'alertes. Un snackbar sans bouton laisse passer la saisie : le jeu continue de tourner en dessous.
GoDialogs. Les boutons, ici, doivent être
facultatifs — Annuler, Détails, Réessayer.
GoNotice est l'autre moitié de la paire : il ne prend jamais la saisie ni le focus, et c'est
l'écran propriétaire qui décide où il se place. Il ne peut pas porter de bouton ; celui-ci le peut.
GoSpinner — une attente dont on ne voit pas la fin
Les jeux qui parlent à un serveur en ont besoin plus que de tout le reste de cette page : un écran qui ne bouge pas se lit comme un plantage. Un seul appel transforme le bouton que l'on vient d'appuyer en indicateur d'attente, sur place.
GoSpinner.busy(buy_button, true)
var ok := await server.purchase(item)
GoSpinner.busy(buy_button, false)
Le bouton garde sa taille — le libellé devient transparent au lieu de disparaître, la rangée ne saute donc
pas — et il est désactivé pendant qu'il tourne. C'est ce second point qui compte : un achat ne doit pas partir
deux fois pendant que vous await. Avec reduce_motion, il ne tourne pas ; trois points pulsent à la place.
Une progression mesurable, c'est une GoBar. Un indicateur d'attente ne promet rien sur le moment où il s'arrête.
GoBadge — la pastille de non-lu, l'étiquette NOUVEAU, le 99+
GoBadge.attach(mail_button, unread_count) # se masque à zéro
GoBadge.attach(shop_button, 0, "NOUVEAU")
GoBadge.attach(friend_button, 3, "", true) # une pastille — « il y a quelque chose »
Il s'accroche au coin supérieur droit de son hôte par des ancres : il suit donc un hôte dont la taille est décidée plus tard, et l'attacher deux fois renvoie le même badge. Mettez un nombre quand le compte change ce que le joueur fait, une pastille quand seul « il y a quelque chose » importe.
La couleur de son texte est choisie pour contraster avec la couleur dont le skin a peint le badge — jamais supposée blanche — et il porte un nom accessible, parce qu'une pastille colorée ne dit rien à un lecteur d'écran.