Squeak Class Documentation category index | class index  
 
TransformationMorph
  category: Morphic-Basic
  superclass: TransformMorph
  subclasses: BOBTransformationMorph TransformationB2Morph

A TransformationMorph is like a transformMorph, except that it does not clip, and its bounds include its entire submorph. TransformationMorphs are assumed to have only one submorph -- the idea is that it is a wrapper that enables its submorph to scale and rotate. A TMorph may come to have more than one submorph if, eg, a menu sprouts a sub menu, using the transformationMorph temporarily as its world, but this ability is only sparsely supported (as in layoutChanged).

instance methods
  accessing
  extent:
hasNoScaleOrRotation
innocuousName
isFlexMorph
isRenderer
printOn:
referencePosition
rotationDegrees
rotationDegrees:
scaleToMatch:

  change reporting
  layoutChanged

  drawing
  drawOn:

  dropping/grabbing
  grabTransform

  e-toy support
  degreesOfFlex
forwardDirection
forwardDirection:
heading
heading:
setDirectionFrom:

  geometry
  computeBounds
transformedBy:

  initialization
  asFlexOf:
flexing:byTransformation:

  menu
  removeFlexShell

  private
  adjustAfter:
chooseSmoothing
replaceSubmorph:by:

  stepping and presenter
  stepTime

class methods
  no messages
 

instance methods
  accessing top  
 

extent:


 

hasNoScaleOrRotation


 

innocuousName

Choose an innocuous name for the receiver -- one that does not end in the word Morph


 

isFlexMorph


 

isRenderer

A *renderer* morph transforms the appearance of its submorph in some manner. For example, it might supply a drop shadow or scale and rotate the morph it encases. Answer true if this morph acts as a renderer. This default implementation returns false.


 

printOn:

Append to the argument, aStream, a sequence of characters that
identifies the receiver.


 

referencePosition

Answer the receiver's reference position, bullet-proofed against infinite recursion in the unlikely but occasionally-seen case that I am my own renderee


 

rotationDegrees

Default implementation.


 

rotationDegrees:


 

scaleToMatch:


  change reporting top  
 

layoutChanged

Recompute bounds as a result of change


  drawing top  
 

drawOn:


  dropping/grabbing top  
 

grabTransform

Return the transform for the receiver which should be applied during grabbing


  e-toy support top  
 

degreesOfFlex

Return any rotation due to flexing


 

forwardDirection

Return the receiver's forward direction (in eToy terms)


 

forwardDirection:

Set the receiver's forward direction (in eToy terms)


 

heading

Return the receiver's heading (in eToy terms)


 

heading:

Set the receiver's heading (in eToy terms)


 

setDirectionFrom:


  geometry top  
 

computeBounds


 

transformedBy:


  initialization top  
 

asFlexOf:

Initialize me with position and bounds of aMorph,
and with an offset that provides centered rotation.


 

flexing:byTransformation:

Initialize me with position and bounds of aMorph,
and with an offset that provides centered rotation.


  menu top  
 

removeFlexShell

Remove the shell used to make a morph rotatable and scalable.


  private top  
 

adjustAfter:

Cause this morph to remain cetered where it was before, and
choose appropriate smoothing, after a change of scale or rotation.


 

chooseSmoothing

Choose appropriate smoothing, after a change of scale or rotation.


 

replaceSubmorph:by:


  stepping and presenter top  
 

stepTime

Answer the stepTime of my rendered morph if posible


class methods
  no messages top