From 180bbf68efed416ed71e5aeefe43990fea10f8e7 Mon Sep 17 00:00:00 2001 From: stardiviner Date: Tue, 7 Feb 2017 16:17:52 +0800 Subject: [PATCH] improve properties - improve :lighter --- major-mode-icons.el | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/major-mode-icons.el b/major-mode-icons.el index dca5e73..617b5e9 100644 --- a/major-mode-icons.el +++ b/major-mode-icons.el @@ -134,8 +134,18 @@ (propertize " " 'display (if (and (file-exists-p icon-path) (image-type-available-p 'xpm)) - (create-image icon-path 'xpm nil :ascent 'center))) - (propertize (format "%s" mode-name)) + (create-image icon-path 'xpm nil :ascent 'center)) + 'mouse-face 'mode-line-highlight + 'help-echo "Major-mode\n\ mouse-1: Display major mode menu\n\ mouse2: Show help for major mode\n\ mouse-3: Toggle minor modes" + 'local-map (let ((map (make-sparse-keymap))) + (define-key map [mode-line down-mouse-1] + `(menu-item ,(purecopy "Menu Bar") ignore + :filter (lambda (_) (mouse-menu-major-mode-map)))) + (define-key map [mode-line mouse-2] 'describe-mode) + (define-key map [mode-line down-mouse-3] mode-line-mode-menu) + map) + ) + (propertize (format-mode-line mode-name)) ) ;;; extra (if extra @@ -169,17 +179,27 @@ "Show icon on mode-line." (major-mode-icons--major-mode-icon (major-mode-icons--major-mode-extra))) +;;;###autoload (defvar major-mode-icons-lighter (let* ((match (major-mode-icons--major-mode-list-match)) (icon (cdr match))) - (propertize (format " %s " mode-name) ; display `mode-name' text. - 'display + (propertize (format-mode-line mode-name) ; display `mode-name' text. + 'display ; display icon (let ((icon-path (concat major-mode-icons-icons-path icon ".xpm"))) (if (and (image-type-available-p 'xpm) (file-exists-p icon-path)) (create-image icon-path 'xpm nil :ascent 'center) - )))) + )) + 'mouse-face 'mode-line-highlight + 'help-echo "Major-mode\n\ mouse-1: Display major mode menu\n\ mouse2: Show help for major mode\n\ mouse-3: Toggle minor modes" + 'local-map (let ((map (make-sparse-keymap))) + (define-key map [mode-line down-mouse-1] + `(menu-item ,(purecopy "Menu Bar") ignore + :filter (lambda (_) (mouse-menu-major-mode-map)))) + (define-key map [mode-line mouse-2] 'describe-mode) + (define-key map [mode-line down-mouse-3] mode-line-mode-menu) + map))) "Lighter for minor mode `major-mode-icons'.") (put 'major-mode-icons-lighter 'risky-local-variable t) -- 2.11.4.GIT