# HG changeset patch # User Claus Gittinger # Date 1160756630 -7200 # Node ID bb57190f82057e4934c0ae49537cb48c02050690 # Parent 1e9572bb7ccd9555571f9c21d8d59286a59128f9 drag and drop cleanup diff -r 1e9572bb7ccd -r bb57190f8205 DropTarget.st --- 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 $' ! !