Mercurial > hg > xemacs-beta
comparison tests/Dnd/droptest.el @ 288:e11d67e05968 r21-0b42
Import from CVS: tag r21-0b42
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:35:54 +0200 |
parents | 558f606b08ae |
children | c9fe270a4101 |
comparison
equal
deleted
inserted
replaced
287:13a0bd77a29d | 288:e11d67e05968 |
---|---|
2 ;; combination with extents. | 2 ;; combination with extents. |
3 ;; | 3 ;; |
4 | 4 |
5 (defun dnd-drop-message (event object text) | 5 (defun dnd-drop-message (event object text) |
6 (message "Dropped %s with :%s" text object) | 6 (message "Dropped %s with :%s" text object) |
7 ;; signal that we have done something with the data | |
7 t) | 8 t) |
8 | 9 |
9 (defun do-nothing (event object) | 10 (defun do-nothing (event object) |
11 ;; signal that the data is still unprocessed | |
10 nil) | 12 nil) |
11 | 13 |
12 (defun start-drag (event what &optional typ) | 14 (defun start-drag (event what &optional typ) |
15 ;; short drag interface, until the real one is implemented | |
13 (cond ((featurep 'offix) | 16 (cond ((featurep 'offix) |
14 (if (numberp typ) | 17 (if (numberp typ) |
15 (offix-start-drag event what typ) | 18 (offix-start-drag event what typ) |
16 (offix-start-drag event what))) | 19 (offix-start-drag event what))) |
17 ((featurep 'cde) | 20 ((featurep 'cde) |
18 (funcall (intern "cde-start-drag-internal") what)) | 21 (if (not typ) |
22 (funcall (intern "cde-start-drag-internal") event nil (list what)) | |
23 (funcall (intern "cde-start-drag-internal") event t what))) | |
19 (t display-message 'error "no valid drag protocols implemented"))) | 24 (t display-message 'error "no valid drag protocols implemented"))) |
20 | 25 |
21 (defun make-drop-targets () | 26 (defun make-drop-targets () |
22 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*")) | 27 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*")) |
23 (s nil) | 28 (s nil) |
60 (ext nil) | 65 (ext nil) |
61 (kmap nil)) | 66 (kmap nil)) |
62 (set-buffer buf) | 67 (set-buffer buf) |
63 (pop-to-buffer buf) | 68 (pop-to-buffer buf) |
64 (erase-buffer buf) | 69 (erase-buffer buf) |
65 (insert "Try to drag data from one of the upper extents to one\nof the lower extents. Make sure that your minibuffer is big\ncause it is used to display the data.\n\nYou may also try to select some of this text and drag it with button2.") | 70 (insert "Try to drag data from one of the upper extents to one\nof the lower extents. Make sure that your minibuffer is big\ncause it is used to display the data.\n\nYou may also try to select some of this text and drag it with button2.\n\nTo ") |
71 (setq s (point)) | |
72 (insert "EXIT") | |
73 (setq e (point)) | |
74 (insert " this demo, press 'q'.") | |
75 (setq ext (make-extent s e)) | |
76 (setq kmap (make-keymap)) | |
77 (define-key kmap [button1] 'end-dnd-demo) | |
78 (set-extent-property ext 'keymap kmap) | |
79 (set-extent-property ext 'mouse-face 'highlight) | |
66 (newline 2) | 80 (newline 2) |
67 (setq s (point)) | 81 (setq s (point)) |
68 (insert "[ TEXT DRAG TEST ]") | 82 (insert "[ TEXT DRAG TEST ]") |
69 (setq e (point)) | 83 (setq e (point)) |
70 (setq ext (make-extent s e)) | 84 (setq ext (make-extent s e)) |
77 (insert "[ FILE DRAG TEST ]") | 91 (insert "[ FILE DRAG TEST ]") |
78 (setq e (point)) | 92 (setq e (point)) |
79 (setq ext (make-extent s e)) | 93 (setq ext (make-extent s e)) |
80 (set-extent-property ext 'mouse-face 'isearch) | 94 (set-extent-property ext 'mouse-face 'isearch) |
81 (setq kmap (make-keymap)) | 95 (setq kmap (make-keymap)) |
82 (define-key kmap [button1] 'file-drag) | 96 (if (featurep 'cde) |
97 (define-key kmap [button1] 'cde-file-drag) | |
98 (define-key kmap [button1] 'file-drag)) | |
83 (set-extent-property ext 'keymap kmap) | 99 (set-extent-property ext 'keymap kmap) |
84 (insert " ") | 100 (insert " ") |
85 (setq s (point)) | 101 (setq s (point)) |
86 (insert "[ FILES DRAG TEST ]") | 102 (insert "[ FILES DRAG TEST ]") |
87 (setq e (point)) | 103 (setq e (point)) |
95 (insert "[ URL DRAG TEST ]") | 111 (insert "[ URL DRAG TEST ]") |
96 (setq e (point)) | 112 (setq e (point)) |
97 (setq ext (make-extent s e)) | 113 (setq ext (make-extent s e)) |
98 (set-extent-property ext 'mouse-face 'isearch) | 114 (set-extent-property ext 'mouse-face 'isearch) |
99 (setq kmap (make-keymap)) | 115 (setq kmap (make-keymap)) |
100 (define-key kmap [button1] 'url-drag) | 116 (if (featurep 'cde) |
117 (define-key kmap [button1] 'cde-file-drag) | |
118 (define-key kmap [button1] 'url-drag)) | |
101 (set-extent-property ext 'keymap kmap) | 119 (set-extent-property ext 'keymap kmap) |
102 (newline 3))) | 120 (newline 3))) |
103 | 121 |
104 (defun text-drag (event) | 122 (defun text-drag (event) |
105 (interactive "@e") | 123 (interactive "@e") |
107 | 125 |
108 (defun file-drag (event) | 126 (defun file-drag (event) |
109 (interactive "@e") | 127 (interactive "@e") |
110 (start-drag event "/tmp/printcap" 2)) | 128 (start-drag event "/tmp/printcap" 2)) |
111 | 129 |
130 (defun cde-file-drag (event) | |
131 (interactive "@e") | |
132 (start-drag event '("/tmp/printcap") t)) | |
133 | |
112 (defun url-drag (event) | 134 (defun url-drag (event) |
113 (interactive "@e") | 135 (interactive "@e") |
114 (start-drag event "http://www.xemacs.org/" 8)) | 136 (start-drag event "http://www.xemacs.org/" 8)) |
115 | 137 |
116 (defun files-drag (event) | 138 (defun files-drag (event) |
117 (interactive "@e") | 139 (interactive "@e") |
118 (start-drag event '("/tmp/dragtest" "/tmp/droptest" "/tmp/printcap") 3)) | 140 (start-drag event '("/tmp/dragtest" "/tmp/droptest" "/tmp/printcap") 3)) |
119 | 141 |
120 (setq dragdrop-drop-functions '((do-nothing t t) | 142 (setq dragdrop-drop-functions '((do-nothing t t) |
143 ;; CDE does not have any button info... | |
144 (dnd-drop-message 0 t "cde-drop somewhere else") | |
121 (dnd-drop-message 2 t "region somewhere else") | 145 (dnd-drop-message 2 t "region somewhere else") |
122 (dnd-drop-message 1 t "drag-source somewhere else") | 146 (dnd-drop-message 1 t "drag-source somewhere else") |
123 (do-nothing t t))) | 147 (do-nothing t t))) |
148 | |
124 (make-drag-starters) | 149 (make-drag-starters) |
125 (make-drop-targets) | 150 (make-drop-targets) |
151 | |
152 (defun end-dnd-demo () | |
153 (interactive) | |
154 (global-set-key [button2] button2-func) | |
155 (bury-buffer)) | |
156 | |
157 (setq lmap (make-keymap)) | |
158 (use-local-map lmap) | |
159 (local-set-key [q] 'end-dnd-demo) | |
160 (setq button2-func (lookup-key global-map [button2])) | |
161 (global-unset-key [button2]) |