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).