DropTarget.st
changeset 2258 bb57190f8205
parent 2256 02d92cd76f35
child 2334 ec0c03d247f5
--- a/DropTarget.st	Fri Oct 13 17:58:43 2006 +0200
+++ b/DropTarget.st	Fri Oct 13 18:23:50 2006 +0200
@@ -13,7 +13,7 @@
 
 Object subclass:#DropTarget
 	instanceVariableNames:'receiver enterSelector leaveSelector overSelector dropSelector
-		canDropSelector argument'
+		canDropSelector argument oldDropAPI'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'Interface-DragAndDrop'
@@ -77,10 +77,10 @@
     ^ self new receiver:aReceiver
 !
 
-receiver:aReceiver argument:anArgument
+receiver:aReceiver argument:anArgument 
+    ^ self new receiver:aReceiver argument:anArgument.
 
-    ^ self new receiver:aReceiver
-               argument:anArgument.
+    "Modified: / 13-10-2006 / 18:19:53 / cg"
 !
 
 receiver:aReceiver argument:anArgument dropSelector:aSelector 
@@ -93,12 +93,14 @@
     "Modified: / 13-10-2006 / 17:50:12 / cg"
 !
 
-receiver:aReceiver argument:anArgument dropSelector:s1 canDropSelector:s2
+receiver:aReceiver argument:anArgument dropSelector:s1 canDropSelector:s2 
+    ^ self new 
+        receiver:aReceiver
+        argument:anArgument
+        dropSelector:s1
+        canDropSelector:s2
 
-    ^ self new receiver:aReceiver
-               argument:anArgument
-           dropSelector:s1
-        canDropSelector:s2
+    "Modified: / 13-10-2006 / 18:19:58 / cg"
 ! !
 
 !DropTarget methodsFor:'accessing'!
@@ -215,6 +217,10 @@
     leaveSelector := something.
 !
 
+oldDropAPI:something
+    oldDropAPI := something.
+!
+
 overSelector
     "send all the time to the drop target when moveing the mouse over the widget
 
@@ -258,27 +264,43 @@
 drop:aDropContext
     "sent, when the mouse button is released within the current widget."
 
-    self receiverPerform:dropSelector withContext:aDropContext
+    oldDropAPI == true ifTrue:[
+        receiver perform:dropSelector with:(aDropContext dropObjects) with:(aDropContext targetPoint)
+    ] ifFalse:[
+        receiver perform:dropSelector withOptionalArgument:aDropContext and:argument
+    ]
 
-    "Modified: / 13-10-2006 / 11:35:28 / cg"
+    "Modified: / 13-10-2006 / 18:21:26 / cg"
 !
 
 enter:aContext
     "sent, when entering a widget."
 
-    self receiverPerform:enterSelector withContext:aContext
+    enterSelector notNil ifTrue:[
+        receiver perform:enterSelector withOptionalArgument:aContext and:argument
+    ]
+
+    "Modified: / 13-10-2006 / 18:14:33 / cg"
 !
 
 leave:aContext
     "sent, when leaving a widget."
 
-    self receiverPerform:leaveSelector withContext:aContext
+    leaveSelector notNil ifTrue:[
+        receiver perform:leaveSelector withOptionalArgument:aContext and:argument
+    ]
+
+    "Modified: / 13-10-2006 / 18:14:43 / cg"
 !
 
 over:aContext
     "sent, whenever the mouse is moved over the widget."
 
-    self receiverPerform:overSelector withContext:aContext
+    overSelector notNil ifTrue:[
+        receiver perform:overSelector withOptionalArgument:aContext and:argument
+    ]
+
+    "Modified: / 13-10-2006 / 18:14:53 / cg"
 ! !
 
 !DropTarget methodsFor:'instance creation'!
@@ -315,15 +337,15 @@
     "send to the receiver to ask if the context is droppable"
 
     canDropSelector notNil ifTrue:[
-        ^ self receiverPerform:canDropSelector withContext:aDropContext
+        ^ receiver perform:canDropSelector withOptionalArgument:aDropContext and:argument
     ].
     ^ true
 
-    "Modified: / 13-10-2006 / 11:35:22 / cg"
+    "Modified: / 13-10-2006 / 18:13:34 / cg"
 ! !
 
 !DropTarget class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview2/DropTarget.st,v 1.6 2006-10-13 15:58:21 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview2/DropTarget.st,v 1.7 2006-10-13 16:23:50 cg Exp $'
 ! !