Estoy haciendo mi propio modo menor para emacs. Ahora quiero agregar el botón a la línea de modo. Haga clic en este botón para que aparezca el menú emergente. Los elementos de este menú dependen de las acciones del usuario. Sé que hay una forma de agregar un botón de función a modeline con `minor-mode-alist ', pero no tengo idea de cómo hacer un menú dinámico.¿Agregar botón con menú dinámico a la línea de edición de emacs?
8
A
Respuesta
1
He encontrado forma más adecuada: Cuando se define el modo de menor importancia, puede especificar: param más ligero
(define-minor-mode my-minor-mode
"docstring"
nil
:lighter (:eval (format "%s%.5s" "#" "some code if you want dynamic label"))
;or just string :lighter "static string"
:keymap my-minor-mode-map
... ... ... rest of code ....
entonces puede utilizar EasyMenu:
(require 'easymenu)
(easy-menu-define my-minor-mode-menu
my-minor-mode-map
"Menu for my-minor-mode"
'("some text"
"-")) ;separator
; and then add menu items with easy-menu-add-item and remove with easy-menu-remove-item
; it's nothing hard. Read the docs ;)
Este menú se añadirá al menú global -bar y aparecerá si hace clic en automático agregado (porque ha especificado: más ligero param) botón de modo menor en modeline.
6
Ok. Solución fundada :)
Primera:. Definir algunas mapa de teclas:
(defconst my-mode-line-map
(let ((map (make-sparse-keymap)))
(define-key map [mode-line down-mouse-1]
(make-sparse-keymap))
map))
En segundo lugar: la lista con una cuerda propertized anexar a Modeline:
(setq global-mode-string
(append global-mode-string
(list
(propertize string-name
'local-map my-mode-line-map
'mouse-face 'mode-line-highlight))))
Tercero: Ahora puede añadir elementos con
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list some_generated_id_for_future_use))
(cons name function))
... y eliminar con
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list id_of_button_that_u_gave_when_add))
nil)
Cuestiones relacionadas
- 1. Emacs: agregar nombre de host a la línea de modo?
- 2. Menú dinámico usando mfc
- 3. Emacs Edición Yaml
- 4. Extensión de Chrome: menú dinámico con clic derecho
- 5. Agregar botón a la izquierda de UISearchBar
- 6. jQuery Datatable botón de edición dinámica adjunto a cada fila
- 7. Cómo agregar un toque dinámico a las macros de emacs y/o a las sustituciones de las consultas?
- 8. Interfaz de usuario de menú dinámico MVVM vinculante con ViewModel
- 9. emacs opciones de menú mientras se ejecuta en la terminal
- 10. ¿Cómo agregar el botón dinámico en otra vista?
- 11. Agregar un menú contextual a un elemento
- 12. Sistema de menú dinámico Asp.net MVC
- 13. Cómo agregar un elemento de menú al menú contextual predeterminado del botón derecho
- 14. Agregar menú desplegable a la cinta CRM 2011
- 15. Crear un botón dinámico de Pinterest?
- 16. Botón Agregar a UITableViewCell
- 17. Agregar botón a la barra de herramientas superior jqGrid
- 18. iPhone SDK - UIActionSheet - Títulos de botón dinámico
- 19. Crear botón dinámico en PyQt
- 20. Agregar botón a la cuadrícula en ExtJs
- 21. Controlador de botón posterior Un formulario dinámico
- 22. ¿Cómo convivir con el alcance dinámico de Emacs Lisp?
- 23. Desactivar el botón de menú?
- 24. Agregar dinámicamente miembros a un objeto dinámico
- 25. Agregar botón a la barra de título de la ventana
- 26. Radio Control Dinámico Botón
- 27. ¿Cómo puedo agregar un QLineEdit a la barra de menú
- 28. ¿Cómo agregar la entrada de menú a "Ejecutar como"?
- 29. Cómo agregar un botón Eliminar a la forma generada django.forms?
- 30. Edición de texto en línea en SVG