changeset 115:a2d82e6fd054

Ported dwt.dnd
author Jacob Carlborg <doob@me.com>
date Wed, 31 Dec 2008 15:32:40 +0100
parents d0d0b721dbcc
children 580596d83ac4
files dwt/dnd/DNDListener.d dwt/dnd/DragSource.d dwt/dnd/DropTarget.d dwt/dnd/FileTransfer.d dwt/dnd/RTFTransfer.d dwt/dnd/TextTransfer.d
diffstat 6 files changed, 38 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/dnd/DNDListener.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/DNDListener.d	Wed Dec 31 15:32:40 2008 +0100
@@ -26,7 +26,10 @@
 import dwt.dnd.DragSourceEffect;
 import dwt.dnd.DragSourceEvent;
 import dwt.dnd.DragSourceListener;
+import dwt.dnd.DropTarget;
+import dwt.dnd.DropTargetEffect;
 import dwt.dnd.DropTargetEvent;
+import dwt.dnd.DropTargetListener;
 
 class DNDListener : TypedListener {
     Widget dndWidget;
@@ -130,6 +133,8 @@
             break;
         }
         
+        default:
+        
     }
 }
 }
--- a/dwt/dnd/DragSource.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/DragSource.d	Wed Dec 31 15:32:40 2008 +0100
@@ -43,10 +43,16 @@
 import dwt.widgets.Tree;
 import dwt.widgets.Widget;
 
+import tango.core.Thread;
+
 import dwt.dnd.DND;
+import dwt.dnd.DNDEvent;
+import dwt.dnd.DNDListener;
 import dwt.dnd.DragSourceEffect;
 import dwt.dnd.DragSourceListener;
+import dwt.dnd.TableDragSourceEffect;
 import dwt.dnd.Transfer;
+import dwt.dnd.TransferData;
 import dwt.dnd.TreeDragSourceEffect;
 import dwt.internal.objc.cocoa.Cocoa;
 import objc = dwt.internal.objc.runtime;
@@ -399,8 +405,8 @@
     this.dragStarted = true;
 }
 
-void draggedImage_endedAt_operation(NSImage image, NSPoint location, objc.id operation) {
-    int swtOperation = osOpToOp(operation);
+void draggedImage_endedAt_operation(NSImage image, NSPoint location, NSDragOperation operation) {
+    int swtOperation = osOpToOp(cast(NSDragOperation) operation);
     Event event = new DNDEvent();
     event.widget = this;
     event.time = cast(int)System.currentTimeMillis();   
@@ -418,7 +424,7 @@
 }
 extern (C) {
 static objc.id dragSourceProc2(objc.id id, objc.SEL sel) {
-    Display display = Display.findDisplay(Thread.currentThread());
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -433,7 +439,7 @@
 }
 
 static objc.id dragSourceProc3(objc.id id, objc.SEL sel, objc.id arg0) {
-    Display display = Display.findDisplay(Thread.currentThread());
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -445,14 +451,14 @@
     if (ds is null) return null;
     
     if (sel is OS.sel_draggingSourceOperationMaskForLocal_) {
-        return ds.draggingSourceOperationMaskForLocal(arg0 is cast(objc.id) 1);
+        return cast(objc.id) ds.draggingSourceOperationMaskForLocal(arg0 is cast(objc.id) 1);
     }
     
     return null;
 }
 
 static objc.id dragSourceProc4(objc.id id, objc.id sel, objc.id arg0, objc.id arg1) {
-    Display display = Display.findDisplay(Thread.currentThread());
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -476,8 +482,8 @@
     return null;
 }
 
-static objc.id dragSourceProc5(objc.id id, objc.id sel, objc.id arg0, objc.id arg1, objc.id arg2) {
-    Display display = Display.findDisplay(Thread.currentThread());
+static objc.id dragSourceProc5(objc.id id, objc.id sel, objc.id arg0, objc.id arg1, NSDragOperation arg2) {
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -491,7 +497,7 @@
     if (sel is OS.sel_draggedImage_endedAt_operation_) {
         NSImage image = new NSImage(arg0);
         NSPoint point = NSPoint();
-        OS.memmove(point, arg1, NSPoint.sizeof);
+        OS.memmove(&point, arg1, NSPoint.sizeof);
         ds.draggedImage_endedAt_operation(image, point, arg2);
     }
     
@@ -586,12 +592,12 @@
     control = null;
     transferAgents = null;
 
-    if (delegateJniRef !is 0) OS.DeleteGlobalRef(delegateJniRef);
+    //if (delegateJniRef !is null) OS.DeleteGlobalRef(delegateJniRef);
     if (dragSourceDelegate !is null) dragSourceDelegate.release();
 }
 
 int opToOsOp(int operation) {
-    NSDragOperation osOperation = 0;
+    NSDragOperation osOperation;
     if ((operation & DND.DROP_COPY) !is 0){
         osOperation |= OS.NSDragOperationCopy;
     }
--- a/dwt/dnd/DropTarget.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/DropTarget.d	Wed Dec 31 15:32:40 2008 +0100
@@ -40,6 +40,8 @@
 import dwt.widgets.Tree;
 import dwt.widgets.Widget;
 
+import tango.core.Thread;
+
 import dwt.dnd.DND;
 import dwt.dnd.DNDEvent;
 import dwt.dnd.DNDListener;
@@ -48,6 +50,7 @@
 import dwt.dnd.TableDropTargetEffect;
 import dwt.dnd.Transfer;
 import dwt.dnd.TransferData;
+import dwt.dnd.TreeDropTargetEffect;
 import dwt.dwthelper.array;
 import dwt.internal.objc.cocoa.Cocoa;
 import objc = dwt.internal.objc.runtime;
@@ -391,9 +394,9 @@
 
     addDragHandlers();  
 }
-
+extern (C) {
 static objc.id dropTargetProc2(objc.id id, objc.SEL sel) {
-    Display display = Display.findDisplay(Thread.currentThread());
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -401,14 +404,14 @@
     if (dt is null) return null;
 
     if (sel is OS.sel_wantsPeriodicDraggingUpdates) {
-        return dt.wantsPeriodicDraggingUpdates() ? 1 : 0;
+        return dt.wantsPeriodicDraggingUpdates() ? cast(objc.id) 1 : null;
     }
     
     return null;
 }
 
 static objc.id dropTargetProc3(objc.id id, objc.SEL sel, objc.id arg0) {
-    Display display = Display.findDisplay(Thread.currentThread());
+    Display display = Display.findDisplay(Thread.getThis());
     if (display is null || display.isDisposed()) return null;
     Widget widget = display.findWidget(id);
     if (widget is null) return null;
@@ -420,9 +423,9 @@
     NSObject sender = new NSObject(arg0);
     
     if (sel is OS.sel_draggingEntered_) {
-        return dt.draggingEntered(sender);
+        return cast(objc.id) dt.draggingEntered(sender);
     } else if (sel is OS.sel_draggingUpdated_) {
-        return dt.draggingUpdated(sender);
+        return cast(objc.id) dt.draggingUpdated(sender);
     } else if (sel is OS.sel_draggingExited_) {
         dt.draggingExited(sender);
     } else if (sel is OS.sel_performDragOperation_) {
@@ -430,7 +433,7 @@
     }
     
     return null;
-}
+}}
 
 /**
  * Returns the Control which is registered for this DropTarget.  This is the control over which the 
@@ -536,7 +539,7 @@
 }
 
 int opToOsOp(int operation) {
-    NSDragOperation osOperation = 0;
+    NSDragOperation osOperation;
     if ((operation & DND.DROP_COPY) !is 0){
         osOperation |= OS.NSDragOperationCopy;
     }
--- a/dwt/dnd/FileTransfer.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/FileTransfer.d	Wed Dec 31 15:32:40 2008 +0100
@@ -117,7 +117,7 @@
         NSString string = new NSString(array.objectAtIndex(i));
         fileNames[i] = string.getString();
     }
-    return fileNames;
+    return new ArrayWrapperString2(fileNames);
 }
 
 protected int[] getTypeIds(){
@@ -129,8 +129,8 @@
 }
 
 bool checkFile(Object object) {
-    if (object is null || !(cast(ArrayWrapperString2)object) || (cast(ArrayWrapperString2)object).length is 0) return false;
-    String[] strings = cast(ArrayWrapperString2)object;
+    if (object is null || !(cast(ArrayWrapperString2)object) || (cast(ArrayWrapperString2)object).array.length is 0) return false;
+    String[] strings = (cast(ArrayWrapperString2)object).array;
     for (int i = 0; i < strings.length; i++) {
         if (strings[i] is null || strings[i].length() is 0) return false;
     }
--- a/dwt/dnd/RTFTransfer.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/RTFTransfer.d	Wed Dec 31 15:32:40 2008 +0100
@@ -90,7 +90,7 @@
 public Object nativeToJava(TransferData transferData){
     if (!isSupportedType(transferData) || transferData.data is null) return null;
     NSString string = cast(NSString) transferData.data;
-    return string.getString();
+    return new ArrayWrapperString(string.getString());
 }
 
 protected int[] getTypeIds() {
--- a/dwt/dnd/TextTransfer.d	Wed Dec 31 15:17:35 2008 +0100
+++ b/dwt/dnd/TextTransfer.d	Wed Dec 31 15:32:40 2008 +0100
@@ -90,7 +90,7 @@
 public Object nativeToJava(TransferData transferData){
     if (!isSupportedType(transferData) || transferData.data is null) return null;
     NSString string = cast(NSString) transferData.data;
-    return string.getString();
+    return new ArrayWrapperString(string.getString());
 }
 
 protected int[] getTypeIds() {