GoSurface — оболонка
Спливні вікна, аркуші та випадні списки — усі користуються цим одним. Він дає раду безпечній зоні, віртуальній клавіатурі, липким заголовку та підвалу, тілу з прокруткою, тому, яке вікно найверхніше, поверненню фокуса, володінню кнопкою «Назад» і зміні розміру перетягуванням.
| Розміщення | Має вигляд | Для чого |
|---|---|---|
CENTER | Картка посередині | Підтвердження, налаштування |
BOTTOM | Аркуш, що підіймається знизу | Списки, сторінки керування |
ANCHOR | Картка, приколена біля контрола | Випадні списки, контекстні меню |
close_requested — сховати чи звільнити —
має екран-власник, бо оболонка не може знати, чому вона закривається (зберегти й закрити чи відкинути).
GoSheet — сторінка знизу
var sheet := GoSheet.new()
add_child(sheet)
sheet.open("Інвентар")
sheet.toolbar().add_child(GoStyle.line_edit("Пошук…"))
sheet.toolbar().visible = true
sheet.footer().add_child(GoStyle.button("Закрити", sheet.close, GoStyle.Tone.PRIMARY))
sheet.footer().visible = true
Він володіє власним CanvasLayer, тож надійно сидить над HUD. open() очищає тіло
й вимикає кнопку «Назад» і липкі рядки — мертва кнопка на екрані, звідки нікуди повертатися,
читається як зламана.
GoDialogs — підтвердження, на які ви робите await
if await dialogs.confirm("Видалити збереження", "Цю дію не можна скасувати."):
delete_save()
confirm(title, body, ok_text, cancel_text, extra, args, destructive) — усе після тексту
необов'язкове, а alert() працює так само, але з однією кнопкою. Задайте destructive для
того, чого не можна скасувати: кнопка підтвердження стає залитою кнопкою GoStyle.Tone.DANGER_SOLID.
У світлій темі підфарбований напис небезпеки мусить темніти, доки не читатиметься як чорний текст; залита кнопка
ж лишає білий текст на червоному. Тон накладається заново при кожному виклику, бо одне вікно використовується
повторно, а другий confirm(), поки відкрите перше, одразу повертає false.
confirm_key() приймає ключі перекладу.
Розкладка кнопок. action_layout типово дорівнює VERTICAL (безпечно для довгих
перекладів), HORIZONTAL дає один рядок із половиною ширини на кожну, а AUTO бере
один рядок лише тоді, коли обидва написи вміщаються в половину картки одним рядком, інакше складає їх стовпчиком.
action_gap — це проміжок між кнопками, а body_gap — проміжок над ними; зробіть його
ширшим за проміжок між кнопками, щоб запитання й вибір читалися як дві частини. Для одного-єдиного діалогу
викличте set_next_action_layout() перед його відкриттям. Рядок будується при першому відкритті
діалогу, тож GoDialogs в автозавантаженні не додає нічого на старті.
GoForm — форма з обмеженою шириною
GoScroll — сенсорна прокрутка
Кладіть усередину одну річ. Заголовки й ряди кнопок належать назовні — довгий список не повинен
виштовхувати їх за екран. use_panel_edge() переносить смугу прокрутки в наявні поля картки,
а вміст зберігає свій відступ.