Skip to main content

Стани піктограми в рядку меню

Область: застосунок 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), щоб піктограма швидко поверталася до базового стану, якщо завдання зависне.

Пов’язані матеріали