feat(renaser): Fase 16 — la barra viva: botón lanzador + reloj
La barra de tareas era pasiva: nombraba pero no hacía. Ahora lleva en sus extremos los dos adornos de toda barra digna. - Botón «+» indigo a la izquierda (36 px). Un clic incrementa `PARTOS` — el mismo contador que `Alt+N` — y la tarea del compositor lo recoge para lanzar la siguiente app de la rotación. Teclado y ratón comparten ya la misma vía para crear ventanas. - Reloj `mm:ss` a la derecha (80 px), leído de `reloj::milisegundos()`. Tinta blanca sobre slate. - `compositor::tick_reloj()` lo invoca la tarea del compositor cada fotograma; recompone solo cuando el segundo del reloj monótono cambia respecto al último mostrado (`ULTIMO_SEGUNDO: AtomicU64`). Cero coste mientras no toca refrescar. - `Taskbar` crece con `launcher`, `reloj` y `reloj_region`; el layout de las pestañas se ajusta entre ambas cuñas. La cruz del lanzador se dibuja en píxeles directos —dos rectángulos cruzados, independiente de la tipografía—. Verificado en QEMU con dos capturas separadas: la barra muestra el «+» indigo, las siete pestañas (con `glotona` ya legible) y el reloj. En la primera marca `0:17`; diez segundos después, `0:29` — la barra se refrescó doce veces sin intervención. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1046,3 +1046,42 @@ propia voz, prioritaria sobre las de los apps.
|
||||
desalojadas), y después la escala de `tonada` tomando la bocina.
|
||||
- Captura: la pestaña de `glotona` (crema) muestra ahora su nombre legible
|
||||
en tinta oscura; la de `discola` (púrpura) sigue clara, como antes.
|
||||
|
||||
## Fase 16 — La barra viva: lanzador y reloj — 2026-05-23
|
||||
|
||||
La barra de tareas era informativa pero pasiva: nombraba a los inquilinos sin
|
||||
ofrecerse a ningún gesto propio. La Fase 16 le añade los dos accesorios de
|
||||
toda barra de tareas digna: un **botón lanzador** a la izquierda y un **reloj**
|
||||
a la derecha, y le pone el reloj a latir cada segundo.
|
||||
|
||||
### Añadido
|
||||
- **Botón lanzador («+»)** a la izquierda de la barra (36 px de ancho, fondo
|
||||
índigo del foco, cruz blanca). Un clic incrementa `PARTOS` — el mismo
|
||||
contador que `Alt+N` —, así que la tarea del compositor lo recoge y lanza
|
||||
la siguiente app de la rotación. El teclado y el ratón comparten ahora la
|
||||
misma vía para crear ventanas.
|
||||
- **Reloj** a la derecha de la barra (80 px), formato `mm:ss` desde el
|
||||
arranque, leído de `reloj::milisegundos()`. Tinta blanca sobre slate.
|
||||
- **`compositor::tick_reloj()`** — la invoca la tarea del compositor cada
|
||||
fotograma. Si el segundo del reloj cambió respecto al último mostrado
|
||||
(`ULTIMO_SEGUNDO: AtomicU64`), recompone; si no, vuelve. Cero coste cuando
|
||||
no hace falta refrescar.
|
||||
- `Taskbar` gana los campos `launcher: RegionPantalla`, `reloj: &str` y
|
||||
`reloj_region: RegionPantalla`. `pintar_taskbar` los pinta como dos cuñas
|
||||
fijas de la barra: el lanzador con su cruz dibujada en píxeles directos
|
||||
(independiente de la tipografía), el reloj con la etiqueta de costumbre.
|
||||
|
||||
### Cambiado
|
||||
- El layout de la barra se recalcula: `cells_x0` empieza tras el lanzador,
|
||||
`cells_x_max` termina antes del reloj. `celda_taskbar_en` respeta esos
|
||||
límites; un clic en el lanzador (`clic_en_launcher`) tiene su propia rama
|
||||
en `atender_raton`, antes que la búsqueda de pestaña.
|
||||
- `CELDA_TASKBAR_ANCHO` baja de 156 a 150 para que el lanzador, las siete
|
||||
pestañas y el reloj quepan holgados en una pantalla de 1280 píxeles.
|
||||
|
||||
### Verificado
|
||||
- QEMU. La barra al arrancar muestra el botón «+» indigo a la izquierda, las
|
||||
siete pestañas (con `glotona` ya legible en tinta oscura sobre crema), y el
|
||||
reloj `0:17` a la derecha (el tiempo que el kernel lleva vivo al capturar).
|
||||
Diez segundos después, el reloj marca `0:29` — la barra se ha refrescado
|
||||
doce veces sin intervención del ratón ni del teclado.
|
||||
|
||||
Reference in New Issue
Block a user