gohud

Jendela mengambang

← Widget

GoSurface — cangkangnya

Popup, lembar, dan dropdown semuanya memakai yang satu ini. Ia mengurus area aman, keyboard virtual, header dan footer yang menempel, body yang bergulir, jendela mana yang paling atas, pemulihan fokus, kepemilikan tombol kembali, dan tarik untuk mengubah ukuran.

PenempatanTampak sepertiDipakai untuk
CENTERSebuah kartu di tengahKonfirmasi, setelan
BOTTOMSebuah lembar yang naik dari bawahDaftar, halaman pengelolaan
ANCHORSebuah kartu yang disematkan di samping sebuah kontrolDropdown, menu konteks
Ia tidak menghapus dirinya sendiri. Menanggapi close_requested — menyembunyikan atau membebaskannya — adalah tugas layar yang memilikinya, karena cangkangnya tidak bisa tahu kenapa ia ditutup (simpan lalu tutup, atau buang).

GoSheet — sebuah halaman dari bawah

var sheet := GoSheet.new()
add_child(sheet)
sheet.open("Inventaris")
sheet.toolbar().add_child(GoStyle.line_edit("Cari…"))
sheet.toolbar().visible = true
sheet.footer().add_child(GoStyle.button("Tutup", sheet.close, GoStyle.Tone.PRIMARY))
sheet.footer().visible = true

Ia memiliki CanvasLayer sendiri, jadi ia pasti berada di atas HUD. open() mengosongkan body dan mematikan tombol kembali serta baris yang menempel — tombol mati di layar yang tidak punya tempat untuk kembali akan terbaca sebagai rusak.

GoDialogs — konfirmasi yang bisa Anda await

if await dialogs.confirm("Hapus simpanan", "Tindakan ini tidak bisa dibatalkan."):
    delete_save()

confirm(title, body, ok_text, cancel_text, extra, args, destructive) — semua yang ada setelah body bersifat opsional, dan alert() bekerja dengan cara yang sama dengan satu tombol saja. Setel destructive untuk sesuatu yang tak bisa dibatalkan: tombol konfirmasinya berubah menjadi tombol GoStyle.Tone.DANGER_SOLID yang berisi penuh. Pada tema terang, label bahaya yang dironai harus digelapkan sampai terbaca seperti teks hitam; tombol berisi penuh mempertahankan teks putih di atas merah. Nada warnanya diterapkan ulang pada setiap pemanggilan karena satu jendela dipakai berulang, dan confirm() kedua ketika satu dialog masih terbuka langsung mengembalikan false. confirm_key() menerima kunci terjemahan.

Tata letak tombol. action_layout secara default adalah VERTICAL (aman untuk terjemahan yang panjang), HORIZONTAL untuk satu baris dengan lebar separuh-separuh, atau AUTO, yang memakai satu baris hanya bila kedua labelnya muat pada separuh kartu dalam satu baris dan menumpuknya bila tidak. action_gap adalah jarak antar tombol dan body_gap jarak di atasnya — buat yang terakhir lebih lebar daripada jarak antartombol agar pertanyaan dan pilihannya terbaca sebagai dua bagian. Untuk satu dialog saja, panggil set_next_action_layout() sebelum membukanya. Baris tombolnya dibangun saat sebuah dialog pertama kali dibuka, jadi GoDialogs yang di-autoload tidak menambah apa pun saat startup.

GoForm — formulir berlebar terbatas

Ia menjamin label keturunannya membungkus baris. Tanpa itu, satu kalimat panjang akan merentang menjadi satu baris yang lebar minimumnya melebihi layar, dan sisi-sisinya terpotong — Anda bahkan tak bisa tahu sedang berada di layar apa. Menyalakan pembungkusan baris secara manual per scene selalu terlupakan.

GoScroll — gulir sentuh

Taruh satu hal saja di dalamnya. Header dan baris tombol tempatnya di luar — daftar yang panjang tidak boleh mendorongnya keluar layar. use_panel_edge() memindahkan bilah gulirnya ke dalam padding kartu yang sudah ada sementara kontennya mempertahankan indentasinya.