حالات أيقونة شريط القوائم
النطاق: تطبيق macOS (apps/macos). العرض: CritterIconRenderer.makeIcon(...). ربط الحركة/الحالة: CritterStatusLabel + CritterStatusLabel+Behavior.swift.
الحالات
يمكن عرض شارة نشاط أداة (قرص 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) كي تعود الأيقونة سريعًا إلى حالتها الأساسية إذا علقت مهمة.