Bert Freudenberg uploaded a new version of Morphic to project Etoys: http://source.squeak.org/etoys/Morphic-bf.24.mcz
==================== Summary ====================
Name: Morphic-bf.24 Author: bf Time: 24 June 2010, 3:21:23 pm UUID: dbbb87cc-14c4-4f4c-8e9f-c29d47299e43 Ancestors: Morphic-Richo.23
- like dragging with the right mousebutton, resize if the control key is pressed
=============== Diff against Morphic-Richo.23 ===============
Item was changed: ----- Method: HaloMorph>>mouseMove: (in category 'event handling') ----- mouseMove: evt + "Drag our target around or resize it" + growingOrRotating + ifTrue: [ + | newExtent | + newExtent := originalExtent + evt position - positionOffset. + (newExtent x > 1 and: [newExtent y > 1]) + ifTrue: [ target renderedMorph setExtentFromHalo: newExtent]] + ifFalse: [ + | thePoint | + thePoint := target point: (evt position - positionOffset) from: owner. + target setConstrainedPosition: thePoint hangOut: true. + ]! - "Drag our target around" - | thePoint | - thePoint _ target point: (evt position - positionOffset) from: owner. - target setConstrainedPosition: thePoint hangOut: true.!
Item was changed: ----- Method: HaloMorph>>dragTarget: (in category 'events') ----- dragTarget: event "Begin dragging the target"
| thePoint | + event controlKeyPressed ifTrue: [^self growTarget: event]. + growingOrRotating := false. innerTarget aboutToBeBrownDragged. self setProperty: #conclusionSelector toValue: #brownDragConcluded. thePoint _ target point: event position - positionOffset from: owner. target setConstrainedPosition: thePoint hangOut: true. event hand newMouseFocus: self!
Item was changed: ----- Method: Morph>>handleMouseDown: (in category 'events-processing') ----- handleMouseDown: anEvent "System level event handling." anEvent wasHandled ifTrue:[^self]. "not interested" anEvent hand removePendingBalloonFor: self. anEvent hand removePendingHaloFor: self. anEvent wasHandled: true.
(anEvent controlKeyPressed + and: [anEvent blueButtonChanged not + and: [Preferences cmdGesturesEnabled]]) - and: [Preferences cmdGesturesEnabled]) ifTrue: [^ self invokeMetaMenu: anEvent].
"Make me modal during mouse transitions" anEvent hand newMouseFocus: self event: anEvent. anEvent blueButtonChanged ifTrue:[^self blueButtonDown: anEvent]. "this mouse down could be the start of a gesture, or the end of a gesture focus" (self isGestureStart: anEvent) ifTrue: [^ self gestureStart: anEvent].
self mouseDown: anEvent. anEvent hand removeHaloFromClick: anEvent on: self.
(self handlesMouseStillDown: anEvent) ifTrue:[ self startStepping: #handleMouseStillDown: at: Time millisecondClockValue + self mouseStillDownThreshold arguments: {anEvent copy resetHandlerFields} stepTime: self mouseStillDownStepRate ]. !
Item was added: + ----- Method: HaloMorph>>growTarget: (in category 'events') ----- + growTarget: event + "Begin resizing the target" + growingOrRotating := true. + positionOffset := event position. + originalExtent := target extent. + self removeAllHandlesBut: nil. + event hand newMouseFocus: self. + event hand addMouseListener: self. "add handles back on mouse-up"!
etoys-dev@lists.squeakfoundation.org