macOS companion app

أيقونة شريط القوائم

حالات أيقونة شريط القوائم

النطاق: تطبيق macOS ‏(apps/macos). العرض: CritterIconRenderer.makeIcon(...). ربط الحركة/الحالة: CritterStatusLabel + CritterStatusLabel+Behavior.swift.

الحالات

الحالة المُشغِّل المظهر
الخمول الافتراضي حركة رمش/تمايل عادية؛ تحتفظ العينان المفتوحتان بلمعة لامعة
الإيقاف المؤقت isPaused=true تتدلى قرون الاستشعار ("خارج الخدمة") مع بقاء العينين مفتوحتين؛ بلا حركة
النوم Gateway غير متصل/غير مهيأ تتدلى قرون الاستشعار وتُغلق العينان لتصبحا جفني ⌣ ⌣؛ بلا حركة
الاحتفال أُرسلت رسالة (sendCelebrationTick) تومض العينان بأقواس ∩ ∩ سعيدة لمدة ~0.9s مع ركلة بالساق
تنبيه صوتي (أذنان كبيرتان) سماع كلمة التنبيه تنتصب قرون الاستشعار مستقيمة وأطول (earScale=1.9)؛ وتنخفض بعد الصمت
العمل isWorking=true أو IconState نشط تمايل أسرع للساقين (من legWiggle حتى 1.0) مع إزاحة أفقية صغيرة؛ يُضاف إلى تمايل الخمول

يمكن عرض شارة نشاط أداة (قرص SF Symbol، مثل chevron.left.slash.chevron.right للتنفيذ) فوق أيقونة المخلوق نفسها عندما تحتوي جلسة على مهمة أو أداة نشطة. تأتي هذه الشارة من IconState/ActivityKind؛ راجع شريط القوائم للاطلاع على نموذج الحالة الكامل.

أذنا التنبيه الصوتي

  • المُشغِّل: AppStateStore.shared.triggerVoiceEars(ttl: nil)، ويُستدعى من مسار التقاط التنبيه الصوتي (VoiceWakeRuntime) ومن أدوات تصحيح/اختبار التنبيه الصوتي (VoiceWakeTester، VoiceWakeOverlayController).
  • الإيقاف: stopVoiceEars()، ويُستدعى عند اكتمال الالتقاط.
  • نافذة الصمت قبل الإنهاء: 2.0s عادةً، و5.0s إذا لم تُسمع سوى كلمة التنبيه ولم يتبعها كلام إضافي (VoiceWakeRuntime.silenceWindow / triggerOnlySilenceWindow).
  • أثناء التعزيز، تُعلَّق مؤقتات الرمش/التمايل/الساق/الأذن في حالة الخمول (earBoostActive يتحكم في مهمة الحركة في CritterStatusLabel+Behavior).

الأشكال والأحجام

  • لوحة الرسم: صورة قالب بحجم 18x18pt، تُعرض في مخزن خلفي نقطي بحجم 36x36px ‏(2x) لتظل الأيقونة حادة على شاشات Retina.
  • المقياس الافتراضي للأذن هو 1.0؛ ويضبط التعزيز الصوتي القيمة earScale=1.9 من دون تغيير الإطار الكلي.
  • antennaDroop ‏(0-1) يطوي قرون الاستشعار إلى الأسفل لوضعي الإيقاف المؤقت والنوم.
  • يستخدم عدو الساقين من legWiggle حتى 1.0 مع اهتزاز أفقي صغير.

ملاحظات سلوكية

  • لا يوجد مفتاح تبديل خارجي عبر CLI/الوسيط للأذنين أو حالة العمل؛ فكلاهما يُدار داخليًا بواسطة إشارات التطبيق (AppState.setWorking، AppState.triggerVoiceEars) لتجنب الرفرفة العرضية.
  • اجعل أي مدة صلاحية جديدة قصيرة (أقل بكثير من 10s) كي تعود الأيقونة سريعًا إلى حالتها الأساسية إذا علقت مهمة.

ذو صلة

Was this useful?
On this page

On this page