Состояния значка в строке меню
Область: приложение 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).
Формы и размеры
- Холст: шаблонное изображение размером 18x18 pt, отрисовываемое в растровый буфер размером 36x36 px (2x), чтобы значок оставался чётким на дисплеях Retina.
- По умолчанию масштаб антенн равен
1.0; при голосовой активации устанавливаетсяearScale=1.9без изменения общего размера рамки. antennaDroop(0–1) опускает антенны для состояний приостановки и сна.- Быстрое движение ног использует значения от
legWiggleдо1.0с небольшим покачиванием по горизонтали.
Примечания о поведении
- Внешнего переключателя CLI или брокера для антенн и рабочего состояния нет; оба состояния управляются внутренними сигналами приложения (
AppState.setWorking,AppState.triggerVoiceEars), чтобы избежать случайного переключения. - Для любого нового TTL задавайте короткое значение (значительно меньше 10 с), чтобы значок быстро возвращался к исходному состоянию, если задание зависнет.