gohud

الانتظار والإخبار والعدّ

← الودجات

GoSnackbar — الرسالة التي تضع نفسها بنفسها

يجلس في الأسفل (أو في الأعلى)، فوق المنطقة الآمنة ولوحة المفاتيح، ثم يمضي من تلقاء نفسه. وبدونه تكتب الطبقة والموضع والمؤقّت والتحرير في كل شاشة عليها أن تقول "حُفظ".

snack.show_text("حُفظ", GoTheme.SUCCESS)

# فرصة للتراجع — 0 هو الزرّ الأول، و-1 يعني أن المهلة انتهت
if await snack.post({"text": "أُسقط العنصر", "actions": ["تراجع"]}) == 0:
    restore_item()

الرسائل تصطفّ بدل أن يطمس بعضها بعضًا، وتكرارات السطر الواحد تُدمج — فخادم يفشل أربع مرات في الثانية لم يعد يكدّس أربع دقائق من التنبيهات. والشريط الذي لا زرّ فيه يمرّر المدخلات، فتظلّ اللعبة تحته تعمل.

ليس مكانًا لطرح سؤال. فهو يذهب من تلقاء نفسه، وقد لا يراه اللاعب أبدًا. والتأكيدات التي لا رجعة فيها مكانها GoDialogs. والأزرار هنا يجب أن تكون اختيارية — تراجع، تفاصيل، إعادة المحاولة.

وGoNotice هو النصف الآخر من الزوج: فهو لا يأخذ مدخلًا ولا تركيزًا أبدًا، والشاشة المالكة له هي التي تقرّر أين يذهب. وهو لا يحمل زرًّا؛ أما هذا فيحمل.

GoSpinner — انتظار لا تُرى نهايته

الألعاب التي تكلّم خادمًا تحتاج هذا أكثر من أي شيء آخر في هذه الصفحة: فالشاشة الساكنة تُقرأ على أنها انهيار. واستدعاء واحد يحوّل الزرَّ الذي ضغطتَه إلى دوّارة في مكانه.

GoSpinner.busy(buy_button, true)
var ok := await server.purchase(item)
GoSpinner.busy(buy_button, false)

الزرّ يحتفظ بحجمه — فالنصّ يصير شفافًا بدل أن يزول، فلا يقفز الصفّ — وهو معطَّل ما دام يدور. وهذا الجزء الثاني هو المقصود: فالشراء يجب ألّا ينطلق مرتين وأنت في await. ومع تشغيل reduce_motion لا يدور؛ بل تنبض ثلاث نقاط بدلًا من ذلك.

والتقدّم الذي يمكن قياسه هو GoBar. أما الدوّارة فلا تَعِد بشيء عن موعد انتهائها.

GoBadge — نقطة غير المقروء، وعلامة «جديد»، والـ 99+

GoBadge.attach(mail_button, unread_count)   # يخفي نفسه عند الصفر
GoBadge.attach(shop_button, 0, "جديد")
GoBadge.attach(friend_button, 3, "", true) # نقطة — "هناك شيء ما"

يتعلّق بالركن العلوي الأيمن للمضيف عبر المراسي، فيتبع مضيفًا يُقرَّر حجمه لاحقًا، والإلحاق مرتين يعيد الشارة نفسها. استعمل عددًا حين يغيّر العددُ ما يفعله اللاعب، ونقطةً حين لا يهمّ إلا "أن هناك شيئًا".

ولون نصّه يُختار ليتباين مع أي لون صبغ به المظهرُ الشارةَ — ولا يُفترض أبيض أبدًا — وهو يحمل اسم وصولية، لأن نقطة ملوّنة لا تقول شيئًا لقارئ الشاشة.