[Newbies] Re: Constrained Morph dragging
Sebastian Nozzi
sebnozzi at gmail.com
Sun Nov 18 13:29:06 UTC 2012
I came up with this... does what I need and I have no visual
artifacts anymore. Still, I'm not happy for having to override a
private method in order for this to work... :-/
Overridden existing method in my Morph subclass:
privateFullMoveBy: delta
super privateFullMoveBy: delta.
(self wantsToConstrainDragging & self isBeingDragged)
ifTrue: [ self adjustPositionWhileDragging ]
New methods in my Morph subclass:
isBeingDragged
^ self owner isHandMorph
wantsToConstrainDragging
^ true
adjustPositionWhileDragging
self position: (self constrainedDragPositionFrom: (self topLeft))
constrainedDragPositionFrom: aNonConstrainedPosition
"Adjust the position to be constrained however you want. In this case
horizontally at y=450"
^ (aNonConstrainedPosition x) @ 450.
You would need to override only "wantsToConstrainDragging" and
"constrainedDragPositionFor:".
Any critique to the code and/or naming welcome! :-)
Cheers,
Sebastian
More information about the Beginners
mailing list