Mercurial > hg > xemacs-beta
comparison man/lispref/dragndrop.texi @ 290:c9fe270a4101 r21-0b43
Import from CVS: tag r21-0b43
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:36:47 +0200 |
parents | e11d67e05968 |
children | 70ad99077275 |
comparison
equal
deleted
inserted
replaced
289:6e6992ccc4b6 | 290:c9fe270a4101 |
---|---|
2 @c This is part of the XEmacs Lisp Reference Manual. | 2 @c This is part of the XEmacs Lisp Reference Manual. |
3 @c Copyright (C) 1998 Oliver Graf <ograf@fga.de> | 3 @c Copyright (C) 1998 Oliver Graf <ograf@fga.de> |
4 @c Original reference is (c) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. | 4 @c Original reference is (c) 1990, 1991, 1992, 1993, 1994 Free Software Foundation, Inc. |
5 @c See the file lispref.texi for copying conditions. | 5 @c See the file lispref.texi for copying conditions. |
6 @setfilename ../../info/dragndrop.texi | 6 @setfilename ../../info/dragndrop.texi |
7 @node Drag'n'Drop, Modes, Scrollbars, Top | 7 @node Drag and Drop, Modes, Scrollbars, Top |
8 @chapter Drag'n'Drop | 8 @chapter Drag and Drop |
9 @cindex drag'n'drop | 9 @cindex drag and drop |
10 | 10 |
11 @emph{WARNING}: the Drag'n'Drop API is still under development and the | 11 @emph{WARNING}: the Drag'n'Drop API is still under development and the |
12 interface may change! | 12 interface may change! The current implementation is considered experimental. |
13 | 13 |
14 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. |
15 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, |
16 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, |
17 XEmacs provides a generic API. | 17 XEmacs provides a generic API. |
84 | 84 |
85 @node Loose ends | 85 @node Loose ends |
86 @subsection Loose ends | 86 @subsection Loose ends |
87 | 87 |
88 The following protocols will be supported soon: Xdnd, Motif, Xde (if I | 88 The following protocols will be supported soon: Xdnd, Motif, Xde (if I |
89 get some specs). | 89 get some specs), KDE OffiX (if KDE can find XEmacs windows). |
90 | 90 |
91 In particular Xdnd will be one of the protocols that can benefit from | 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. | 92 the XEmacs API, cause it also uses MIME types to encode dragged data. |
93 | 93 |
94 @node Drop Interface | 94 @node Drop Interface |
99 For each activated low-level protocol, a internal routine will catch | 99 For each activated low-level protocol, a internal routine will catch |
100 incoming drops and convert them to a dragdrop-drop type | 100 incoming drops and convert them to a dragdrop-drop type |
101 misc-user-event. | 101 misc-user-event. |
102 | 102 |
103 This misc-user-event has its function argument set to | 103 This misc-user-event has its function argument set to |
104 dragdrop-drop-dispatch and the object contains the data of the drop | 104 @code{dragdrop-drop-dispatch} and the object contains the data of the drop |
105 (converted to URL/MIME specific data). | 105 (converted to URL/MIME specific data). This function will search the variable |
106 @code{experimental-dragdrop-drop-functions} for a function that can handle the | |
107 dropped data. | |
108 | |
109 To modify the drop behaviour, the user can modify the variable | |
110 @code{experimental-dragdrop-drop-functions}. Each element of this list | |
111 specifies a possible handler for dropped data. The first one that can handle | |
112 the data will return @code{t} and exit. Another possibility is to set a | |
113 extent-property with the same name. Extents are checked prior to the | |
114 variable. | |
115 | |
116 The customization group @code{drag-n-drop} shows all variables of user | |
117 interest. | |
106 | 118 |
107 @node Drag Interface | 119 @node Drag Interface |
108 @section Drag Interface | 120 @section Drag Interface |
109 @cindex drag | 121 @cindex drag |
110 @cindex Drag API | 122 @cindex Drag API |