gohud

النوافذ العائمة

← الودجات

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() ينقل شريط التمرير إلى حشوة البطاقة القائمة بينما يحتفظ المحتوى بإزاحته.