GoSurface — powłoka
Wyskakujące okna, arkusze i listy rozwijane — wszystkie używają tego jednego. Zajmuje się bezpiecznym obszarem, klawiaturą ekranową, przyklejonym nagłówkiem i stopką, przewijanym ciałem, tym, które okno jest wierzchnie, przywracaniem fokusu, własnością przycisku Wstecz i zmianą rozmiaru przeciągnięciem.
| Umiejscowienie | Wygląda jak | Do czego służy |
|---|---|---|
CENTER | Karta na środku | Potwierdzenia, ustawienia |
BOTTOM | Arkusz wznoszący się od dołu | Listy, strony zarządzania |
ANCHOR | Karta przypięta obok kontrolki | Listy rozwijane, menu kontekstowe |
close_requested — ukrycie albo zwolnienie — należy do
ekranu, który go posiada, bo powłoka nie może wiedzieć, dlaczego się zamyka (zapisz i zamknij czy odrzuć).
GoSheet — strona od dołu
var sheet := GoSheet.new()
add_child(sheet)
sheet.open("Ekwipunek")
sheet.toolbar().add_child(GoStyle.line_edit("Szukaj…"))
sheet.toolbar().visible = true
sheet.footer().add_child(GoStyle.button("Zamknij", sheet.close, GoStyle.Tone.PRIMARY))
sheet.footer().visible = true
Posiada własny CanvasLayer, więc niezawodnie siedzi ponad HUD. open() czyści
ciało i wyłącza przycisk Wstecz oraz przyklejone wiersze — martwy przycisk na ekranie, z którego
nie ma dokąd wracać, czyta się jako zepsuty.
GoDialogs — potwierdzenia, na które czekasz przez await
if await dialogs.confirm("Usuń zapis", "Tego nie da się cofnąć."):
delete_save()
confirm(title, body, ok_text, cancel_text, extra, args, destructive) — wszystko po treści jest
opcjonalne, a alert() działa tak samo, tylko z jednym przyciskiem. Ustaw destructive
dla czegoś, czego nie da się cofnąć: przycisk potwierdzenia staje się wypełnionym przyciskiem
GoStyle.Tone.DANGER_SOLID. W jasnym motywie zabarwiona etykieta niebezpieczeństwa musi ciemnieć
aż do czerni; wypełniony przycisk zachowuje biały tekst na czerwieni. Ton nakładany jest ponownie przy każdym
wywołaniu, bo jedno okno jest używane wielokrotnie, a drugie confirm() w trakcie otwartego
pierwszego zwraca od razu false. confirm_key() przyjmuje klucze tłumaczeń.
Układ przycisków. action_layout to domyślnie VERTICAL (bezpieczne przy długich
tłumaczeniach), HORIZONTAL dla jednego rzędu z połową szerokości na każdy, albo AUTO,
które wybiera jeden rząd tylko wtedy, gdy obie etykiety mieszczą się w połowie karty w jednej linii, a poza tym
układa je jedna pod drugą. action_gap to odstęp między przyciskami, a body_gap odstęp
nad nimi — zrób go szerszym niż odstęp między przyciskami, żeby pytanie i wybór czytały się jako dwie części.
Dla jednego okna z osobna wywołaj set_next_action_layout() przed jego otwarciem.
Rząd budowany jest przy pierwszym otwarciu okna, więc GoDialogs w autoloadzie nic nie dokłada przy starcie.
GoForm — formularz z ograniczoną szerokością
GoScroll — przewijanie dotykiem
Włóż do środka jedną rzecz. Nagłówki i rzędy przycisków należą na zewnątrz — długa lista nie może
wypychać ich poza ekran. use_panel_edge() przenosi pasek przewijania w istniejący margines
wewnętrzny karty, a treść zachowuje swoje wcięcie.