Tworzę własny tryb pomocniczy dla emacsa. Teraz chcę dodać przycisk do modeliny. Kliknij ten przycisk, aby uzyskać wyskakujące menu. Pozycje tego menu zależą od działań użytkownika. Wiem, że istnieje sposób na dodanie przycisku funkcyjnego do modeliny z "minor-mode-alist", ale nie mam pojęcia, jak zrobić menu dynamiczne.Dodaj przycisk z dynamicznym menu do modeliny emacsa?
8
A
Odpowiedz
1
Znalazłam bardziej właściwy sposób: Podczas definiowania trybu niewielki, można określić: lżejszy param
(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 ....
następnie można użyć 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 ;)
To menu zostanie dodana do globalnego menu -bar i wyświetli się, jeśli klikniesz na auto dodany (bo to określiłeś: jaśniejszy parametr), przycisk trybu minorowego na modeline.
6
Ok. założony rozwiązanie :)
pierwsze:. zdefiniować jakąś mapę klawiszy:
(defconst my-mode-line-map
(let ((map (make-sparse-keymap)))
(define-key map [mode-line down-mouse-1]
(make-sparse-keymap))
map))
drugie: listę propertized ciąg dołączania do Modeline:
(setq global-mode-string
(append global-mode-string
(list
(propertize string-name
'local-map my-mode-line-map
'mouse-face 'mode-line-highlight))))
trzecie: Teraz można dodać elementy z
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list some_generated_id_for_future_use))
(cons name function))
... i usunąć przy pomocy
(define-key my-mode-line-map
(vconcat [mode-line down-mouse-1]
(list id_of_button_that_u_gave_when_add))
nil)
Powiązane problemy
- 1. dodaj przycisk do uitextfield
- 2. ExtJS: dodaj przycisk do htmleditor
- 3. Swift3: Dodaj przycisk z kodem
- 4. Jak podświetlić przycisk menu?
- 5. Dodaj niestandardowe menu administratora do woocommerce
- 6. OpenCart: Dodaj kategorie do menu głównego?
- 7. Dodaj przycisk Ujawnianie MKPointAnnotation
- 8. Dodaj ikonę do kontekstowego menu podrzędnego
- 9. Dodaj przycisk do siatki w ExtJs
- 10. Dodaj pozytywny przycisk do okna dialogowego
- 11. Dodaj przycisk do prawej strony nagłówka
- 12. Dodaj przycisk do paska tytułu okna
- 13. Dodaj przycisk zamknięcia do UIModalPresentationPageU rogu narożnika
- 14. ChannelFactory bug z dynamicznym argumentów
- 15. dodaj przycisk wstążki podobny do "Otwórz" z opcjami rozwijanymi
- 16. Dodaj przycisk na UITableViewController (Swift)
- 17. MPMoviePlayerController Dodaj niestandardowy przycisk odtwarzania
- 18. Dodaj rozpiętość w wordpress menu
- 19. Highcharts: Dodaj przycisk niestandardowego obrazu
- 20. Paypal Przycisk Dodaj do koszyka - jak wygenerować za pomocą Java?
- 21. Wklejanie tekstu do emacsa na komputerze Macintosh
- 22. Dodaj przycisk Usuń w RecyclerView
- 23. Dodaj dynamicznie przycisk Jquery ui
- 24. Bootstrap 3 Ukryj menu rozwijane w pozycji menu Kliknij przycisk
- 25. Jak naprawić wartość po prawej stronie modeliny?
- 26. Problem z programowaniem dynamicznym
- 27. Autouzupełnianie Emacsa
- 28. Dostęp do tablicy kierownicy z indeksem dynamicznym
- 29. Problemy z programowaniem dynamicznym
- 30. Dodaj prostą strzałkę w dół obrazu do rozwijanego menu