Expand description
llimphi-widget-context-menu — menú contextual con look tawasuyu.
Distintivo y minimalista:
┃ B5 ← header (uppercase tiny)
┃ ✂ Cortar Ctrl+X
┃ ⧉ Copiar Ctrl+C ← gutter de íconos + barra accent (3px)
┃ ⎘ Pegar Ctrl+V
┃ ─────────────────────
┃ ◐ Tema ▸ ← submenú (flyout a la derecha)Cada fila: barra accent vertical (firma) · gutter de ícono · label (centrado vertical) · atajo o chevron de submenú. Sin radios, sin sombras: color sólido + tipografía + la barra accent.
Se monta como View<Msg> que se devuelve desde
llimphi_ui::App::view_overlay. Internamente arma:
- Un scrim full-screen con
on_click = on_dismissque cierra el menú al click-fuera. - Un panel absoluto (clampeado al viewport).
- Si hay un submenú abierto ([
ContextMenuSpec::open_sub]), un segundo panel-flyout a la derecha del item padre.
Animación: [ContextMenuSpec::appear] (0..1) controla un fade + un
leve desplazamiento vertical de entrada. La app que quiera animarlo
guarda un Tween y lo va subiendo; pasar 1.0 lo muestra fijo.
Structs§
- Context
Menu Extras - Capacidades extra opcionales para
context_menu_view_ex: submenús (flyout), animación de aparición y hover. SuDefaultreproduce el menú clásico (sin animación ni submenús). - Context
Menu Item - Un item del menú.
separator = trueignora el resto y pinta una línea.childrenno vacío → es un submenú (muestra chevron ▸ y, si está abierto, despliega un flyout).icones un glifo opcional que se pinta en el gutter izquierdo. - Context
Menu Palette - Paleta del menú — estilo “webpage” elegante derivado del theme:
panel redondeado con borde hairline, filas como píldoras con hover
suave (
bg_hover) y resaltado de teclado (bg_active, más un indicador accent a la izquierda). Defaults dark; override por la app. - Context
Menu Spec - Especificación del menú. Mantiene los 8 campos clásicos para no
romper los call-sites por literal; las capacidades nuevas (submenús,
animación, hover) viajan aparte en
ContextMenuExtrasvíacontext_menu_view_ex.
Functions§
- context_
menu_ view - Compone el menú clásico (sin submenús ni animación) como
View<Msg>paraApp::view_overlay. Íconos, centrado vertical y separadores ya vienen incluidos. - context_
menu_ view_ ex - Como
context_menu_viewpero conContextMenuExtras: submenús (flyout en hover), animación de aparición y hover. - step_
active - Navegación por teclado: dado el activo + dirección (
+1/-1), el siguiente índice válido (saltea separators y disabled).usize::MAXsi no hay elegibles.