annotate dwt/dnd/Transfer.d @ 321:a3b84f877e63

Fix compile errors
author Frank Benoit <benoit@tionex.de>
date Mon, 03 Nov 2008 22:14:46 +0100
parents da968414c383
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
246
fd9c62a2998e Updater SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
2 * Copyright (c) 2000, 2008 IBM Corporation and others.
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwt.dnd.Transfer;
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import dwt.internal.win32.OS;
321
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
17 import dwt.internal.ole.win32.COM;
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 import dwt.dnd.TransferData;
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 136
diff changeset
20 import dwt.dwthelper.utils;
321
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
21 import dwt.internal.ole.win32.OBJIDL;
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
22 static import tango.core.Thread;
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * <code>Transfer</code> provides a mechanism for converting between a java
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 * representation of data and a platform specific representation of data and
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 * vice versa. It is used in data transfer operations such as drag and drop and
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 * clipboard copy/paste.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * <p>You should only need to become familiar with this class if you are
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * implementing a Transfer subclass and you are unable to subclass the
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * ByteArrayTransfer class.</p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * @see ByteArrayTransfer
246
fd9c62a2998e Updater SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
35 * @see <a href="http://www.eclipse.org/swt/snippets/#dnd">Drag and Drop snippets</a>
fd9c62a2998e Updater SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
36 * @see <a href="http://www.eclipse.org/swt/examples.php">DWT Example: DNDExample</a>
fd9c62a2998e Updater SWT 3.4M7 to 3.4
Frank Benoit <benoit@tionex.de>
parents: 212
diff changeset
37 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a>
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 public abstract class Transfer {
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40
320
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
41 private static final int RETRY_LIMIT = 10;
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
42 /*
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
43 * Feature in Windows. When another application has control
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
44 * of the clipboard, the clipboard is locked and it's not
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
45 * possible to retrieve data until the other application is
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
46 * finished. To allow other applications to get the
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
47 * data, use PeekMessage() to enable cross thread
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
48 * message sends.
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
49 */
321
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
50 int getData(IDataObject dataObject, FORMATETC* pFormatetc, STGMEDIUM* pmedium) {
320
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
51 if (dataObject.GetData(pFormatetc, pmedium) is COM.S_OK) return COM.S_OK;
321
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
52 try {tango.core.Thread.Thread.sleep(0.050);} catch (Exception t) {}
320
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
53 int result = dataObject.GetData(pFormatetc, pmedium);
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
54 int retryCount = 0;
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
55 while (result !is COM.S_OK && retryCount++ < RETRY_LIMIT) {
321
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
56 MSG msg;
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
57 OS.PeekMessage(&msg, null, 0, 0, OS.PM_NOREMOVE | OS.PM_NOYIELD);
a3b84f877e63 Fix compile errors
Frank Benoit <benoit@tionex.de>
parents: 320
diff changeset
58 try {tango.core.Thread.Thread.sleep(0.050);} catch (Exception t) {}
320
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
59 result = dataObject.GetData(pFormatetc, pmedium);
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
60 }
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
61 return result;
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
62 }
da968414c383 Merge changes SWT 3.4.1
Frank Benoit <benoit@tionex.de>
parents: 246
diff changeset
63
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * Returns a list of the platform specific data types that can be converted using
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * this transfer agent.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * <p>Only the data type fields of the <code>TransferData</code> objects are filled
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 * in.</p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * @return a list of the data types that can be converted using this transfer agent
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 abstract public TransferData[] getSupportedTypes();
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * Returns true if the <code>TransferData</code> data type can be converted
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * using this transfer agent, or false otherwise (including if transferData is
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * <code>null</code>).
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * @param transferData a platform specific description of a data type; only the data
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * type fields of the <code>TransferData</code> object need to be filled in
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 * @return true if the transferData data type can be converted using this transfer
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * agent
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 abstract public bool isSupportedType(TransferData transferData);
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 * Returns the platform specific ids of the data types that can be converted using
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 * this transfer agent.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * @return the platform specific ids of the data types that can be converted using
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * this transfer agent
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 abstract protected int[] getTypeIds();
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * Returns the platform specific names of the data types that can be converted
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * using this transfer agent.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * @return the platform specific names of the data types that can be converted
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * using this transfer agent.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 136
diff changeset
104 abstract protected String[] getTypeNames();
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 * Converts a java representation of data to a platform specific representation of
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * the data.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * <p>On a successful conversion, the transferData.result field will be set as follows:
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * <ul>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * <li>Windows: COM.S_OK
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * <li>Motif: 1
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * <li>GTK: 1
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * <li>Photon: 1
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 * </ul></p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * <p>If this transfer agent is unable to perform the conversion, the transferData.result
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 * field will be set to a failure value as follows:
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 * <ul>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 * <li>Windows: COM.DV_E_TYMED or COM.E_FAIL
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 * <li>Motif: 0
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * <li>GTK: 0
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 * <li>Photon: 0
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * </ul></p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 * @param object a java representation of the data to be converted; the type of
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 * Object that is passed in is dependent on the <code>Transfer</code> subclass.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * @param transferData an empty TransferData object; this object will be
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * filled in on return with the platform specific representation of the data
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * @exception dwt.DWTException <ul>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * <li>ERROR_INVALID_DATA - if object does not contain data in a valid format or is <code>null</code></li>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * </ul>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 abstract public void javaToNative (Object object, TransferData transferData);
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 * Converts a platform specific representation of data to a java representation.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 * @param transferData the platform specific representation of the data to be
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 * converted
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * @return a java representation of the converted data if the conversion was
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 * successful; otherwise null. If transferData is <code>null</code> then
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 * <code>null</code> is returned. The type of Object that is returned is
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * dependent on the <code>Transfer</code> subclass.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 abstract public Object nativeToJava(TransferData transferData);
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 * Registers a name for a data type and returns the associated unique identifier.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * <p>You may register the same type more than once, the same unique identifier
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * will be returned if the type has been previously registered.</p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 * <p>Note: On windows, do <b>not</b> call this method with pre-defined
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * Clipboard Format types such as CF_TEXT or CF_BITMAP because the
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 * pre-defined identifier will not be returned</p>
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * @param formatName the name of a data type
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * @return the unique identifier associated with this data type
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 */
212
ab60f3309436 reverted the char[] to String and use the an alias.
Frank Benoit <benoit@tionex.de>
parents: 136
diff changeset
166 public static int registerType(String formatName) {
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167 // Look name up in the registry
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 // If name is not in registry, add it and return assigned value.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 // If name already exists in registry, return its assigned value
136
04e357b8343d DragSource
Frank Benoit <benoit@tionex.de>
parents: 135
diff changeset
170 TCHAR* chFormatName = StrToTCHARz(0, formatName);
135
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 return OS.RegisterClipboardFormat(chFormatName);
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 }
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 /**
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * Test that the object is of the correct format for this Transfer class.
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * @param object a java representation of the data to be converted
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 * @return true if object is of the correct form for this transfer type
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 *
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181 * @since 3.1
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 */
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 public bool validate(Object object) {
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 return true;
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 }
242e33c0e383 Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 }