Mercurial > hg > xemacs-beta
comparison lisp/mouse.el @ 249:83b3d10dcba9 r20-5b23
Import from CVS: tag r20-5b23
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:19:09 +0200 |
parents | f220cc83d72e |
children | 084402c475ba |
comparison
equal
deleted
inserted
replaced
248:ad40ac2754d8 | 249:83b3d10dcba9 |
---|---|
40 (global-set-key '(control shift button1) 'mouse-track-delete-and-insert) | 40 (global-set-key '(control shift button1) 'mouse-track-delete-and-insert) |
41 (global-set-key '(meta button1) 'mouse-track-do-rectangle) | 41 (global-set-key '(meta button1) 'mouse-track-do-rectangle) |
42 | 42 |
43 ;; enable drag regions (ograf@fga.de) | 43 ;; enable drag regions (ograf@fga.de) |
44 ;; if button2 is dragged from within a region, this becomes a drop | 44 ;; if button2 is dragged from within a region, this becomes a drop |
45 (if (featurep '(or offix cde)) | 45 (if (featurep '(or offix cde mswindows)) |
46 (global-set-key 'button2 'mouse-drag-or-yank) | 46 (global-set-key 'button2 'mouse-drag-or-yank) |
47 (global-set-key 'button2 'mouse-yank)) | 47 (global-set-key 'button2 'mouse-yank)) |
48 | 48 |
49 ;; enable drops from OffiX (ograf@fga.de) | 49 ;; enable drops from OffiX (ograf@fga.de) or mswindows |
50 ;; accept any button1,2,3 drop with `mouse-offix-drop' | 50 ;; accept any button1,2,3 drop with `mouse-offix-drop' or 'mswindows-mouse-drop' |
51 (cond ((featurep 'offix) | 51 (cond ((featurep 'offix) |
52 (global-set-key 'drop1 'mouse-offix-drop) | 52 (global-set-key 'drop1 'mouse-offix-drop) |
53 (global-set-key 'drop2 'mouse-offix-drop) | 53 (global-set-key 'drop2 'mouse-offix-drop) |
54 (global-set-key 'drop3 'mouse-offix-drop))) | 54 (global-set-key 'drop3 'mouse-offix-drop)) |
55 ((featurep 'mswindows) | |
56 (global-set-key 'drop0 'mouse-mswindows-drop) | |
57 (global-set-key 'drop1 'mouse-mswindows-drop) | |
58 (global-set-key 'drop2 'mouse-mswindows-drop) | |
59 (global-set-key 'drop3 'mouse-mswindows-drop))) | |
55 | 60 |
56 (defgroup mouse nil | 61 (defgroup mouse nil |
57 "Window system-independent mouse support." | 62 "Window system-independent mouse support." |
58 :group 'editing) | 63 :group 'editing) |
59 | 64 |
236 (let ((buf (generate-new-buffer "DndMIME"))) | 241 (let ((buf (generate-new-buffer "DndMIME"))) |
237 (set-buffer buf) | 242 (set-buffer buf) |
238 (pop-to-buffer buf nil frame) | 243 (pop-to-buffer buf nil frame) |
239 (insert data) | 244 (insert data) |
240 (make-frame-visible frame))) | 245 (make-frame-visible frame))) |
246 (t ;; this is raw data or unknown stuff | |
247 (let ((buf (generate-new-buffer "DndRawData"))) | |
248 (set-buffer buf) | |
249 (pop-to-buffer buf nil frame) | |
250 (insert data) | |
251 (hexlify-buffer) | |
252 (make-frame-visible frame)))) | |
253 (undo-boundary))) | |
254 | |
255 (defun mouse-mswindows-drop (event) | |
256 "Do something with a drop event. Inserts Text drops and | |
257 executes appropriate commands for specific drops. | |
258 Text drops follow the `mouse-yank-at-point' variable." | |
259 (interactive "e") | |
260 (let* ((type (car (event-drag-and-drop-data event))) | |
261 (data (cadr (event-drag-and-drop-data event))) | |
262 (frame (event-channel event)) | |
263 (window (if frame (event-window event) (frame-selected-window)))) | |
264 (cond ((= type 2) ;; file | |
265 (let ((x pop-up-windows)) | |
266 (setq pop-up-windows nil) | |
267 (cond (window | |
268 (select-window window))) | |
269 (switch-to-buffer (find-file-noselect data)) | |
270 (make-frame-visible frame) | |
271 (setq pop-up-windows x))) | |
272 ((= type 3) ;; files | |
273 (let ((x pop-up-windows)) | |
274 (setq pop-up-windows nil) | |
275 (while (not (eq data ())) | |
276 (pop-to-buffer (find-file-noselect (car data)) nil frame) | |
277 (setq data (cdr data))) | |
278 (make-frame-visible frame) | |
279 (setq pop-up-windows x))) | |
280 ((= type 4) ;; text | |
281 (and (not mouse-yank-at-point) | |
282 (mouse-set-point event)) | |
283 (insert data)) | |
241 (t ;; this is raw data or unknown stuff | 284 (t ;; this is raw data or unknown stuff |
242 (let ((buf (generate-new-buffer "DndRawData"))) | 285 (let ((buf (generate-new-buffer "DndRawData"))) |
243 (set-buffer buf) | 286 (set-buffer buf) |
244 (pop-to-buffer buf nil frame) | 287 (pop-to-buffer buf nil frame) |
245 (insert data) | 288 (insert data) |