Squeak Class Documentation category index | class index  
 
MorphExtension
  category: Morphic-Kernel
  superclass: Object
  subclasses:

MorphExtension provides access to extra instance state that is not required in most simple morphs. This allows simple morphs to remain relatively lightweight while still admitting more complex structures as necessary. The otherProperties field takes this policy to the extreme of allowing any number of additional named attributes, albeit at a certain cost in speed and space.

instance methods
  copying
  copyWeakly
updateReferencesUsing:
veryDeepFixupWith:
veryDeepInner:

  initialization
  initialize

  layout properties
  layoutFrame
layoutFrame:
layoutPolicy
layoutPolicy:
layoutProperties
layoutProperties:

  named access
  actorState
actorState:
balloonText
balloonText:
balloonTextSelector
balloonTextSelector:
eventHandler
eventHandler:
externalName
externalName:
isPartsDonor
isPartsDonor:
locked
locked:
player
player:
sticky
sticky:
visible
visible:

  object fileIn
  comeFullyUpOnReload:
convertProperty:toValue:

  other
  isDefault
printOn:
removeOtherProperties
sortedPropertyNames

  other properties
  hasProperty:
otherProperties
removeProperty:
setProperty:toValue:
valueOfProperty:
valueOfProperty:ifAbsent:
valueOfProperty:ifAbsentPut:

class methods
  no messages
 

instance methods
  copying top  
 

copyWeakly

list of names of properties whose values should be weak-copied when veryDeepCopying a morph. See DeepCopier.


 

updateReferencesUsing:

Update intra-morph references within a composite morph that has
been copied. For example, if a button refers to morph X in the orginal
composite then the copy of that button in the new composite should refer to
the copy of X in new composite, not the original X. This default
implementation updates the contents of any morph-bearing slot.


 

veryDeepFixupWith:

If target and arguments fields were weakly copied, fix them here. If they were in the tree being copied, fix them up, otherwise point to the originals!!


 

veryDeepInner:

Copy all of my instance variables. Some need to be not copied at all, but shared. This is special code for the dictionary. See DeepCopier.


  initialization top  
 

initialize

Init all booleans to default values


  layout properties top  
 

layoutFrame


 

layoutFrame:


 

layoutPolicy


 

layoutPolicy:


 

layoutProperties


 

layoutProperties:

Return the current layout properties associated with the receiver


  named access top  
 

actorState


 

actorState:


 

balloonText


 

balloonText:


 

balloonTextSelector


 

balloonTextSelector:


 

eventHandler


 

eventHandler:


 

externalName

Answer an external name by which the receiver is known. Generic implementation here is a transitional backstop. probably


 

externalName:


 

isPartsDonor


 

isPartsDonor:


 

locked


 

locked:


 

player


 

player:


 

sticky


 

sticky:


 

visible


 

visible:


  object fileIn top  
 

comeFullyUpOnReload:

inst vars have default booplean values.


 

convertProperty:toValue:

These special cases move old properties into named fields of the extension


  other top  
 

isDefault

Return true if the receiver is a default and can be omitted


 

printOn:

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


 

removeOtherProperties

Remove the 'other' properties


 

sortedPropertyNames


  other properties top  
 

hasProperty:

Answer whether the receiver has the given property. Deemed to have it only if I have a property dictionary entry for it and that entry is neither nil nor false


 

otherProperties


 

removeProperty:


 

setProperty:toValue:

These special cases move old properties into named fields of the extension


 

valueOfProperty:


 

valueOfProperty:ifAbsent:


 

valueOfProperty:ifAbsentPut:

If the receiver possesses a property of the given name, answer its value. If not, then create a property of the given name, give it the value obtained by evaluating aBlock, then answer that value


class methods
  no messages top