الانتقال إلى المحتوى الرئيسي

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

المؤلف: steipete · آخر تحديث: 2025-12-06 · النطاق: تطبيق macOS (apps/macos)
  • الخمول: رسوم متحركة طبيعية للأيقونة (وميض، تمايل خفيف متقطع).
  • الإيقاف المؤقت: يستخدم عنصر الحالة appearsDisabled؛ بلا حركة.
  • مُحفِّز الصوت (آذان كبيرة): يستدعي كاشف تنبيه الصوت AppState.triggerVoiceEars(ttl: nil) عند سماع كلمة التنبيه، مع الإبقاء على earBoostActive=true أثناء التقاط النطق. تتضخم الآذان (1.9×)، وتُضاف فتحات دائرية للآذان لتحسين الوضوح، ثم تهبط عبر stopVoiceEars() بعد 1 ثانية من الصمت. يتم إطلاقه فقط من مسار الصوت داخل التطبيق.
  • قيد العمل (تشغيل الوكيل): يقود AppState.isWorking=true حركة دقيقة من نوع «جري الذيل/الأرجل»: تمايل أسرع للأرجل وانزياح طفيف أثناء تنفيذ العمل. يتم تبديله حاليًا حول تشغيلات وكيل WebChat؛ أضِف نفس التبديل حول المهام الطويلة الأخرى عند ربطها.
نقاط الربط
  • تنبيه الصوت: يستدعي وقت التشغيل/المختبِر AppState.triggerVoiceEars(ttl: nil) عند التفعيل وstopVoiceEars() بعد 1 ثانية من الصمت لمطابقة نافذة الالتقاط.
  • نشاط الوكيل: اضبط AppStateStore.shared.setWorking(true/false) حول فترات العمل (مُنجَز بالفعل في استدعاء وكيل WebChat). اجعل الفترات قصيرة وأعد الضبط ضمن كتل defer لتجنّب تعليق الرسوم المتحركة.
الأشكال والأحجام
  • تُرسَم الأيقونة الأساسية في CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:).
  • المقياس الافتراضي للآذان هو 1.0؛ يعين تعزيز الصوت earScale=1.9 ويبدّل earHoles=true دون تغيير الإطار العام (صورة قالب 18×18 نقطة تُعرَض ضمن مخزن خلفي Retina بحجم 36×36 بكسل).
  • يستخدم «الجري» تمايل الأرجل حتى ~1.0 مع اهتزاز أفقي صغير؛ وهو تراكمي فوق أي تمايل خمول موجود.
ملاحظات سلوكية
  • لا يوجد تبديل خارجي عبر CLI/وسيط للآذان/حالة العمل؛ أبقِه داخليًا ضمن إشارات التطبيق نفسه لتجنّب الرفرفة غير المقصودة.
  • أبقِ قيم TTL قصيرة (<10s) حتى تعود الأيقونة سريعًا إلى خط الأساس إذا تعلّقت مهمة.