gohud

Yüzen pencereler

← Widget'lar

GoSurface — kabuk

Açılır pencereler, sayfalar ve açılır listeler hep bunu kullanır. Güvenli alanı, sanal klavyeyi, sabit başlık ve alt bilgiyi, kaydırılan gövdeyi, hangi pencerenin en üstte olduğunu, odağın geri verilmesini, geri tuşunun sahipliğini ve sürükleyerek yeniden boyutlandırmayı üstlenir.

YerleşimNasıl görünürNerede kullanılır
CENTEROrtada bir kartOnaylar, ayarlar
BOTTOMAlttan yükselen bir sayfaListeler, yönetim sayfaları
ANCHORBir denetimin yanına sabitlenmiş kartAçılır listeler, bağlam menüleri
Kendini kaldırmaz. close_requested sinyaline tepki vermek — gizlemek ya da bellekten silmek — sahibi olan ekranın işidir, çünkü kabuk neden kapandığını bilemez (kaydedip kapatmak mı, yoksa atmak mı).

GoSheet — alttan gelen bir sayfa

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

Kendi CanvasLayer'ına sahiptir, bu yüzden güvenilir biçimde HUD'ın üstünde durur. open() gövdeyi temizler ve geri düğmesiyle sabit satırları kapatır — geri dönülecek yeri olmayan bir ekrandaki ölü bir düğme bozuk gibi okunur.

GoDialogsawait ettiğiniz onaylar

if await dialogs.confirm("Kaydı sil", "Bu geri alınamaz."):
    delete_save()

confirm(title, body, ok_text, cancel_text, extra, args, destructive) — gövdeden sonraki her şey isteğe bağlıdır ve alert() tek düğmeyle aynı şekilde çalışır. Geri alınamayacak bir şey için destructive verin: onay düğmesi dolgulu GoStyle.Tone.DANGER_SOLID düğmesine dönüşür. Açık bir temada tonlanmış bir tehlike etiketi siyah yazı gibi okunana dek koyulaşmak zorundadır; dolgulu düğme ise kırmızı üstünde beyaz yazıyı korur. Tek bir pencere yeniden kullanıldığı için ton her çağrıda yeniden uygulanır; biri açıkken ikinci bir confirm() anında false döndürür. confirm_key() çeviri anahtarları alır.

Düğme yerleşimi. action_layout varsayılan olarak VERTICAL'dır (uzun çeviriler için güvenli), tek sırada ve her biri yarı genişlikte olması için HORIZONTAL, ya da AUTO — bu da yalnızca iki etiket de kartın yarısına tek satırda sığdığında tek sıra kullanır, aksi hâlde alt alta dizer. action_gap düğmeler arasındaki boşluk, body_gap ise üstlerindeki boşluktur — soru ile seçimin iki ayrı parça olarak okunması için ikincisini düğme boşluğundan geniş tutun. Yalnızca tek bir iletişim kutusu için, açmadan önce set_next_action_layout() çağırın. Sıra ilk kez bir iletişim kutusu açıldığında kurulur; yani autoload edilmiş bir GoDialogs açılışta hiçbir şey eklemez.

GoForm — genişliği sınırlı bir form

Altındaki etiketlerin satır kaydırmasını garanti eder. Bu olmadan uzun bir cümle tek satıra uzar, o satırın en küçük genişliği ekranı aşar ve kenarlar kırpılır — hangi ekranda olduğunuzu bile anlayamazsınız. Sahne başına elle satır kaydırma açmak her seferinde unutulur.

GoScroll — dokunmatik kaydırma

İçine tek bir şey koyun. Başlıklar ve düğme sıraları dışarıda kalır — uzun bir liste onları ekrandan dışarı itmemelidir. use_panel_edge(), içerik kendi girintisini korurken kaydırma çubuğunu kartın var olan iç boşluğuna taşır.