I am experimenting with pharo right now, particularly with Morphs. The weird thing is that some morphs can have a rotation halo and others do not. This has a "rotate halo": bar := EllipseMorph new. bar openInWorld. This does not: foo := Morph new. foo openInWorld Am I missing something? Also, how do I send message "rotate" to a morph? I can't seem to find a "rotate" method anywhere in the browser. - Steve
On Mon, 31 Dec 2018 at 04:24, Steve Quezadas <steve@thestever.net> wrote:
I am experimenting with pharo right now, particularly with Morphs. The weird thing is that some morphs can have a rotation halo and others do
not.
This has a "rotate halo": bar := EllipseMorph new. bar openInWorld.
This does not: foo := Morph new. foo openInWorld
Am I missing something? Also, how do I send message "rotate" to a morph? I can't seem to find a "rotate" method anywhere in the browser.
I don't know anything about this area, but here is how I discovered something to get you started... (somewhat recursively...) open new halos on the ellipse-rotation-halo, then click the spanner halo to Debug > Inspect Morph. To confirm you are in the right place confirm you can see... owner ==> HaloMorph. extension > balloonText ==> 'Rotate' Now dive into... extension > eventHandler > subscriptions, and you'll see a Dictionary with three items... #mouseDown > Items > aMorphEventSubscription > selector ==> #startRot:with: #mouseMove > Items > aMorphEventSubscription > selector ==> #doRot:with: #mouseUp > Items > aMorphEventSubscription > selector ==> #endInteraction HTH, cheers -ben
On 31/12/18 1:54 AM, Steve Quezadas wrote:
I am experimenting with pharo right now, particularly with Morphs. The weird thing is that some morphs can have a rotation halo and others do not.
This has a "rotate halo": bar := EllipseMorph new. bar openInWorld.
This does not: foo := Morph new. foo openInWorld
A morph has to implement #prepareToRotate method for rotate Halo button to appear and also implement rotationDegrees: method to do the actual transformation. Otherwise, you can add a flex shell to the morph and request it to rotate it. Morph does not support rotation, so there is no rotation button in its halo. EllipseMorph has a dummy rotationDegrees: method. CircleMorph and PolygonMorph go the whole way. foo := Morph new addFlexShell openCenteredInWorld foo topRendererOrSelf rotationDegrees: 45 bar := (PolygonMorph vertices: {261@400. 388@519. 302@595} color: Color blue borderWidth: 2 borderColor: Color black) openInWorld. bar rotationDegrees: 45 HTH .. Subbu
participants (3)
-
Ben Coman -
K K Subbu -
Steve Quezadas