Mercurial > emacs
annotate lisp/menu-bar.el @ 4466:9d62b3cb7dd6
(after-find-file): Improve warning message about
existing file that can't be read.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 06 Aug 1993 18:03:10 +0000 |
parents | cda282328afd |
children | 6dd518d1f5aa |
rev | line source |
---|---|
2488
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
1 ;;; menu-bar.el --- define a default menu bar. |
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
2 |
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
3 ;; Author: RMS |
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
4 ;; Keywords: internals |
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
5 |
2485 | 6 ;; Copyright (C) 1993 Free Software Foundation, Inc. |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
10 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
11 ;; it under the terms of the GNU General Public License as published by | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
15 ;; GNU Emacs is distributed in the hope that it will be useful, | |
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;; GNU General Public License for more details. | |
19 | |
20 ;; You should have received a copy of the GNU General Public License | |
21 ;; along with GNU Emacs; see the file COPYING. If not, write to | |
22 ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
23 | |
2488
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
24 ;;; Code: |
2485 | 25 |
2175 | 26 (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar")) |
3504
5fb4eefbd7ac
(menu-bar-help-menu): Add defvar.
Richard M. Stallman <rms@gnu.org>
parents:
3500
diff
changeset
|
27 (defvar menu-bar-help-menu (make-sparse-keymap "Help")) |
4114
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
28 ;; Put Help item last. |
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
29 (setq menu-bar-final-items '(help)) |
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
30 (define-key global-map [menu-bar help] (cons "Help" menu-bar-help-menu)) |
3504
5fb4eefbd7ac
(menu-bar-help-menu): Add defvar.
Richard M. Stallman <rms@gnu.org>
parents:
3500
diff
changeset
|
31 (defvar menu-bar-edit-menu (make-sparse-keymap "Edit")) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
32 (define-key global-map [menu-bar edit] (cons "Edit" menu-bar-edit-menu)) |
3504
5fb4eefbd7ac
(menu-bar-help-menu): Add defvar.
Richard M. Stallman <rms@gnu.org>
parents:
3500
diff
changeset
|
33 (defvar menu-bar-file-menu (make-sparse-keymap "File")) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
34 (define-key global-map [menu-bar file] (cons "File" menu-bar-file-menu)) |
2175 | 35 |
2177
942a63709e37
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2175
diff
changeset
|
36 (define-key menu-bar-file-menu [exit-emacs] |
2175 | 37 '("Exit Emacs" . save-buffers-kill-emacs)) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
38 (define-key menu-bar-file-menu [kill-buffer] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
39 '("Kill Buffer" . kill-this-buffer)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
40 (define-key menu-bar-file-menu [delete-frame] '("Delete Frame" . delete-frame)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
41 (define-key menu-bar-file-menu [print-buffer] '("Print Buffer" . print-buffer)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
42 (define-key menu-bar-file-menu [revert-buffer] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
43 '("Revert Buffer" . revert-buffer)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
44 (define-key menu-bar-file-menu [write-file] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
45 '("Save Buffer As..." . write-file)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
46 (define-key menu-bar-file-menu [save-buffer] '("Save Buffer" . save-buffer)) |
4069
643048c8e307
(menu-bar-file-menu): Add menu item for dired.
Richard M. Stallman <rms@gnu.org>
parents:
4061
diff
changeset
|
47 (define-key menu-bar-file-menu [dired] '("Open Directory..." . dired)) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
48 (define-key menu-bar-file-menu [open-file] '("Open File..." . find-file)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
49 (define-key menu-bar-file-menu [new-frame] '("New Frame" . new-frame)) |
2175 | 50 |
4061
7279958409fe
(ispell-menu-map): New autoload definition.
Richard M. Stallman <rms@gnu.org>
parents:
4048
diff
changeset
|
51 |
7279958409fe
(ispell-menu-map): New autoload definition.
Richard M. Stallman <rms@gnu.org>
parents:
4048
diff
changeset
|
52 (define-key menu-bar-edit-menu [spell] '("Spell..." . ispell-menu-map)) |
2847
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
53 (define-key menu-bar-edit-menu [fill] '("Fill" . fill-region)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
54 (define-key menu-bar-edit-menu [clear] '("Clear" . delete-region)) |
4025
92cd14c9ea80
(mouse-menu-choose-yank): Change menu title to "Choose Next Yank".
Roland McGrath <roland@gnu.org>
parents:
3958
diff
changeset
|
55 (define-key menu-bar-edit-menu [choose-next-paste] |
3958
3112c8925d39
(menu-bar-edit-menu): Rename menu item to
Richard M. Stallman <rms@gnu.org>
parents:
3955
diff
changeset
|
56 '("Choose Next Paste" . mouse-menu-choose-yank)) |
2847
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
57 (define-key menu-bar-edit-menu [paste] '("Paste" . yank)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
58 (define-key menu-bar-edit-menu [copy] '("Copy" . kill-ring-save)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
59 (define-key menu-bar-edit-menu [cut] '("Cut" . kill-region)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
60 (define-key menu-bar-edit-menu [undo] '("Undo" . undo)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
61 |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
62 (put 'fill-region 'menu-enable 'mark-active) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
63 (put 'kill-region 'menu-enable 'mark-active) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
64 (put 'kill-ring-save 'menu-enable 'mark-active) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
65 (put 'yank 'menu-enable '(x-selection-exists-p)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
66 (put 'delete-region 'menu-enable 'mark-active) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
67 (put 'undo 'menu-enable '(if (eq last-command 'undo) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
68 pending-undo-list |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
69 (consp buffer-undo-list))) |
2175 | 70 |
4061
7279958409fe
(ispell-menu-map): New autoload definition.
Richard M. Stallman <rms@gnu.org>
parents:
4048
diff
changeset
|
71 (autoload 'ispell-menu-map "ispell" nil t 'keymap) |
7279958409fe
(ispell-menu-map): New autoload definition.
Richard M. Stallman <rms@gnu.org>
parents:
4048
diff
changeset
|
72 |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
73 (define-key menu-bar-help-menu [emacs-tutorial] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
74 '("Emacs Tutorial" . help-with-tutorial)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
75 (define-key menu-bar-help-menu [man] '("Man..." . manual-entry)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
76 (define-key menu-bar-help-menu [describe-variable] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
77 '("Describe Variable..." . describe-variable)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
78 (define-key menu-bar-help-menu [describe-function] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
79 '("Describe Function..." . describe-function)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
80 (define-key menu-bar-help-menu [describe-key] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
81 '("Describe Key..." . describe-key)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
82 (define-key menu-bar-help-menu [list-keybindings] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
83 '("List Keybindings" . describe-bindings)) |
2177
942a63709e37
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2175
diff
changeset
|
84 (define-key menu-bar-help-menu [command-apropos] |
2175 | 85 '("Command Apropos..." . command-apropos)) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
86 (define-key menu-bar-help-menu [describe-mode] |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
87 '("Describe Mode" . describe-mode)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
88 (define-key menu-bar-help-menu [info] '("Info" . info)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
89 |
2177
942a63709e37
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2175
diff
changeset
|
90 (define-key menu-bar-help-menu [emacs-news] '("Emacs News" . view-emacs-news)) |
2175 | 91 (defun kill-this-buffer () ; for the menubar |
92 "Kills the current buffer." | |
93 (interactive) | |
94 (kill-buffer (current-buffer))) | |
95 | |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
96 (defun kill-this-buffer-enabled-p () |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
97 (let ((count 0) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
98 (buffers (buffer-list))) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
99 (while buffers |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
100 (or (string-match "^ " (buffer-name (car buffers))) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
101 (setq count (1+ count))) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
102 (setq buffers (cdr buffers))) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
103 (> count 1))) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
104 |
2175 | 105 (put 'save-buffer 'menu-enable '(buffer-modified-p)) |
4114
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
106 (put 'revert-buffer 'menu-enable |
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
107 '(or revert-buffer-function revert-buffer-insert-file-contents-function |
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
108 (and (buffer-file-name) |
5746e25610f8
(revert-buffer): Make menu-enable form more accurate
Richard M. Stallman <rms@gnu.org>
parents:
4101
diff
changeset
|
109 (not (verify-visited-file-modtime (current-buffer)))))) |
4337
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
110 ;; Permit deleting frame if it would leave a visible or iconified frame. |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
111 (put 'delete-frame 'menu-enable |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
112 '(let ((frames (frame-list)) |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
113 (count 0)) |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
114 (while frames |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
115 (if (cdr (assq 'visibility (frame-parameters (car frames)))) |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
116 (setq count (1+ count))) |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
117 (setq frames (cdr frames))) |
cda282328afd
(delete-frame): Permit it, if > 1 frame is vis or iconic.
Richard M. Stallman <rms@gnu.org>
parents:
4160
diff
changeset
|
118 (> count 1))) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
119 (put 'kill-this-buffer 'menu-enable '(kill-this-buffer-enabled-p)) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
120 |
2175 | 121 (put 'advertised-undo 'menu-enable |
122 '(and (not (eq t buffer-undo-list)) | |
123 (if (eq last-command 'undo) | |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
124 (and (boundp 'pending-undo-list) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
125 pending-undo-list) |
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
126 buffer-undo-list))) |
3795
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
127 |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
128 (defvar yank-menu-length 100 |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
129 "*Maximum length of an item in the menu for \ |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
130 \\[mouse-menu-choose-yank].") |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
131 |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
132 (defun mouse-menu-choose-yank (event) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
133 "Pop up a menu of the kill-ring for selection with the mouse. |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
134 The kill-ring-yank-pointer is moved to the selected element. |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
135 A subsequent \\[yank] yanks the choice just selected." |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
136 (interactive "e") |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
137 (let* ((count 0) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
138 (menu (mapcar (lambda (string) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
139 (if (> (length string) yank-menu-length) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
140 (setq string (substring string |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
141 0 yank-menu-length))) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
142 (prog1 (cons string count) |
d59af8c9bc65
(mouse-menu-choose-yank): New function. Put it in the edit menu.
Richard M. Stallman <rms@gnu.org>
parents:
3504
diff
changeset
|
143 (setq count (1+ count)))) |
3942
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
144 kill-ring)) |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
145 (arg (x-popup-menu event |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
146 (list "Yank Menu" |
4025
92cd14c9ea80
(mouse-menu-choose-yank): Change menu title to "Choose Next Yank".
Roland McGrath <roland@gnu.org>
parents:
3958
diff
changeset
|
147 (cons "Choose Next Yank" menu))))) |
3942
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
148 ;; A mouse click outside the menu returns nil. |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
149 ;; Avoid a confusing error from passing nil to rotate-yank-pointer. |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
150 ;; XXX should this perhaps do something other than simply return? -rm |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
151 (if arg |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
152 (progn |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
153 (rotate-yank-pointer arg) |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
154 (if (interactive-p) |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
155 (message "The next yank will insert the selected text.") |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
156 (current-kill 0)))))) |
877f540d9717
(mouse-menu-choose-yank): Just return when x-popup-menu returns nil.
Roland McGrath <roland@gnu.org>
parents:
3898
diff
changeset
|
157 (put 'mouse-menu-choose-yank 'menu-enable 'kill-ring) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
158 |
3412
7d9b10bea55f
(mouse-menu-bar-buffers): Renamed from mouse-buffer-menu.
Richard M. Stallman <rms@gnu.org>
parents:
3007
diff
changeset
|
159 (define-key global-map [menu-bar buffer] '("Buffers" . mouse-menu-bar-buffers)) |
2178
76da020d14f8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2177
diff
changeset
|
160 |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
161 (defvar complex-buffers-menu-p nil |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
162 "*Non-nil says, offer a choice of actions after you pick a buffer. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
163 This applies to the Buffers menu from the menu bar.") |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
164 |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
165 (defvar buffers-menu-max-size 10 |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
166 "*Maximum number of entries which may appear on the Buffers menu. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
167 If this is 10, then only the ten most-recently-selected buffers are shown. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
168 If this is nil, then all buffers are shown. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
169 A large number or nil slows down menu responsiveness.") |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
170 |
3412
7d9b10bea55f
(mouse-menu-bar-buffers): Renamed from mouse-buffer-menu.
Richard M. Stallman <rms@gnu.org>
parents:
3007
diff
changeset
|
171 (defun mouse-menu-bar-buffers (event) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
172 "Pop up a menu of buffers for selection with the mouse. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
173 This switches buffers in the window that you clicked on, |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
174 and selects that window." |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
175 (interactive "e") |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
176 (let ((buffers (buffer-list)) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
177 menu) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
178 ;; If requested, list only the N most recently selected buffers. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
179 (if (and (integerp buffers-menu-max-size) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
180 (> buffers-menu-max-size 1)) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
181 (if (> (length buffers) buffers-menu-max-size) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
182 (setcdr (nthcdr buffers-menu-max-size buffers) nil))) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
183 (setq menu |
4160
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
184 (cons "Select Buffer" |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
185 (let ((tail buffers) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
186 (maxbuf 0) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
187 (maxlen 0) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
188 head) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
189 (while tail |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
190 (or (eq ?\ (aref (buffer-name (car tail)) 0)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
191 (setq maxbuf |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
192 (max maxbuf |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
193 (length (buffer-name (car tail)))))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
194 (setq tail (cdr tail))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
195 (setq tail buffers) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
196 (while tail |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
197 (let ((elt (car tail))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
198 (if (not (string-match "^ " |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
199 (buffer-name elt))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
200 (setq head (cons |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
201 (cons |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
202 (format |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
203 (format "%%%ds %%s%%s %%s" |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
204 maxbuf) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
205 (buffer-name elt) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
206 (if (buffer-modified-p elt) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
207 "*" " ") |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
208 (save-excursion |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
209 (set-buffer elt) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
210 (if buffer-read-only "%" " ")) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
211 (or (buffer-file-name elt) "")) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
212 elt) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
213 head))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
214 (and head (> (length (car (car head))) maxlen) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
215 (setq maxlen (length (car (car head)))))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
216 (setq tail (cdr tail))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
217 (nconc (nreverse head) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
218 (list (cons |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
219 (concat (make-string (max (- (/ maxlen |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
220 2) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
221 8) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
222 0) ?\ ) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
223 "List All Buffers") |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
224 'list-buffers)))))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
225 (setq menu (list menu)) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
226 |
4160
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
227 (if (cdr (frame-list)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
228 (setq menu |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
229 (cons (cons "Select Frame" |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
230 (mapcar (lambda (frame) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
231 (cons (cdr (assq 'name |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
232 (frame-parameters frame))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
233 frame)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
234 (frame-list))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
235 menu))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
236 (setq menu (cons "Buffer and Frame Menu" menu)) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
237 |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
238 (let ((buf (x-popup-menu (if (listp event) event |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
239 (cons '(0 0) (selected-frame))) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
240 menu)) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
241 (window (and (listp event) (posn-window (event-start event))))) |
4160
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
242 (cond ((framep buf) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
243 (make-frame-visible buf) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
244 (raise-frame buf) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
245 (select-frame buf)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
246 ((eq buf 'list-buffers) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
247 (list-buffers)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
248 (buf |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
249 (if complex-buffers-menu-p |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
250 (let ((action (x-popup-menu |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
251 (if (listp event) event |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
252 (cons '(0 0) (selected-frame))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
253 '("Buffer Action" |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
254 ("" |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
255 ("Save Buffer" . save-buffer) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
256 ("Kill Buffer" . kill-buffer) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
257 ("Select Buffer" . switch-to-buffer)))))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
258 (if (eq action 'save-buffer) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
259 (save-excursion |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
260 (set-buffer buf) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
261 (save-buffer)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
262 (funcall action buf))) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
263 (and (windowp window) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
264 (select-window window)) |
4c4910d66232
(mouse-menu-bar-buffers): Add Frames pane if there are multiple panes.
Roland McGrath <roland@gnu.org>
parents:
4114
diff
changeset
|
265 (switch-to-buffer buf))))))) |
2181
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
266 |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
267 ;; this version is too slow |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
268 ;;;(defun format-buffers-menu-line (buffer) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
269 ;;; "Returns a string to represent the given buffer in the Buffer menu. |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
270 ;;;nil means the buffer shouldn't be listed. You can redefine this." |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
271 ;;; (if (string-match "\\` " (buffer-name buffer)) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
272 ;;; nil |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
273 ;;; (save-excursion |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
274 ;;; (set-buffer buffer) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
275 ;;; (let ((size (buffer-size))) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
276 ;;; (format "%s%s %-19s %6s %-15s %s" |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
277 ;;; (if (buffer-modified-p) "*" " ") |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
278 ;;; (if buffer-read-only "%" " ") |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
279 ;;; (buffer-name) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
280 ;;; size |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
281 ;;; mode-name |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
282 ;;; (or (buffer-file-name) "")))))) |
5a9d9dcc4750
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
2178
diff
changeset
|
283 |
2847
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
284 (defvar menu-bar-mode nil) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
285 |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
286 (defun menu-bar-mode (flag) |
3007
e41b3dc686bb
(menu-bar-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
2847
diff
changeset
|
287 "Toggle display of a menu bar on each frame. |
2847
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
288 This command applies to all frames that exist and frames to be |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
289 created in the future. |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
290 With a numeric argument, if the argument is negative, |
3007
e41b3dc686bb
(menu-bar-mode): Doc fix.
Richard M. Stallman <rms@gnu.org>
parents:
2847
diff
changeset
|
291 turn off menu bars; otherwise, turn on menu bars." |
2847
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
292 (interactive "P") |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
293 (setq menu-bar-mode (if (null flag) (not menu-bar-mode) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
294 (or (not (numberp flag)) (>= flag 0)))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
295 (let ((parameter (assq 'menu-bar-lines default-frame-alist))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
296 (if (consp parameter) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
297 (setcdr parameter (if menu-bar-mode 1 0)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
298 (setq default-frame-alist |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
299 (cons (cons 'menu-bar-lines (if menu-bar-mode 1 0)) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
300 default-frame-alist)))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
301 (let ((frames (frame-list))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
302 (while frames |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
303 ;; Turn menu bar on or off in existing frames. |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
304 ;; (Except for minibuffer-only frames.) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
305 (or (eq 'only (cdr (assq 'minibuffer (frame-parameters (car frames))))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
306 (modify-frame-parameters |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
307 (car frames) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
308 (list (if menu-bar-mode |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
309 '(menu-bar-lines . 1) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
310 '(menu-bar-lines . 0))))) |
01a46a8f1e1b
(fill-region, kill-region, delete-region)
Richard M. Stallman <rms@gnu.org>
parents:
2765
diff
changeset
|
311 (setq frames (cdr frames))))) |
2485 | 312 |
313 ;; Make frames created from now on have a menu bar. | |
3500
78c1c1e9f4d2
(window-system): Enable menu bars only if
Richard M. Stallman <rms@gnu.org>
parents:
3412
diff
changeset
|
314 (if window-system |
78c1c1e9f4d2
(window-system): Enable menu bars only if
Richard M. Stallman <rms@gnu.org>
parents:
3412
diff
changeset
|
315 (menu-bar-mode t)) |
2485 | 316 |
2765 | 317 (provide 'menu-bar) |
318 | |
2488
278580be9b4a
Added and corrected library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2485
diff
changeset
|
319 ;;; menu-bar.el ends here |