Skip to main content

Estados del icono de la barra de menús

Ámbito: aplicación para macOS (apps/macos). Renderizado: CritterIconRenderer.makeIcon(...). Conexión de animaciones y estados: CritterStatusLabel + CritterStatusLabel+Behavior.swift.

Estados

Una insignia de actividad de herramientas (disco con un símbolo SF, por ejemplo, chevron.left.slash.chevron.right para la ejecución) puede renderizarse sobre el mismo icono de la criatura cuando una sesión tiene un trabajo o una herramienta activos. Esa insignia procede de IconState/ActivityKind; consulte Barra de menús para conocer el modelo de estados completo.

Orejas de activación por voz

  • Activación: AppStateStore.shared.triggerVoiceEars(ttl: nil), invocada desde el pipeline de captura de activación por voz (VoiceWakeRuntime) y desde las herramientas de depuración y prueba de la activación por voz (VoiceWakeTester, VoiceWakeOverlayController).
  • Detención: stopVoiceEars(), invocada cuando finaliza la captura.
  • Ventana de silencio antes de finalizar: normalmente 2.0s; 5.0s si solo se oyó la palabra de activación y no hubo más habla a continuación (VoiceWakeRuntime.silenceWindow / triggerOnlySilenceWindow).
  • Mientras el modo aumentado está activo, se suspenden los temporizadores de parpadeo, balanceo, patas y orejas del estado inactivo (earBoostActive controla la tarea de animación en CritterStatusLabel+Behavior).

Formas y tamaños

  • Lienzo: imagen de plantilla de 18x18pt, renderizada en un búfer de mapa de bits de 36x36px (2x) para que el icono se mantenga nítido en pantallas Retina.
  • La escala de las orejas tiene como valor predeterminado 1.0; el aumento por voz establece earScale=1.9 sin cambiar el marco general.
  • antennaDroop (0-1) pliega las antenas hacia abajo para las poses de pausa y reposo.
  • El movimiento rápido de las patas utiliza desde legWiggle hasta 1.0, con una pequeña oscilación horizontal.

Notas de comportamiento

  • No existe ningún conmutador externo de CLI ni del intermediario para las orejas o el estado de trabajo; ambos se controlan internamente mediante señales de la aplicación (AppState.setWorking, AppState.triggerVoiceEars) para evitar oscilaciones accidentales.
  • Mantenga cualquier TTL nuevo corto (muy por debajo de 10s) para que el icono vuelva rápidamente al estado de referencia si un trabajo se bloquea.

Contenido relacionado