Mercurial > hg > xemacs-beta
comparison man/lispref/dragndrop.texi @ 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 |
---|---|
6 @setfilename ../../info/dragndrop.texi | 6 @setfilename ../../info/dragndrop.texi |
7 @node Drag'n'Drop, Modes, Scrollbars, Top | 7 @node Drag'n'Drop, Modes, Scrollbars, Top |
8 @chapter Drag'n'Drop | 8 @chapter Drag'n'Drop |
9 @cindex drag'n'drop | 9 @cindex drag'n'drop |
10 | 10 |
11 @emph{WARNING}: the Drag'n'Drop API is still under development and the | |
12 interface may change! | |
13 | |
11 Drag'n'drop is a way to transfer information between multiple applications. | 14 Drag'n'drop is a way to transfer information between multiple applications. |
12 To do this serveral GUIs define their own protocols. Examples are OffiX, CDE, | 15 To do this serveral GUIs define their own protocols. Examples are OffiX, CDE, |
13 Motif, KDE, MSWindows, GNOME, and many more. To catch all these protocols, | 16 Motif, KDE, MSWindows, GNOME, and many more. To catch all these protocols, |
14 XEmacs provides a generic API. | 17 XEmacs provides a generic API. |
18 | |
19 One prime idea behind the API is to use a data interface that is | |
20 transparent for all systems. The author thinks that this is best | |
21 archived by using URL and MIME data, cause any internet enabled system | |
22 must support these for email already. XEmacs also already provides | |
23 powerful interfaces to support these types of data (tm and w3). | |
15 | 24 |
16 @menu | 25 @menu |
17 * Supported Protocols:: Which low-level protocols are supported. | 26 * Supported Protocols:: Which low-level protocols are supported. |
18 * Drop Interface:: How XEmacs handles a drop from another application. | 27 * Drop Interface:: How XEmacs handles a drop from another application. |
19 * Drag Interface:: Calls to initiate a drag from XEmacs. | 28 * Drag Interface:: Calls to initiate a drag from XEmacs. |
27 | 36 |
28 @menu | 37 @menu |
29 * OffiX DND:: A generic X based protocol. | 38 * OffiX DND:: A generic X based protocol. |
30 * CDE dt:: Common Desktop Environment used on suns. | 39 * CDE dt:: Common Desktop Environment used on suns. |
31 * MSWindows OLE:: Mr. Gates way of live. | 40 * MSWindows OLE:: Mr. Gates way of live. |
41 * Loose ends:: The other protocols. | |
32 @end menu | 42 @end menu |
33 | 43 |
34 @node OffiX DND | 44 @node OffiX DND |
35 @subsection OffiX DND | 45 @subsection OffiX DND |
36 @cindex OffiX DND | 46 @cindex OffiX DND |
40 any X platform supporting them. | 50 any X platform supporting them. |
41 | 51 |
42 OffiX is supported if 'offix is member of the variable dragdrop-protocols, or | 52 OffiX is supported if 'offix is member of the variable dragdrop-protocols, or |
43 the feature 'offix is defined. | 53 the feature 'offix is defined. |
44 | 54 |
55 Unfortunately it uses it's own data types. Examples are: File, Files, | |
56 Exe, Link, URL, MIME. The API tries to choose the right type for the data that | |
57 is dragged from XEmacs (well, not yet...). | |
58 | |
45 XEmacs supports both MIME and URL drags and drops using this API. No application | 59 XEmacs supports both MIME and URL drags and drops using this API. No application |
46 interaction is possible while dragging is in progress. | 60 interaction is possible while dragging is in progress. |
47 | 61 |
48 For infomation about the OffiX project have a look at http://leb.net/~offix/ | 62 For infomation about the OffiX project have a look at http://leb.net/~offix/ |
49 | 63 |
50 @node CDE dt | 64 @node CDE dt |
51 @subsection CDE dt | 65 @subsection CDE dt |
52 @cindex CDE dt | 66 @cindex CDE dt |
53 | 67 |
54 to be written | 68 CDE stands for Common Desktop Environment. It is based on the Motif |
69 widget library. It's drag'n'drop protocol is also an abstraction of the | |
70 Motif protocol (so it might be possible, that XEmacs will also support | |
71 the Motif protocol soon). | |
72 | |
73 CDE has three different types: file, buffer, and text. XEmacs only uses | |
74 file and buffer drags. The API will disallow full URL drags, only file | |
75 method URLs are passed through. | |
76 | |
77 Buffer drags are always converted to plain text. | |
55 | 78 |
56 @node MSWindows OLE | 79 @node MSWindows OLE |
57 @subsection MSWindows OLE | 80 @subsection MSWindows OLE |
58 @cindex MSWindows OLE | 81 @cindex MSWindows OLE |
59 | 82 |
60 to be written | 83 Only allows file drags and drops. |
84 | |
85 @node Loose ends | |
86 @subsection Loose ends | |
87 | |
88 The following protocols will be supported soon: Xdnd, Motif, Xde (if I | |
89 get some specs). | |
90 | |
91 In particular Xdnd will be one of the protocols that can benefit from | |
92 the XEmacs API, cause it also uses MIME types to encode dragged data. | |
61 | 93 |
62 @node Drop Interface | 94 @node Drop Interface |
63 @section Drop Interface | 95 @section Drop Interface |
64 @cindex drop | 96 @cindex drop |
97 @cindex Drop API | |
65 | 98 |
66 This describes the drop API (under construction) | 99 For each activated low-level protocol, a internal routine will catch |
100 incoming drops and convert them to a dragdrop-drop type | |
101 misc-user-event. | |
102 | |
103 This misc-user-event has its function argument set to | |
104 dragdrop-drop-dispatch and the object contains the data of the drop | |
105 (converted to URL/MIME specific data). | |
67 | 106 |
68 @node Drag Interface | 107 @node Drag Interface |
69 @section Drag Interface | 108 @section Drag Interface |
109 @cindex drag | |
110 @cindex Drag API | |
70 | 111 |
71 This describes the drag API (not implemented yet). | 112 This describes the drag API (not implemented yet). |