Expand description
llimphi-widget-edit-menu — el menú de edición estándar para
cualquier campo de texto Llimphi.
Tanto el input single-line ([llimphi_widget_text_input]) como el
editor IDE enriquecido (llimphi_widget_text_editor) se apoyan en
el mismo EditorState. Este widget arma, a partir de ese estado,
el menú contextual canónico:
┃ EDICIÓN
┃ Deshacer Ctrl+Z
┃ Rehacer Ctrl+Y
┃ ─────────────────────
┃ Cortar Ctrl+X
┃ Copiar Ctrl+C
┃ Pegar Ctrl+V
┃ Eliminar Supr
┃ ─────────────────────
┃ Seleccionar todo Ctrl+ACada ítem se habilita o no según el estado real (sin selección → Cortar/Copiar/Eliminar grises; sin historial → Deshacer gris; etc).
Uso típico, en tres pasos por app:
- El campo emite la posición del click derecho —
View::on_right_click_at→Msg::AbrirMenuEdicion(x, y). Elupdateguarda el ancla. App::view_overlaydevuelveSome(context_menu_view(edit_menu::edit_context_menu(...)))cuando el ancla está presente.- El pick produce
Msg::Edicion(EditAction); elupdatellama aapplycon elEditorStatedel campo focuseado y el clipboard.
Structs§
- Edit
Flags - Banderas que deciden qué ítems van habilitados. Derivalas del estado
del campo focuseado con
EditFlags::from_editor.
Enums§
- Edit
Action - Una acción de edición del menú estándar. Es
Copypara que elon_pickla capture sin clonar y la app la rebote en unMsg.
Functions§
- apply
- Aplica una
EditActionalEditorState. Reutilizaapply_key_with_clipboard(sintetizando la tecla equivalente) para heredar exactamente el mismo comportamiento — incluido el bookkeeping de parseo incremental — que el atajo de teclado. Devuelve elApplyResultpara que el caller decida si persistir el cambio. - edit_
context_ menu - Arma el
ContextMenuSpecdel menú de edición listo paracontext_menu_view.on_actionrebota cada pick en unMsgde la app;on_dismisscierra al click-fuera o Esc. - edit_
menu_ action_ at - La
EditActionde la filaactive, oNonesi esa fila es un separador, está deshabilitada o fuera de rango. Pensado para resolver la tecla Enter sobre la fila resaltada poredit_menu_step. - edit_
menu_ items - Sólo los ítems (para componer un menú custom que incluya el bloque de edición seguido de acciones propias de la app).
- edit_
menu_ step - Mueve el resaltado de teclado por las filas del menú de edición, saltando
separadores y filas deshabilitadas.
active == usize::MAXsignifica “ninguna fila”;direction+1 baja, −1 sube. Pensado para enganchar flechas arriba/abajo sobre el menú de edición abierto (paralelo astep_active).