diff options
| author | Glenn Morris | 2010-10-28 00:05:00 -0700 |
|---|---|---|
| committer | Glenn Morris | 2010-10-28 00:05:00 -0700 |
| commit | b3edb781e066a462ae2f3eec95136ac9d778b379 (patch) | |
| tree | e98d703540de2574c6e7f714eb541998727711b9 | |
| parent | a87ee50bb9e0471765aadba771d44465edc39464 (diff) | |
| download | emacs-b3edb781e066a462ae2f3eec95136ac9d778b379.tar.gz emacs-b3edb781e066a462ae2f3eec95136ac9d778b379.zip | |
Move ns-specific menu-bar code from term/ns-win.el to menu-bar.el.
* lisp/term/ns-win.el (global-map, menu-bar-final-items, menu-bar-help-menu):
Move menu-bar related settings to ../menu-bar.el.
* lisp/menu-bar.el (global-map, menu-bar-final-items, menu-bar-help-menu):
Move ns-specific settings here from term/ns-win.el.
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/menu-bar.el | 71 | ||||
| -rw-r--r-- | lisp/term/ns-win.el | 42 |
3 files changed, 57 insertions, 61 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8ae264d36c2..922a9e6ee6e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,10 @@ | |||
| 1 | 2010-10-28 Glenn Morris <rgm@gnu.org> | 1 | 2010-10-28 Glenn Morris <rgm@gnu.org> |
| 2 | 2 | ||
| 3 | * term/ns-win.el (global-map, menu-bar-final-items, menu-bar-help-menu): | ||
| 4 | Move menu-bar related settings to ../menu-bar.el. | ||
| 5 | * menu-bar.el (global-map, menu-bar-final-items, menu-bar-help-menu): | ||
| 6 | Move ns-specific settings here from term/ns-win.el. | ||
| 7 | |||
| 3 | * simple.el (x-selection-owner-p): Remove unused declaration. | 8 | * simple.el (x-selection-owner-p): Remove unused declaration. |
| 4 | 9 | ||
| 5 | 2010-10-28 Stefan Monnier <monnier@iro.umontreal.ca> | 10 | 2010-10-28 Stefan Monnier <monnier@iro.umontreal.ca> |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 9d8e4749087..f75bbc5eb76 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -35,14 +35,33 @@ | |||
| 35 | (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))) | 35 | (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))) |
| 36 | (defvar menu-bar-help-menu (make-sparse-keymap "Help")) | 36 | (defvar menu-bar-help-menu (make-sparse-keymap "Help")) |
| 37 | 37 | ||
| 38 | ;; Force Help item to come last, after the major mode's own items. | 38 | (if (not (featurep 'ns)) |
| 39 | ;; The symbol used to be called `help', but that gets confused with the | 39 | ;; Force Help item to come last, after the major mode's own items. |
| 40 | ;; help key. | 40 | ;; The symbol used to be called `help', but that gets confused with the |
| 41 | (setq menu-bar-final-items '(help-menu)) | 41 | ;; help key. |
| 42 | (setq menu-bar-final-items '(help-menu)) | ||
| 43 | (if (eq system-type 'darwin) | ||
| 44 | (setq menu-bar-final-items '(buffer services help-menu)) | ||
| 45 | (setq menu-bar-final-items '(buffer services hide-app quit)) | ||
| 46 | ;; Add standard top-level items to GNUstep menu. | ||
| 47 | (define-key global-map [menu-bar quit] | ||
| 48 | `(menu-item ,(purecopy "Quit") save-buffers-kill-emacs | ||
| 49 | :help ,(purecopy "Save unsaved buffers, then exit"))) | ||
| 50 | (define-key global-map [menu-bar hide-app] | ||
| 51 | `(menu-item ,(purecopy "Hide") ns-do-hide-emacs | ||
| 52 | :help ,(purecopy "Hide Emacs")))) | ||
| 53 | (define-key global-map [menu-bar services] ; set-up in ns-win | ||
| 54 | (cons (purecopy "Services") (make-sparse-keymap "Services")))) | ||
| 55 | |||
| 56 | ;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). | ||
| 57 | (or (and (featurep 'ns) | ||
| 58 | (not (eq system-type 'darwin))) | ||
| 59 | (define-key global-map [menu-bar help-menu] | ||
| 60 | (cons (purecopy "Help") menu-bar-help-menu))) | ||
| 42 | 61 | ||
| 43 | (define-key global-map [menu-bar help-menu] (cons (purecopy "Help") menu-bar-help-menu)) | ||
| 44 | (defvar menu-bar-tools-menu (make-sparse-keymap "Tools")) | 62 | (defvar menu-bar-tools-menu (make-sparse-keymap "Tools")) |
| 45 | (define-key global-map [menu-bar tools] (cons (purecopy "Tools") menu-bar-tools-menu)) | 63 | (define-key global-map [menu-bar tools] |
| 64 | (cons (purecopy "Tools") menu-bar-tools-menu)) | ||
| 46 | ;; This definition is just to show what this looks like. | 65 | ;; This definition is just to show what this looks like. |
| 47 | ;; It gets modified in place when menu-bar-update-buffers is called. | 66 | ;; It gets modified in place when menu-bar-update-buffers is called. |
| 48 | (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) | 67 | (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) |
| @@ -52,9 +71,17 @@ | |||
| 52 | (define-key global-map [menu-bar options] | 71 | (define-key global-map [menu-bar options] |
| 53 | (cons (purecopy "Options") menu-bar-options-menu)) | 72 | (cons (purecopy "Options") menu-bar-options-menu)) |
| 54 | (defvar menu-bar-edit-menu (make-sparse-keymap "Edit")) | 73 | (defvar menu-bar-edit-menu (make-sparse-keymap "Edit")) |
| 55 | (define-key global-map [menu-bar edit] (cons (purecopy "Edit") menu-bar-edit-menu)) | 74 | (define-key global-map [menu-bar edit] |
| 75 | (cons (purecopy "Edit") menu-bar-edit-menu)) | ||
| 56 | (defvar menu-bar-file-menu (make-sparse-keymap "File")) | 76 | (defvar menu-bar-file-menu (make-sparse-keymap "File")) |
| 57 | (define-key global-map [menu-bar file] (cons (purecopy "File") menu-bar-file-menu)) | 77 | (define-key global-map [menu-bar file] |
| 78 | (cons (purecopy "File") menu-bar-file-menu)) | ||
| 79 | |||
| 80 | ;; Put "Help" menu at the front, called "Info". | ||
| 81 | (and (featurep 'ns) | ||
| 82 | (not (eq system-type 'darwin)) | ||
| 83 | (define-key global-map [menu-bar help-menu] | ||
| 84 | (cons (purecopy "Info") menu-bar-help-menu))) | ||
| 58 | 85 | ||
| 59 | ;; This alias is for compatibility with 19.28 and before. | 86 | ;; This alias is for compatibility with 19.28 and before. |
| 60 | (defvar menu-bar-files-menu menu-bar-file-menu) | 87 | (defvar menu-bar-files-menu menu-bar-file-menu) |
| @@ -458,7 +485,6 @@ | |||
| 458 | ,(purecopy "Delete the text in region between mark and current position"))) | 485 | ,(purecopy "Delete the text in region between mark and current position"))) |
| 459 | (defvar yank-menu (cons (purecopy "Select Yank") nil)) | 486 | (defvar yank-menu (cons (purecopy "Select Yank") nil)) |
| 460 | (fset 'yank-menu (cons 'keymap yank-menu)) | 487 | (fset 'yank-menu (cons 'keymap yank-menu)) |
| 461 | ;; The ns differences here seem silly. | ||
| 462 | (define-key menu-bar-edit-menu (if (featurep 'ns) [select-paste] | 488 | (define-key menu-bar-edit-menu (if (featurep 'ns) [select-paste] |
| 463 | [paste-from-menu]) | 489 | [paste-from-menu]) |
| 464 | ;; ns-win.el said: Change text to be more consistent with | 490 | ;; ns-win.el said: Change text to be more consistent with |
| @@ -1028,47 +1054,47 @@ mail status in mode line")) | |||
| 1028 | (defvar menu-bar-showhide-tool-bar-menu (make-sparse-keymap "Tool-bar")) | 1054 | (defvar menu-bar-showhide-tool-bar-menu (make-sparse-keymap "Tool-bar")) |
| 1029 | 1055 | ||
| 1030 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-left] | 1056 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-left] |
| 1031 | `(menu-item ,(purecopy "On the left") | 1057 | `(menu-item ,(purecopy "On the left") |
| 1032 | menu-bar-showhide-tool-bar-menu-customize-enable-left | 1058 | menu-bar-showhide-tool-bar-menu-customize-enable-left |
| 1033 | :help ,(purecopy "Tool-bar at the left side") | 1059 | :help ,(purecopy "Tool-bar at the left side") |
| 1034 | :visible (display-graphic-p) | 1060 | :visible (display-graphic-p) |
| 1035 | :button | 1061 | :button |
| 1036 | (:radio . (and tool-bar-mode | 1062 | (:radio . (and tool-bar-mode |
| 1037 | (eq (frame-parameter nil 'tool-bar-position) | 1063 | (eq (frame-parameter nil 'tool-bar-position) |
| 1038 | 'left))))) | 1064 | 'left))))) |
| 1039 | 1065 | ||
| 1040 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-right] | 1066 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-right] |
| 1041 | `(menu-item ,(purecopy "On the right") | 1067 | `(menu-item ,(purecopy "On the right") |
| 1042 | menu-bar-showhide-tool-bar-menu-customize-enable-right | 1068 | menu-bar-showhide-tool-bar-menu-customize-enable-right |
| 1043 | :help ,(purecopy "Tool-bar at the right side") | 1069 | :help ,(purecopy "Tool-bar at the right side") |
| 1044 | :visible (display-graphic-p) | 1070 | :visible (display-graphic-p) |
| 1045 | :button | 1071 | :button |
| 1046 | (:radio . (and tool-bar-mode | 1072 | (:radio . (and tool-bar-mode |
| 1047 | (eq (frame-parameter nil 'tool-bar-position) | 1073 | (eq (frame-parameter nil 'tool-bar-position) |
| 1048 | 'right))))) | 1074 | 'right))))) |
| 1049 | 1075 | ||
| 1050 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-bottom] | 1076 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-bottom] |
| 1051 | `(menu-item ,(purecopy "On the bottom") | 1077 | `(menu-item ,(purecopy "On the bottom") |
| 1052 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom | 1078 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom |
| 1053 | :help ,(purecopy "Tool-bar at the bottom") | 1079 | :help ,(purecopy "Tool-bar at the bottom") |
| 1054 | :visible (display-graphic-p) | 1080 | :visible (display-graphic-p) |
| 1055 | :button | 1081 | :button |
| 1056 | (:radio . (and tool-bar-mode | 1082 | (:radio . (and tool-bar-mode |
| 1057 | (eq (frame-parameter nil 'tool-bar-position) | 1083 | (eq (frame-parameter nil 'tool-bar-position) |
| 1058 | 'bottom))))) | 1084 | 'bottom))))) |
| 1059 | 1085 | ||
| 1060 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-top] | 1086 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-top] |
| 1061 | `(menu-item ,(purecopy "On the top") | 1087 | `(menu-item ,(purecopy "On the top") |
| 1062 | menu-bar-showhide-tool-bar-menu-customize-enable-top | 1088 | menu-bar-showhide-tool-bar-menu-customize-enable-top |
| 1063 | :help ,(purecopy "Tool-bar at the top") | 1089 | :help ,(purecopy "Tool-bar at the top") |
| 1064 | :visible (display-graphic-p) | 1090 | :visible (display-graphic-p) |
| 1065 | :button | 1091 | :button |
| 1066 | (:radio . (and tool-bar-mode | 1092 | (:radio . (and tool-bar-mode |
| 1067 | (eq (frame-parameter nil 'tool-bar-position) | 1093 | (eq (frame-parameter nil 'tool-bar-position) |
| 1068 | 'top))))) | 1094 | 'top))))) |
| 1069 | 1095 | ||
| 1070 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-none] | 1096 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-none] |
| 1071 | `(menu-item ,(purecopy "None") | 1097 | `(menu-item ,(purecopy "None") |
| 1072 | menu-bar-showhide-tool-bar-menu-customize-disable | 1098 | menu-bar-showhide-tool-bar-menu-customize-disable |
| 1073 | :help ,(purecopy "Turn tool-bar off") | 1099 | :help ,(purecopy "Turn tool-bar off") |
| 1074 | :visible (display-graphic-p) | 1100 | :visible (display-graphic-p) |
| @@ -1688,6 +1714,13 @@ key, a click, or a menu-item"))) | |||
| 1688 | `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial | 1714 | `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial |
| 1689 | :help ,(purecopy "Learn how to use Emacs"))) | 1715 | :help ,(purecopy "Learn how to use Emacs"))) |
| 1690 | 1716 | ||
| 1717 | ;; In OS X it's in the app menu already. | ||
| 1718 | ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. | ||
| 1719 | (and (featurep 'ns) | ||
| 1720 | (not (eq system-type 'darwin)) | ||
| 1721 | (define-key menu-bar-help-menu [info-panel] | ||
| 1722 | `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) | ||
| 1723 | |||
| 1691 | (defun menu-bar-menu-frame-live-and-visible-p () | 1724 | (defun menu-bar-menu-frame-live-and-visible-p () |
| 1692 | "Return non-nil if the menu frame is alive and visible. | 1725 | "Return non-nil if the menu frame is alive and visible. |
| 1693 | The menu frame is the frame for which we are updating the menu." | 1726 | The menu frame is the frame for which we are updating the menu." |
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index e0dffa87251..24f70f9dee0 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el | |||
| @@ -186,48 +186,6 @@ The properties returned may include `top', `left', `height', and `width'." | |||
| 186 | (declare-function ns-do-applescript "nsfns.m" (script)) | 186 | (declare-function ns-do-applescript "nsfns.m" (script)) |
| 187 | (defalias 'do-applescript 'ns-do-applescript) | 187 | (defalias 'do-applescript 'ns-do-applescript) |
| 188 | 188 | ||
| 189 | ;; Add a couple of menus and rearrange some others; easiest just to redo toplvl | ||
| 190 | ;; Note keymap defns must be given last-to-first | ||
| 191 | (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar")) | ||
| 192 | |||
| 193 | (setq menu-bar-final-items | ||
| 194 | (cond ((eq system-type 'darwin) | ||
| 195 | '(buffer services help-menu)) | ||
| 196 | ;; Otherwise, GNUstep. | ||
| 197 | (t | ||
| 198 | '(buffer services hide-app quit)))) | ||
| 199 | |||
| 200 | ;; Add standard top-level items to GNUstep menu. | ||
| 201 | (unless (eq system-type 'darwin) | ||
| 202 | (define-key global-map [menu-bar quit] '("Quit" . save-buffers-kill-emacs)) | ||
| 203 | (define-key global-map [menu-bar hide-app] '("Hide" . ns-do-hide-emacs))) | ||
| 204 | |||
| 205 | (define-key global-map [menu-bar services] | ||
| 206 | (cons "Services" (make-sparse-keymap "Services"))) | ||
| 207 | (define-key global-map [menu-bar buffer] | ||
| 208 | (cons "Buffers" global-buffers-menu-map)) | ||
| 209 | ;; (cons "Buffers" (make-sparse-keymap "Buffers"))) | ||
| 210 | (define-key global-map [menu-bar tools] (cons "Tools" menu-bar-tools-menu)) | ||
| 211 | (define-key global-map [menu-bar options] (cons "Options" menu-bar-options-menu)) | ||
| 212 | (define-key global-map [menu-bar edit] (cons "Edit" menu-bar-edit-menu)) | ||
| 213 | (define-key global-map [menu-bar file] (cons "File" menu-bar-file-menu)) | ||
| 214 | |||
| 215 | ;; If running under GNUstep, rename "Help" to "Info" | ||
| 216 | (cond ((eq system-type 'darwin) | ||
| 217 | (define-key global-map [menu-bar help-menu] | ||
| 218 | (cons "Help" menu-bar-help-menu))) | ||
| 219 | (t | ||
| 220 | (let ((contents (reverse (cdr menu-bar-help-menu)))) | ||
| 221 | (setq menu-bar-help-menu | ||
| 222 | (append (list 'keymap) (cdr contents) (list "Info")))) | ||
| 223 | (define-key global-map [menu-bar help-menu] | ||
| 224 | (cons "Info" menu-bar-help-menu)))) | ||
| 225 | |||
| 226 | (if (not (eq system-type 'darwin)) | ||
| 227 | ;; in OS X it's in the app menu already | ||
| 228 | (define-key menu-bar-help-menu [info-panel] | ||
| 229 | '("About Emacs..." . ns-do-emacs-info-panel))) | ||
| 230 | |||
| 231 | ;;;; Services | 189 | ;;;; Services |
| 232 | (declare-function ns-perform-service "nsfns.m" (service send)) | 190 | (declare-function ns-perform-service "nsfns.m" (service send)) |
| 233 | 191 | ||