1 /*
2  * Motif
3  *
4  * Copyright (c) 1987-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22 */
23 
24 #ifndef _XmDropTransferP_h
25 #define _XmDropTransferP_h
26 
27 #include <Xm/DropTrans.h>
28 #include <Xm/XmP.h>
29 
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /*  DropTransfer class structure  */
36 
37 typedef Widget (*XmDropTransferStartTransferProc)(Widget,
38 	ArgList, Cardinal);
39 typedef void (*XmDropTransferAddTransferProc)(Widget,
40 	XmDropTransferEntry, Cardinal);
41 
42 typedef struct _XmDropTransferClassPart
43 {
44 	XmDropTransferStartTransferProc	start_drop_transfer;
45 	XmDropTransferAddTransferProc	add_drop_transfer;
46 	XtPointer extension;
47 } XmDropTransferClassPart;
48 
49 /*  Full class record declaration */
50 
51 typedef struct _XmDropTransferClassRec
52 {
53    ObjectClassPart        object_class;
54    XmDropTransferClassPart dropTransfer_class;
55 } XmDropTransferClassRec;
56 
57 externalref XmDropTransferClassRec xmDropTransferClassRec;
58 
59 
60 typedef struct _XmDropTransferListRec {
61 	XmDropTransferEntry	transfer_list;
62 	Cardinal		num_transfers;
63 } XmDropTransferListRec, * XmDropTransferList;
64 
65 
66 /*  The DropTransfer instance record  */
67 
68 typedef struct _XmDropTransferPart
69 {
70     XmDropTransferEntry		drop_transfers;
71     Cardinal			num_drop_transfers;
72     Atom			selection;
73     Widget			dragContext;
74     Time			timestamp;
75     Boolean			incremental;
76     Window			source_window;
77     unsigned int		tag;
78     XtSelectionCallbackProc 	transfer_callback;
79     unsigned char		transfer_status;
80 
81     Atom 			motif_drop_atom;
82 
83     XmDropTransferList		drop_transfer_lists;
84     Cardinal			num_drop_transfer_lists;
85     Cardinal			cur_drop_transfer_list;
86     Cardinal			cur_xfer;
87     Atom *			cur_targets;
88     XtPointer *			cur_client_data;
89 } XmDropTransferPart;
90 
91 /*  Full instance record declaration  */
92 
93 typedef struct _XmDropTransferRec
94 {
95 	ObjectPart	object;
96 	XmDropTransferPart dropTransfer;
97 } XmDropTransferRec;
98 
99 
100 /********    Private Function Declarations    ********/
101 
102 
103 /********    End Private Function Declarations    ********/
104 
105 
106 #ifdef __cplusplus
107 }  /* Close scope of 'extern "C"' declaration which encloses file. */
108 #endif
109 
110 #endif /* _XmDropTransferP_h */
111 /* DON'T ADD ANYTHING AFTER THIS #endif */
112