comparison lisp/bindings.el @ 33261:a3294ec7a032

(mode-line-toggle-read-only) (mode-line-toggle-modified, mode-line-widen) (mode-line-abbrev-mode, mode-line-auto-fill-mode): New functions. (make-mode-line-mouse2-map): Rewritten. (mode-line-modified, mode-line-format, minor-mode-alist): Use new functions so that C-h k can show something with a doc string.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 06 Nov 2000 16:43:42 +0000
parents 0cc084d7b4a7
children f8f722137584
comparison
equal deleted inserted replaced
33260:7ea177b4933a 33261:a3294ec7a032
50 (defun make-mode-line-mouse2-map (f) "\ 50 (defun make-mode-line-mouse2-map (f) "\
51 Return a keymap with single entry for mouse-2 on mode line. 51 Return a keymap with single entry for mouse-2 on mode line.
52 This is defined to run function F with no args in the buffer 52 This is defined to run function F with no args in the buffer
53 corresponding to the mode line clicked." 53 corresponding to the mode line clicked."
54 (let ((map (make-sparse-keymap))) 54 (let ((map (make-sparse-keymap)))
55 (define-key map [mode-line mouse-2] 55 (define-key map [mode-line mouse-2] f)
56 `(lambda (e)
57 (interactive "e")
58 (save-selected-window
59 (select-window
60 (posn-window (event-start e)))
61 (,f)
62 (force-mode-line-update))))
63 map)) 56 map))
57
58
59 (defun mode-line-toggle-read-only (event)
60 "Like `toggle-read-only', for the mode-line."
61 (interactive "e")
62 (save-selected-window
63 (select-window (posn-window (event-start event)))
64 (toggle-read-only)
65 (force-mode-line-update)))
66
67
68 (defun mode-line-toggle-modified (event)
69 "Toggle the buffer-modified flag from the mode-line."
70 (interacive "e")
71 (save-selected-window
72 (select-window (posn-window (event-start event)))
73 (set-buffer-modified-p (not (buffer-modified-p)))
74 (force-mode-line-update)))
75
76
77 (defun mode-line-widen (event)
78 "Widen a buffer from the mode-line."
79 (interacive "e")
80 (save-selected-window
81 (select-window (posn-window (event-start event)))
82 (widen)
83 (force-mode-line-update)))
84
85
86 (defun mode-line-abbrev-mode (event)
87 "Turn off `abbrev-mode' from the mode-line."
88 (interacive "e")
89 (save-selected-window
90 (select-window (posn-window (event-start event)))
91 (abbrev-mode)
92 (force-mode-line-update)))
93
94
95 (defun mode-line-auto-fill-mode (event)
96 "Turn off `auto-fill-mode' from the mode-line."
97 (interacive "e")
98 (save-selected-window
99 (select-window (posn-window (event-start event)))
100 (auto-fill-mode)
101 (force-mode-line-update)))
102
64 103
65 (defvar mode-line-input-method-map 104 (defvar mode-line-input-method-map
66 (let ((map (make-sparse-keymap))) 105 (let ((map (make-sparse-keymap)))
67 (define-key map [mode-line mouse-2] 106 (define-key map [mode-line mouse-2]
68 (lambda (e) 107 (lambda (e)
141 (save-selected-window 180 (save-selected-window
142 (select-window window) 181 (select-window window)
143 (if buffer-read-only 182 (if buffer-read-only
144 "R" 183 "R"
145 "Not r"))))) 184 "Not r")))))
146 'local-map (purecopy (make-mode-line-mouse2-map #'toggle-read-only))) 185 'local-map (purecopy (make-mode-line-mouse2-map
186 #'mode-linetoggle-read-only)))
147 (propertize 187 (propertize
148 "%1+" 188 "%1+"
149 'help-echo (purecopy (lambda (window object point) 189 'help-echo (purecopy (lambda (window object point)
150 (format "%sodified: mouse-2 toggles flag" 190 (format "%sodified: mouse-2 toggles flag"
151 (save-selected-window 191 (save-selected-window
152 (select-window window) 192 (select-window window)
153 (if (buffer-modified-p) 193 (if (buffer-modified-p)
154 "M" 194 "M"
155 "Not m"))))) 195 "Not m")))))
156 'local-map (purecopy (make-mode-line-mouse2-map 196 'local-map (purecopy (make-mode-line-mouse2-map
157 (lambda () 197 #'mode-line-toggle-modified))))
158 (interactive)
159 (set-buffer-modified-p
160 (not (buffer-modified-p))))))))
161 "Mode-line control for displaying whether current buffer is modified.") 198 "Mode-line control for displaying whether current buffer is modified.")
162 199
163 (make-variable-buffer-local 'mode-line-modified) 200 (make-variable-buffer-local 'mode-line-modified)
164 201
165 (setq-default mode-line-format 202 (setq-default mode-line-format
180 (propertize " " 'help-echo help-echo) 217 (propertize " " 'help-echo help-echo)
181 'global-mode-string 218 'global-mode-string
182 (propertize " %[(" 'help-echo help-echo) 219 (propertize " %[(" 'help-echo help-echo)
183 '(:eval (mode-line-mode-name)) 'mode-line-process 'minor-mode-alist 220 '(:eval (mode-line-mode-name)) 'mode-line-process 'minor-mode-alist
184 (propertize "%n" 'help-echo "mouse-2: widen" 221 (propertize "%n" 'help-echo "mouse-2: widen"
185 'local-map (make-mode-line-mouse2-map #'widen)) 222 'local-map (make-mode-line-mouse2-map #'mode-line-widen))
186 (propertize ")%]--" 'help-echo help-echo) 223 (propertize ")%]--" 'help-echo help-echo)
187 `(which-func-mode ("" which-func-format ,dashes)) 224 `(which-func-mode ("" which-func-format ,dashes))
188 `(line-number-mode ("L%l" ,dashes)) 225 `(line-number-mode ("L%l" ,dashes))
189 `(column-number-mode ("C%c" ,dashes)) 226 `(column-number-mode ("C%c" ,dashes))
190 (purecopy '(-3 . "%p")) 227 (purecopy '(-3 . "%p"))
203 (list 'abbrev-mode 240 (list 'abbrev-mode
204 (propertize " Abbrev" 241 (propertize " Abbrev"
205 'help-echo (purecopy 242 'help-echo (purecopy
206 "mouse-2: turn off Abbrev mode") 243 "mouse-2: turn off Abbrev mode")
207 'local-map (purecopy (make-mode-line-mouse2-map 244 'local-map (purecopy (make-mode-line-mouse2-map
208 #'abbrev-mode)))) 245 #'mode-line-abbrev-mode))))
209 '(overwrite-mode overwrite-mode) 246 '(overwrite-mode overwrite-mode)
210 (list 'auto-fill-function 247 (list 'auto-fill-function
211 (propertize " Fill" 248 (propertize " Fill"
212 'help-echo (purecopy 249 'help-echo (purecopy
213 "mouse-2: turn off Autofill mode") 250 "mouse-2: turn off Autofill mode")
214 'local-map (purecopy (make-mode-line-mouse2-map 251 'local-map (purecopy (make-mode-line-mouse2-map
215 #'auto-fill-mode)))) 252 #'mode-line-auto-fill-mode))))
216 ;; not really a minor mode... 253 ;; not really a minor mode...
217 '(defining-kbd-macro " Def"))) 254 '(defining-kbd-macro " Def")))
218 255
219 (defvar mode-line-buffer-identification-keymap nil "\ 256 (defvar mode-line-buffer-identification-keymap nil "\
220 Keymap for what is displayed by `mode-line-buffer-identification'.") 257 Keymap for what is displayed by `mode-line-buffer-identification'.")