Mercurial > hg > xemacs-beta
comparison tests/Dnd/droptest.el @ 290:c9fe270a4101 r21-0b43
Import from CVS: tag r21-0b43
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:36:47 +0200 |
parents | e11d67e05968 |
children |
comparison
equal
deleted
inserted
replaced
289:6e6992ccc4b6 | 290:c9fe270a4101 |
---|---|
21 (if (not typ) | 21 (if (not typ) |
22 (funcall (intern "cde-start-drag-internal") event nil (list what)) | 22 (funcall (intern "cde-start-drag-internal") event nil (list what)) |
23 (funcall (intern "cde-start-drag-internal") event t what))) | 23 (funcall (intern "cde-start-drag-internal") event t what))) |
24 (t display-message 'error "no valid drag protocols implemented"))) | 24 (t display-message 'error "no valid drag protocols implemented"))) |
25 | 25 |
26 (defun start-region-drag (event) | |
27 (interactive "_e") | |
28 (if (click-inside-extent-p event zmacs-region-extent) | |
29 ;; okay, this is a drag | |
30 (cond ((featurep 'offix) | |
31 (offix-start-drag-region event | |
32 (extent-start-position zmacs-region-extent) | |
33 (extent-end-position zmacs-region-extent))) | |
34 ((featurep 'cde) | |
35 ;; should also work with CDE | |
36 (cde-start-drag-region event | |
37 (extent-start-position zmacs-region-extent) | |
38 (extent-end-position zmacs-region-extent))) | |
39 (t (error "No offix or CDE support compiled in"))))) | |
40 | |
26 (defun make-drop-targets () | 41 (defun make-drop-targets () |
27 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*")) | 42 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*")) |
28 (s nil) | 43 (s nil) |
29 (e nil)) | 44 (e nil)) |
30 (set-buffer buf) | 45 (set-buffer buf) |
32 (setq s (point)) | 47 (setq s (point)) |
33 (insert "[ DROP TARGET 1]") | 48 (insert "[ DROP TARGET 1]") |
34 (setq e (point)) | 49 (setq e (point)) |
35 (setq ext (make-extent s e)) | 50 (setq ext (make-extent s e)) |
36 (set-extent-property ext | 51 (set-extent-property ext |
37 'dragdrop-drop-functions | 52 'experimental-dragdrop-drop-functions |
38 '((do-nothing t t) | 53 '((do-nothing t t) |
39 (dnd-drop-message t t "on target 1"))) | 54 (dnd-drop-message t t "on target 1"))) |
40 (set-extent-property ext 'mouse-face 'highlight) | 55 (set-extent-property ext 'mouse-face 'highlight) |
41 (insert " ") | 56 (insert " ") |
42 (setq s (point)) | 57 (setq s (point)) |
43 (insert "[ DROP TARGET 2]") | 58 (insert "[ DROP TARGET 2]") |
44 (setq e (point)) | 59 (setq e (point)) |
45 (setq ext (make-extent s e)) | 60 (setq ext (make-extent s e)) |
46 (set-extent-property ext | 61 (set-extent-property ext |
47 'dragdrop-drop-functions | 62 'experimental-dragdrop-drop-functions |
48 '((dnd-drop-message t t "on target 2"))) | 63 '((dnd-drop-message t t "on target 2"))) |
49 (set-extent-property ext 'mouse-face 'highlight) | 64 (set-extent-property ext 'mouse-face 'highlight) |
50 (insert " ") | 65 (insert " ") |
51 (setq s (point)) | 66 (setq s (point)) |
52 (insert "[ DROP TARGET 3]") | 67 (insert "[ DROP TARGET 3]") |
53 (setq e (point)) | 68 (setq e (point)) |
54 (setq ext (make-extent s e)) | 69 (setq ext (make-extent s e)) |
55 (set-extent-property ext | 70 (set-extent-property ext |
56 'dragdrop-drop-functions | 71 'experimental-dragdrop-drop-functions |
57 '((dnd-drop-message t t "on target 3"))) | 72 '((dnd-drop-message t t "on target 3"))) |
58 (set-extent-property ext 'mouse-face 'highlight) | 73 (set-extent-property ext 'mouse-face 'highlight) |
59 (newline 2))) | 74 (newline 2))) |
60 | 75 |
61 (defun make-drag-starters () | 76 (defun make-drag-starters () |
123 (interactive "@e") | 138 (interactive "@e") |
124 (start-drag event "That's a test")) | 139 (start-drag event "That's a test")) |
125 | 140 |
126 (defun file-drag (event) | 141 (defun file-drag (event) |
127 (interactive "@e") | 142 (interactive "@e") |
128 (start-drag event "/tmp/printcap" 2)) | 143 (start-drag event "/tmp/DropTest.xpm" 2)) |
129 | 144 |
130 (defun cde-file-drag (event) | 145 (defun cde-file-drag (event) |
131 (interactive "@e") | 146 (interactive "@e") |
132 (start-drag event '("/tmp/printcap") t)) | 147 (start-drag event '("/tmp/DropTest.xpm") t)) |
133 | 148 |
134 (defun url-drag (event) | 149 (defun url-drag (event) |
135 (interactive "@e") | 150 (interactive "@e") |
136 (start-drag event "http://www.xemacs.org/" 8)) | 151 (start-drag event "http://www.xemacs.org/" 8)) |
137 | 152 |
138 (defun files-drag (event) | 153 (defun files-drag (event) |
139 (interactive "@e") | 154 (interactive "@e") |
140 (start-drag event '("/tmp/dragtest" "/tmp/droptest" "/tmp/printcap") 3)) | 155 (start-drag event '("/tmp/DropTest.html" "/tmp/DropTest.xpm" "/tmp/DropTest.tex") 3)) |
141 | 156 |
142 (setq dragdrop-drop-functions '((do-nothing t t) | 157 (setq experimental-dragdrop-drop-functions '((do-nothing t t) |
143 ;; CDE does not have any button info... | 158 ;; CDE does not have any button info... |
144 (dnd-drop-message 0 t "cde-drop somewhere else") | 159 (dnd-drop-message 0 t "cde-drop somewhere else") |
145 (dnd-drop-message 2 t "region somewhere else") | 160 (dnd-drop-message 2 t "region somewhere else") |
146 (dnd-drop-message 1 t "drag-source somewhere else") | 161 (dnd-drop-message 1 t "drag-source somewhere else") |
147 (do-nothing t t))) | 162 (do-nothing t t))) |
156 | 171 |
157 (setq lmap (make-keymap)) | 172 (setq lmap (make-keymap)) |
158 (use-local-map lmap) | 173 (use-local-map lmap) |
159 (local-set-key [q] 'end-dnd-demo) | 174 (local-set-key [q] 'end-dnd-demo) |
160 (setq button2-func (lookup-key global-map [button2])) | 175 (setq button2-func (lookup-key global-map [button2])) |
161 (global-unset-key [button2]) | 176 (global-set-key [button2] 'start-region-drag) |