Стани піктограми в рядку меню
Область: застосунок macOS (apps/macos). Відтворення: CritterIconRenderer.makeIcon(...). Зв’язування анімації та стану: CritterStatusLabel + CritterStatusLabel+Behavior.swift.
Стани
Значок активності інструмента (кружок із символом SF, наприклад
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), щоб уникнути випадкового перемикання. - Будь-який новий TTL має бути коротким (значно менше ніж 10s), щоб піктограма швидко поверталася до базового стану, якщо завдання зависне.