comparison lisp/ediff/ediff-hook.el @ 82:6a378aca36af r20-0b91

Import from CVS: tag r20-0b91
author cvs
date Mon, 13 Aug 2007 09:07:36 +0200
parents 1ce6082ce73f
children 2d532a89d707
comparison
equal deleted inserted replaced
81:ebca3d831cea 82:6a378aca36af
1 ;;; ediff-hook.el --- setup for Ediff's menus and autoloads 1 ;;; ediff-hook.el --- setup for Ediff's menus and autoloads
2 2
3 ;; Copyright (C) 1995, 1996 Free Software Foundation, Inc. 3 ;; Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
4 4
5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu> 5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu>
6 6
7 ;; This file is part of GNU Emacs. 7 ;; This file is part of GNU Emacs.
8 8
23 23
24 ;;; Code: 24 ;;; Code:
25 25
26 ;;; These must be placed in menu-bar.el in Emacs 26 ;;; These must be placed in menu-bar.el in Emacs
27 ;; 27 ;;
28 ;; (define-key menu-bar-tools-menu [ediff-misc]
29 ;; '("Ediff Miscellanea" . menu-bar-ediff-misc-menu))
28 ;; (define-key menu-bar-tools-menu [epatch] 30 ;; (define-key menu-bar-tools-menu [epatch]
29 ;; '("Apply Patch" . menu-bar-epatch-menu)) 31 ;; '("Apply Patch" . menu-bar-epatch-menu))
30 ;; (define-key menu-bar-tools-menu [ediff-merge] 32 ;; (define-key menu-bar-tools-menu [ediff-merge]
31 ;; '("Merge" . menu-bar-ediff-merge-menu)) 33 ;; '("Merge" . menu-bar-ediff-merge-menu))
32 ;; (define-key menu-bar-tools-menu [ediff] 34 ;; (define-key menu-bar-tools-menu [ediff]
34 36
35 ;; Compiler pacifier 37 ;; Compiler pacifier
36 (defvar ediff-menu) 38 (defvar ediff-menu)
37 (defvar ediff-merge-menu) 39 (defvar ediff-merge-menu)
38 (defvar epatch-menu) 40 (defvar epatch-menu)
41 (defvar ediff-misc-menu)
39 ;; end pacifier 42 ;; end pacifier
40 43
41 ;; allow menus to be set up without ediff-wind.el being loaded 44 ;; allow menus to be set up without ediff-wind.el being loaded
42 (defvar ediff-window-setup-function) 45 (defvar ediff-window-setup-function)
43 46
44 47
45 (defun ediff-xemacs-init-menus () 48 (defun ediff-xemacs-init-menus ()
46 (setq ediff-window-setup-function
47 (if (console-on-window-system-p)
48 'ediff-setup-windows-multiframe
49 'ediff-setup-windows-plain))
50 (if (featurep 'menubar) 49 (if (featurep 'menubar)
51 (progn 50 (progn
52 (add-menu-button
53 '("Tools")
54 ["Use separate frame for Ediff control buffer"
55 ediff-toggle-multiframe
56 :style toggle
57 :selected (eq ediff-window-setup-function 'ediff-setup-windows-multiframe)]
58 "00-Browser...")
59 ;;(add-menu-button
60 ;; '("Tools")
61 ;; ["Use a toolbar with Ediff control buffer"
62 ;; ediff-toggle-use-toolbar
63 ;; :style toggle
64 ;; :selected (ediff-use-toolbar-p)]
65 ;; "00-Browser...")
66 (add-submenu 51 (add-submenu
67 '("Tools") ediff-menu "OO-Browser...") 52 '("Tools") ediff-menu "OO-Browser...")
68 (add-submenu 53 (add-submenu
69 '("Tools") ediff-merge-menu "OO-Browser...") 54 '("Tools") ediff-merge-menu "OO-Browser...")
70 (add-submenu 55 (add-submenu
71 '("Tools") epatch-menu "OO-Browser...") 56 '("Tools") epatch-menu "OO-Browser...")
57 (add-submenu
58 '("Tools") ediff-misc-menu "OO-Browser...")
72 (add-menu-button 59 (add-menu-button
73 '("Tools") 60 '("Tools")
74 ["-------" nil nil] "OO-Browser...") 61 ["-------" nil nil] "OO-Browser...")
75 ))) 62 )))
76 63
93 ["Windows Word-by-word..." ediff-windows-wordwise t] 80 ["Windows Word-by-word..." ediff-windows-wordwise t]
94 ["Windows Line-by-line..." ediff-windows-linewise t] 81 ["Windows Line-by-line..." ediff-windows-linewise t]
95 "---" 82 "---"
96 ["Regions Word-by-word..." ediff-regions-wordwise t] 83 ["Regions Word-by-word..." ediff-regions-wordwise t]
97 ["Regions Line-by-line..." ediff-regions-linewise t] 84 ["Regions Line-by-line..." ediff-regions-linewise t]
98 "---"
99 ["List Ediff Sessions..." ediff-show-registry t]
100 ["Ediff Manual..." ediff-documentation t]
101 )) 85 ))
102 (defvar ediff-merge-menu 86 (defvar ediff-merge-menu
103 '("Merge" 87 '("Merge"
104 ["Files..." ediff-merge-files t] 88 ["Files..." ediff-merge-files t]
105 ["Files with Ancestor..." ediff-merge-files-with-ancestor t] 89 ["Files with Ancestor..." ediff-merge-files-with-ancestor t]
115 ["Revisions with Ancestor..." 99 ["Revisions with Ancestor..."
116 ediff-merge-revisions-with-ancestor t] 100 ediff-merge-revisions-with-ancestor t]
117 ["Directory Revisions..." ediff-merge-directory-revisions t] 101 ["Directory Revisions..." ediff-merge-directory-revisions t]
118 ["Directory Revisions with Ancestor..." 102 ["Directory Revisions with Ancestor..."
119 ediff-merge-directory-revisions-with-ancestor t] 103 ediff-merge-directory-revisions-with-ancestor t]
120 "---"
121 ["List Ediff Sessions..." ediff-show-registry t]
122 ["Ediff Manual..." ediff-documentation t]
123 )) 104 ))
124 (defvar epatch-menu 105 (defvar epatch-menu
125 '("Apply Patch" 106 '("Apply Patch"
126 ["To a file..." ediff-patch-file t] 107 ["To a file..." ediff-patch-file t]
127 ["To a buffer..." ediff-patch-buffer t] 108 ["To a buffer..." ediff-patch-buffer t]
128 "---" 109 ))
110 (defvar ediff-misc-menu
111 '("Ediff Miscellanea"
112 ["Ediff Manual..." ediff-documentation t]
129 ["List Ediff Sessions..." ediff-show-registry t] 113 ["List Ediff Sessions..." ediff-show-registry t]
130 ["Ediff Manual..." ediff-documentation t] 114 ["Use separate frame for Ediff control buffer..."
115 ediff-toggle-multiframe
116 :style toggle
117 :selected (if (and (featurep 'ediff-util)
118 (boundp 'ediff-window-setup-function))
119 (eq ediff-window-setup-function
120 'ediff-setup-windows-multiframe))]
121 ["Use a toolbar with Ediff control buffer"
122 ediff-toggle-use-toolbar
123 :style toggle
124 :selected (if (featurep 'ediff-tbar)
125 (ediff-use-toolbar-p))]
131 )) 126 ))
132 127
133 ;; put these menus before Object-Oriented-Browser in Tools menu 128 ;; put these menus before Object-Oriented-Browser in Tools menu
134 (add-hook 'before-init-hook 'ediff-xemacs-init-menus) 129 (add-hook 'before-init-hook 'ediff-xemacs-init-menus)
135 (if (not purify-flag) 130 (if (not purify-flag)
137 ) 132 )
138 133
139 ;; Emacs--only if menu-bar is loaded 134 ;; Emacs--only if menu-bar is loaded
140 ((featurep 'menu-bar) 135 ((featurep 'menu-bar)
141 ;; initialize menu bar keymaps 136 ;; initialize menu bar keymaps
137 (defvar menu-bar-ediff-misc-menu
138 (make-sparse-keymap "Ediff Miscellanea"))
139 (fset 'menu-bar-ediff-misc-menu
140 (symbol-value 'menu-bar-ediff-misc-menu))
142 (defvar menu-bar-epatch-menu (make-sparse-keymap "Apply Patch")) 141 (defvar menu-bar-epatch-menu (make-sparse-keymap "Apply Patch"))
143 (fset 'menu-bar-epatch-menu (symbol-value 'menu-bar-epatch-menu)) 142 (fset 'menu-bar-epatch-menu (symbol-value 'menu-bar-epatch-menu))
144 (defvar menu-bar-ediff-merge-menu (make-sparse-keymap "Merge")) 143 (defvar menu-bar-ediff-merge-menu (make-sparse-keymap "Merge"))
145 (fset 'menu-bar-ediff-merge-menu 144 (fset 'menu-bar-ediff-merge-menu
146 (symbol-value 'menu-bar-ediff-merge-menu)) 145 (symbol-value 'menu-bar-ediff-merge-menu))
147 (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare")) 146 (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare"))
148 (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu)) 147 (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu))
149 148
150 ;; define ediff-menu 149 ;; define ediff-menu
151 (define-key menu-bar-ediff-menu [ediff-doc]
152 '("Ediff Manual..." . ediff-documentation))
153 (define-key menu-bar-ediff-menu [emultiframe]
154 '("Toggle separate control buffer frame..."
155 . ediff-toggle-multiframe))
156 (define-key menu-bar-ediff-menu [eregistry]
157 '("List Ediff Sessions..." . ediff-show-registry))
158 (define-key menu-bar-ediff-menu [separator-ediff-manual] '("--"))
159 (define-key menu-bar-ediff-menu [window] 150 (define-key menu-bar-ediff-menu [window]
160 '("This Window and Next Window" . compare-windows)) 151 '("This Window and Next Window" . compare-windows))
161 (define-key menu-bar-ediff-menu [ediff-windows-linewise] 152 (define-key menu-bar-ediff-menu [ediff-windows-linewise]
162 '("Windows Line-by-line..." . ediff-windows-linewise)) 153 '("Windows Line-by-line..." . ediff-windows-linewise))
163 (define-key menu-bar-ediff-menu [ediff-windows-wordwise] 154 (define-key menu-bar-ediff-menu [ediff-windows-wordwise]
186 '("Two Buffers..." . ediff-buffers)) 177 '("Two Buffers..." . ediff-buffers))
187 (define-key menu-bar-ediff-menu [ediff-files] 178 (define-key menu-bar-ediff-menu [ediff-files]
188 '("Two Files..." . ediff-files)) 179 '("Two Files..." . ediff-files))
189 180
190 ;; define merge menu 181 ;; define merge menu
191 (define-key menu-bar-ediff-merge-menu [ediff-doc2]
192 '("Ediff Manual..." . ediff-documentation))
193 (define-key menu-bar-ediff-merge-menu [emultiframe2]
194 '("Toggle separate control buffer frame..."
195 . ediff-toggle-multiframe))
196 (define-key menu-bar-ediff-merge-menu [eregistry2]
197 '("List Ediff Sessions..." . ediff-show-registry))
198 (define-key
199 menu-bar-ediff-merge-menu [separator-ediff-merge-manual] '("--"))
200 (define-key 182 (define-key
201 menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor] 183 menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor]
202 '("Directory Revisions with Ancestor..." 184 '("Directory Revisions with Ancestor..."
203 . ediff-merge-directory-revisions-with-ancestor)) 185 . ediff-merge-directory-revisions-with-ancestor))
204 (define-key 186 (define-key
228 '("Files with Ancestor..." . ediff-merge-files-with-ancestor)) 210 '("Files with Ancestor..." . ediff-merge-files-with-ancestor))
229 (define-key menu-bar-ediff-merge-menu [ediff-merge-files] 211 (define-key menu-bar-ediff-merge-menu [ediff-merge-files]
230 '("Files..." . ediff-merge-files)) 212 '("Files..." . ediff-merge-files))
231 213
232 ;; define epatch menu 214 ;; define epatch menu
233 (define-key menu-bar-epatch-menu [ediff-doc3]
234 '("Ediff Manual..." . ediff-documentation))
235 (define-key menu-bar-epatch-menu [emultiframe3]
236 '("Toggle separate control buffer frame..."
237 . ediff-toggle-multiframe))
238 (define-key menu-bar-epatch-menu [eregistry3]
239 '("List Ediff Sessions..." . ediff-show-registry))
240 (define-key menu-bar-epatch-menu [separator-epatch] '("--"))
241 (define-key menu-bar-epatch-menu [ediff-patch-buffer] 215 (define-key menu-bar-epatch-menu [ediff-patch-buffer]
242 '("To a Buffer..." . ediff-patch-buffer)) 216 '("To a Buffer..." . ediff-patch-buffer))
243 (define-key menu-bar-epatch-menu [ediff-patch-file] 217 (define-key menu-bar-epatch-menu [ediff-patch-file]
244 '("To a File..." . ediff-patch-file))) 218 '("To a File..." . ediff-patch-file))
219
220 ;; define ediff miscellanea
221 (define-key menu-bar-ediff-misc-menu [emultiframe]
222 '("Toggle use of separate control buffer frame..."
223 . ediff-toggle-multiframe))
224 (define-key menu-bar-ediff-misc-menu [eregistry]
225 '("List Ediff Sessions..." . ediff-show-registry))
226 (define-key menu-bar-ediff-misc-menu [ediff-doc]
227 '("Ediff Manual..." . ediff-documentation))
228 )
245 229
246 ) ; cond 230 ) ; cond
247 231
248 ;; arrange for autoloads 232 ;; arrange for autoloads
249 (if purify-flag 233 (if purify-flag
343 t) 327 t)
344 (autoload 'ediff-toggle-multiframe 328 (autoload 'ediff-toggle-multiframe
345 "ediff-util" 329 "ediff-util"
346 "Toggle the use of separate frame for Ediff control buffer." 330 "Toggle the use of separate frame for Ediff control buffer."
347 t) 331 t)
348 (condition-case nil 332 (autoload 'ediff-toggle-use-toolbar
349 (if (string-match "XEmacs" emacs-version) 333 "ediff-util"
350 (autoload 'ediff-toggle-use-toolbar 334 "Toggle the use of Ediff toolbar."
351 "ediff-tbar" 335 t)
352 "Toggle the use of Ediff toolbar." 336
353 t))
354 (error))
355 ) ; if purify-flag 337 ) ; if purify-flag
356 338
357 339
358 (provide 'ediff-hook) 340 (provide 'ediff-hook)
359 341