annotate tests/Dnd/droptest.el @ 282:c42ec1d1cded r21-0b39

Import from CVS: tag r21-0b39
author cvs
date Mon, 13 Aug 2007 10:33:18 +0200
parents acd284d43ca1
children 558f606b08ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
282
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
1 ;; a short example how to use the new Drag'n'Drop API in
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
2 ;; combination with extents.
197
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents:
diff changeset
3 ;;
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents:
diff changeset
4
282
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
5 (defun dnd-drop-somewhere (object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
6 (message "Dropped somewhere else with :%s" object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
7 t)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
8
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
9 (defun do-nothing (object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
10 nil)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
11
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
12 (defun dnd-target1 (object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
13 (message "Drop on target1 with: %s" object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
14 t)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
15
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
16 (defun dnd-target2 (object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
17 (message "Drop on target2 with: %s" object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
18 t)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
19
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
20 (defun dnd-target3 (object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
21 (message "Drop on target3 with: %s" object)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
22 t)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
23
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
24 (defun make-drop-targets ()
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
25 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*"))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
26 (s nil)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
27 (e nil))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
28 (set-buffer buf)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
29 (pop-to-buffer buf)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
30 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
31 (insert "[ DROP TARGET 1]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
32 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
33 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
34 (set-extent-property ext 'dragdrop-drop-functions '(do-nothing dnd-target1))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
35 (set-extent-property ext 'mouse-face 'highlight)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
36 (insert " ")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
37 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
38 (insert "[ DROP TARGET 2]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
39 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
40 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
41 (set-extent-property ext 'dragdrop-drop-functions '(dnd-target2))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
42 (set-extent-property ext 'mouse-face 'highlight)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
43 (insert " ")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
44 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
45 (insert "[ DROP TARGET 3]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
46 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
47 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
48 (set-extent-property ext 'dragdrop-drop-functions '(dnd-target3))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
49 (set-extent-property ext 'mouse-face 'highlight)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
50 (newline 2)))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
51
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
52 (defun make-drag-starters ()
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
53 (let ((buf (get-buffer-create "*DND misc-user extent test buffer*"))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
54 (s nil)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
55 (e nil)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
56 (ext nil)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
57 (kmap nil))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
58 (set-buffer buf)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
59 (pop-to-buffer buf)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
60 (erase-buffer buf)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
61 (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.")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
62 (newline 2)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
63 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
64 (insert "[ TEXT DRAG TEST ]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
65 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
66 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
67 (set-extent-property ext 'mouse-face 'isearch)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
68 (setq kmap (make-keymap))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
69 (define-key kmap [button1] 'text-drag)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
70 (set-extent-property ext 'keymap kmap)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
71 (insert " ")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
72 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
73 (insert "[ FILE DRAG TEST ]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
74 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
75 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
76 (set-extent-property ext 'mouse-face 'isearch)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
77 (setq kmap (make-keymap))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
78 (define-key kmap [button1] 'file-drag)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
79 (set-extent-property ext 'keymap kmap)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
80 (insert " ")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
81 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
82 (insert "[ FILES DRAG TEST ]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
83 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
84 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
85 (set-extent-property ext 'mouse-face 'isearch)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
86 (setq kmap (make-keymap))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
87 (define-key kmap [button1] 'files-drag)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
88 (set-extent-property ext 'keymap kmap)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
89 (insert " ")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
90 (setq s (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
91 (insert "[ URL DRAG TEST ]")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
92 (setq e (point))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
93 (setq ext (make-extent s e))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
94 (set-extent-property ext 'mouse-face 'isearch)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
95 (setq kmap (make-keymap))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
96 (define-key kmap [button1] 'url-drag)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
97 (set-extent-property ext 'keymap kmap)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
98 (newline 3)))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
99
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
100 (defun text-drag (event)
197
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents:
diff changeset
101 (interactive "@e")
282
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
102 (offix-start-drag event "That's a test"))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
103
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
104 (defun file-drag (event)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
105 (interactive "@e")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
106 (offix-start-drag event "/tmp/printcap" 2))
197
acd284d43ca1 Import from CVS: tag r20-3b25
cvs
parents:
diff changeset
107
282
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
108 (defun url-drag (event)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
109 (interactive "@e")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
110 (offix-start-drag event "http://www.xemacs.org/" 8))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
111
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
112 (defun files-drag (event)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
113 (interactive "@e")
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
114 (offix-start-drag event '("/tmp/dragtest" "/tmp/droptest" "/tmp/printcap") 3))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
115
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
116 (setq dragdrop-drop-functions '(do-nothing dnd-drop-somewhere do-nothing))
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
117 (make-drag-starters)
c42ec1d1cded Import from CVS: tag r21-0b39
cvs
parents: 197
diff changeset
118 (make-drop-targets)