gohud

Плаваючі вікна

← Віджети

GoSurface — оболонка

GoSurface — Плаваюче вікно — по центру, знизу або прив'язане до елемента.
CENTER
GoSurface — Плаваюче вікно — по центру, знизу або прив'язане до елемента.
BOTTOM
GoSurface — Плаваюче вікно — по центру, знизу або прив'язане до елемента.
ANCHOR

Спливні вікна, аркуші та випадні списки — усі користуються цим одним. Він дає раду безпечній зоні, віртуальній клавіатурі, липким заголовку та підвалу, тілу з прокруткою, тому, яке вікно найверхніше, поверненню фокуса, володінню кнопкою «Назад» і зміні розміру перетягуванням.

РозміщенняМає виглядДля чого
CENTERКартка посерединіПідтвердження, налаштування
BOTTOMАркуш, що підіймається знизуСписки, сторінки керування
ANCHORКартка, приколена біля контролаВипадні списки, контекстні меню
Він не прибирає себе сам. Відреагувати на close_requested — сховати чи звільнити — має екран-власник, бо оболонка не може знати, чому вона закривається (зберегти й закрити чи відкинути).

GoSheet — сторінка знизу

GoSheet — Нижня панель зі сторінками, переходом назад і закріпленим низом.
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

GoDialogs — Вікна підтвердження та сповіщення через await; сповіщення чекають своєї черги.
confirm()
GoDialogs — Вікна підтвердження та сповіщення через await; сповіщення чекають своєї черги.
destructive
GoDialogs.choose — Один із кількох варіантів — нижня панель на телефоні, картка на комп'ютері.
choose()
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 — форма з обмеженою шириною

GoForm — Форма, що обмежує ширину й оминає клавіатуру та HUD.
GoForm
Вона гарантує, що написи-нащадки переносяться. Без цього одне довге речення розтягується в єдиний рядок, чия мінімальна ширина перевищує екран, і краї обрізаються — ви навіть не розберете, на якому екрані перебуваєте. Вмикати перенесення вручну в кожній сцені забувають щоразу.

GoScroll — сенсорна прокрутка

GoScroll — Прокручування дотиком з будь-якого місця вмісту; враховує письмо справа наліво.
GoScroll · GoScroll.horizontal()

Кладіть усередину одну річ. Заголовки й ряди кнопок належать назовні — довгий список не повинен виштовхувати їх за екран. use_panel_edge() переносить смугу прокрутки в наявні поля картки, а вміст зберігає свій відступ.