# HG changeset patch # User Jacob Carlborg # Date 1230731020 -3600 # Node ID ed7dd292bfb3c3829d8d4619aae2522e1b57e3f6 # Parent 6a1ed74f02e8d89ae0d35eb1ed59592146d24894 Ported dwt.dnd.ImageTransfer diff -r 6a1ed74f02e8 -r ed7dd292bfb3 dwt/dnd/ImageTransfer.d --- a/dwt/dnd/ImageTransfer.d Wed Dec 31 14:40:50 2008 +0100 +++ b/dwt/dnd/ImageTransfer.d Wed Dec 31 14:43:40 2008 +0100 @@ -8,6 +8,9 @@ * Contributors: * IBM Corporation - initial API and implementation * Outhink - support for typeFileURL + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.dnd.ImageTransfer; @@ -21,6 +24,10 @@ import dwt.internal.cocoa.OS; import dwt.widgets.Display; +import dwt.dnd.DND; +import dwt.dnd.ByteArrayTransfer; +import dwt.dnd.TransferData; + /** * The class ImageTransfer provides a platform specific mechanism * for converting an Image represented as a java ImageData to a @@ -37,13 +44,20 @@ * * @since 3.4 */ -public class ImageTransfer extends ByteArrayTransfer { +public class ImageTransfer : ByteArrayTransfer { + +static ImageTransfer _instance; +static const String TIFF; +static const int TIFFID; -static ImageTransfer _instance = new ImageTransfer(); -static final String TIFF = OS.NSTIFFPboardType.getString(); -static final int TIFFID = registerType(TIFF); +static this () +{ + _instance = new ImageTransfer(); + TIFF = OS.NSTIFFPboardType.getString(); + TIFFID = registerType(TIFF); +} -ImageTransfer() { +this() { } /** @@ -69,7 +83,7 @@ if (!checkImage(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } - ImageData imgData = (ImageData) object; + ImageData imgData = cast(ImageData) object; Image image = new Image(Display.getCurrent(), imgData); NSImage handle = image.handle; transferData.data = handle.TIFFRepresentation(); @@ -88,9 +102,9 @@ */ public Object nativeToJava(TransferData transferData) { if (!isSupportedType(transferData) || transferData.data is null) return null; - NSData data = (NSData) transferData.data; + NSData data = cast(NSData) transferData.data; if (data.length() is 0) return null; - NSImage nsImage = (NSImage) new NSImage().alloc(); + NSImage nsImage = cast(NSImage) (new NSImage()).alloc(); nsImage.initWithData(data); //TODO: Image representation wrong??? Image image = Image.cocoa_new(Display.getCurrent(), DWT.BITMAP, nsImage); @@ -100,15 +114,15 @@ } protected int[] getTypeIds() { - return new int[] { TIFFID }; + return [ TIFFID ]; } protected String[] getTypeNames() { - return new String[] { TIFF }; + return [ TIFF ]; } bool checkImage(Object object) { - if (object is null || !(object instanceof ImageData)) return false; + if (object is null || !(cast(ImageData) object)) return false; return true; }