aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris2010-10-28 00:05:00 -0700
committerGlenn Morris2010-10-28 00:05:00 -0700
commitb3edb781e066a462ae2f3eec95136ac9d778b379 (patch)
treee98d703540de2574c6e7f714eb541998727711b9
parenta87ee50bb9e0471765aadba771d44465edc39464 (diff)
downloademacs-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/ChangeLog5
-rw-r--r--lisp/menu-bar.el71
-rw-r--r--lisp/term/ns-win.el42
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 @@
12010-10-28 Glenn Morris <rgm@gnu.org> 12010-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
52010-10-28 Stefan Monnier <monnier@iro.umontreal.ca> 102010-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.
1693The menu frame is the frame for which we are updating the menu." 1726The 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