--- 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 $'
! !