28 |
;;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
;;; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
29 |
;;; Special formatting conventions are used in this file! |
;;; Special formatting conventions are used in this file! |
30 |
;;; |
;;; |
31 |
;;; a backslash-newline is used at the beginning of a documentation string |
;;; A backslash-newline is used at the beginning of a documentation string |
32 |
;;; when that string should be stored in the file etc/DOCnnn, not in core. |
;;; when that string should be stored in the file etc/DOCnnn, not in core. |
33 |
;;; |
;;; |
34 |
;;; Such strings read into Lisp as numbers (during the pure-loading phase). |
;;; Such strings read into Lisp as numbers (during the pure-loading phase). |
256 |
(defvar mode-line-modes nil |
(defvar mode-line-modes nil |
257 |
"Mode-line control for displaying major and minor modes.") |
"Mode-line control for displaying major and minor modes.") |
258 |
|
|
259 |
|
(defvar mode-line-major-mode-keymap nil "\ |
260 |
|
Keymap to display on major mode.") |
261 |
|
|
262 |
(defvar mode-line-minor-mode-keymap nil "\ |
(defvar mode-line-minor-mode-keymap nil "\ |
263 |
Keymap to display on major and minor modes.") |
Keymap to display on minor modes.") |
264 |
|
|
265 |
|
(let ((map (make-sparse-keymap))) |
266 |
|
(define-key map [mode-line mouse-2] 'describe-mode) |
267 |
|
(setq mode-line-major-mode-keymap map)) |
268 |
|
|
269 |
;; Menu of minor modes. |
;; Menu of minor modes. |
270 |
(let ((map (make-sparse-keymap))) |
(let ((map (make-sparse-keymap))) |
271 |
|
(define-key map [mode-line mouse-2] 'mode-line-minor-mode-help) |
272 |
(define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1) |
(define-key map [mode-line down-mouse-3] 'mode-line-mode-menu-1) |
273 |
(define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1) |
(define-key map [header-line down-mouse-3] 'mode-line-mode-menu-1) |
274 |
(setq mode-line-minor-mode-keymap map)) |
(setq mode-line-minor-mode-keymap map)) |
300 |
(setq-default mode-line-modes |
(setq-default mode-line-modes |
301 |
(list |
(list |
302 |
(propertize "%[(" 'help-echo help-echo) |
(propertize "%[(" 'help-echo help-echo) |
303 |
`(:propertize ("" mode-name mode-line-process minor-mode-alist) |
`(:propertize ("" mode-name) |
304 |
help-echo "mouse-3: minor mode menu" |
help-echo "mouse-2: help for current major mode" |
305 |
|
local-map ,mode-line-major-mode-keymap) |
306 |
|
`(:propertize ("" mode-line-process)) |
307 |
|
`(:propertize ("" minor-mode-alist) |
308 |
|
help-echo "mouse-2: help for minor modes, mouse-3: minor mode menu" |
309 |
local-map ,mode-line-minor-mode-keymap) |
local-map ,mode-line-minor-mode-keymap) |
310 |
(propertize "%n" 'help-echo "mouse-2: widen" |
(propertize "%n" 'help-echo "mouse-2: widen" |
311 |
'local-map (make-mode-line-mouse-map |
'local-map (make-mode-line-mouse-map |
429 |
(interactive "@e") |
(interactive "@e") |
430 |
(x-popup-menu event mode-line-mode-menu)) |
(x-popup-menu event mode-line-mode-menu)) |
431 |
|
|
432 |
|
(defun mode-line-minor-mode-help (event) |
433 |
|
"Describe minor mode for EVENT occured on minor modes area of the mode line." |
434 |
|
(interactive "@e") |
435 |
|
(let ((indicator (car (nth 4 (car (cdr event)))))) |
436 |
|
(describe-minor-mode-from-indicator indicator))) |
437 |
|
|
438 |
;; Add menu of buffer operations to the buffer identification part |
;; Add menu of buffer operations to the buffer identification part |
439 |
;; of the mode line.or header line. |
;; of the mode line.or header line. |
440 |
; |
; |