Mercurial > projects > dwt-win
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 |
rev | line source |
---|---|
135
242e33c0e383
Added dnd source, ByteArrayTransfer,Clipboard completed
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 /******************************************************************************* |
246 | 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 | 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 | 21 import dwt.internal.ole.win32.OBJIDL; |
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 | 35 * @see <a href="http://www.eclipse.org/swt/snippets/#dnd">Drag and Drop snippets</a> |
36 * @see <a href="http://www.eclipse.org/swt/examples.php">DWT Example: DNDExample</a> | |
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 | 41 private static final int RETRY_LIMIT = 10; |
42 /* | |
43 * Feature in Windows. When another application has control | |
44 * of the clipboard, the clipboard is locked and it's not | |
45 * possible to retrieve data until the other application is | |
46 * finished. To allow other applications to get the | |
47 * data, use PeekMessage() to enable cross thread | |
48 * message sends. | |
49 */ | |
321 | 50 int getData(IDataObject dataObject, FORMATETC* pFormatetc, STGMEDIUM* pmedium) { |
320 | 51 if (dataObject.GetData(pFormatetc, pmedium) is COM.S_OK) return COM.S_OK; |
321 | 52 try {tango.core.Thread.Thread.sleep(0.050);} catch (Exception t) {} |
320 | 53 int result = dataObject.GetData(pFormatetc, pmedium); |
54 int retryCount = 0; | |
55 while (result !is COM.S_OK && retryCount++ < RETRY_LIMIT) { | |
321 | 56 MSG msg; |
57 OS.PeekMessage(&msg, null, 0, 0, OS.PM_NOREMOVE | OS.PM_NOYIELD); | |
58 try {tango.core.Thread.Thread.sleep(0.050);} catch (Exception t) {} | |
320 | 59 result = dataObject.GetData(pFormatetc, pmedium); |
60 } | |
61 return result; | |
62 } | |
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 | 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 } |