Squeak Class Documentation category index | class index  
 
ProjectViewMorph
  category: Morphic-Windows
  superclass: ImageMorph
  subclasses:

I am a Morphic view of a project. I display a scaled version of the project's thumbnail, which itself is a scaled-down snapshot of the screen taken when the project was last exited. When I am displayed, I check to see if the project thumbnail has changed and, if so, I update my own view of that thumbnail.

instance methods
  accessing
  project
thumbnail

  as yet unclassified
  addProjectNameMorph
addProjectNameMorphFiller
editTheName:
expungeProject
wantsDroppedMorph:event:
wantsKeyboardFocusFor:

  copying
  veryDeepFixupWith:
veryDeepInner:

  drawing
  borderWidthForRounding
colorAroundName
drawOn:
ensureImageReady
fontForName
fullDrawPostscriptOn:
isEditingName
isTheRealProjectPresent
safeProjectName
safeProjectName:
showBorderAs:
updateImageFrom:
updateNamePosition

  events
  abandon
acceptDroppingMorph:event:
balloonText
checkForNewerVersionAndLoad
deletingProject:
enter
enterAsActiveSubproject
enterWhenNotPresent
extent:
handlesMouseDown:
handlesMouseOver:
handlesMouseOverDragging:
handlesMouseStillDown:
initialize
lastProjectThumbnail:
mouseDown:
mouseEnter:
mouseLeave:
mouseLeaveDragging:
mouseStillDown:
mouseUp:
on:
project:
seeIfNameChanged
showMenuForProjectView
showMouseState:
step
stepTime
triggerActionFromPianoRoll
withProgressDo:

  fileIn/out
  eToyStreamedRepresentationNotifying:
objectForDataStream:
releaseCachedState
storeSegment

  object fileIn
  convertToCurrentVersion:refStream:

  rounding
  wantsRoundedCorners

class methods
  instance creation
  on:

  project window creation
  newMVCProject
newMorphicProject
newMorphicProjectOn:
newProjectViewInAWindowFor:

instance methods
  accessing top  
 

project


 

thumbnail


  as yet unclassified top  
 

addProjectNameMorph


 

addProjectNameMorphFiller


 

editTheName:


 

expungeProject


 

wantsDroppedMorph:event:

Return true if the receiver wishes to accept the given morph, which is being dropped by a hand in response to the given event. Note that for a successful drop operation both parties need to agree. The symmetric check is done automatically via aMorph wantsToBeDroppedInto: self.


 

wantsKeyboardFocusFor:

Answer whether a plain mouse click on aSubmorph, a text-edit-capable thing, should result in a text selection there


  copying top  
 

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. See DeepCopier class comment.


  drawing top  
 

borderWidthForRounding


 

colorAroundName


 

drawOn:


 

ensureImageReady


 

fontForName


 

fullDrawPostscriptOn:

handle the fact that we have the squished text within


 

isEditingName


 

isTheRealProjectPresent


 

safeProjectName


 

safeProjectName:


 

showBorderAs:

image border: image boundingBox width: 1 fillColor: aColor.
currentBorderColor _ aColor.
self changed


 

updateImageFrom:


 

updateNamePosition


  events top  
 

abandon

Home ViewMorph of project is going away.


 

acceptDroppingMorph:event:

This message is sent when a morph is dropped onto a morph that has agreed to accept the dropped morph by responding 'true' to the wantsDroppedMorph:Event: message. This default implementation just adds the given morph to the receiver.


 

balloonText

Answer balloon help text or nil, if no help is available.
NB: subclasses may override such that they programatically construct
the text, for economy's sake, such as model phrases in a Viewer


 

checkForNewerVersionAndLoad


 

deletingProject:

My project is being deleted. Delete me as well.


 

enter

Enter my project.


 

enterAsActiveSubproject

Enter my project.


 

enterWhenNotPresent


 

extent:

Set my image form to the given extent.


 

handlesMouseDown:

Do I want to receive mouseDown events (mouseDown:, mouseMove:, mouseUp:)?


 

handlesMouseOver:

Do I want to receive mouseEnter: and mouseLeave: when the button is up and the hand is empty? The default response is false, except if you have added sensitivity to mouseEnter: or mouseLeave:, using the on:send:to: mechanism.


 

handlesMouseOverDragging:

Return true if I want to receive mouseEnterDragging: and mouseLeaveDragging: when the hand drags something over me (button up or button down), or when the mouse button is down but there is no mouseDown recipient. The default response is false, except if you have added sensitivity to mouseEnterLaden: or mouseLeaveLaden:, using the on:send:to: mechanism.


 

handlesMouseStillDown:

Return true if the receiver wants to get repeated #mouseStillDown: messages between #mouseDown: and #mouseUp


 

initialize


 

lastProjectThumbnail:


 

mouseDown:

Smalltalk at: #Q put: OrderedCollection new


 

mouseEnter:

Handle a mouseEnter event, meaning the mouse just entered my bounds with no button pressed. The default response is to let my eventHandler, if any, handle it.


 

mouseLeave:

Handle a mouseLeave event, meaning the mouse just left my bounds with no button pressed. The default response is to let my eventHandler, if any, handle it.


 

mouseLeaveDragging:

Handle a mouseLeaveLaden event, meaning the mouse just left my bounds with a button pressed or laden with submorphs. The default response is to let my eventHandler, if any, handle it; else to do nothing.


 

mouseStillDown:

Handle a mouse move event. The default response is to let my eventHandler, if any, handle it.


 

mouseUp:

Handle a mouse up event. The default response is to let my eventHandler, if any, handle it.


 

on:


 

project:


 

seeIfNameChanged


 

showMenuForProjectView


 

showMouseState:


 

step

Check for a command that could not be executed in my subproject. Once it is done, remove the trigger. If this is too slow, make armsLengthCmd an inst var.


 

stepTime

Answer the desired time between steps in milliseconds. This default implementation requests that the 'step' method be called once every second.


 

triggerActionFromPianoRoll

a hack to allow for abitrary morphs to be dropped into piano roll


 

withProgressDo:


  fileIn/out top  
 

eToyStreamedRepresentationNotifying:


 

objectForDataStream:

I am being written out on an object file


 

releaseCachedState

see if we can reduce size of published file, but there may be problems


 

storeSegment

Store my project out on the disk as an ImageSegment. Keep the outPointers in memory. Name it <project name>.seg


  object fileIn top  
 

convertToCurrentVersion:refStream:

currentBorderColor ifNil: [currentBorderColor _ Color gray].


  rounding top  
 

wantsRoundedCorners

Default response is simple, fast, and false.
May be overridden to allow almost any morph to be rounded.


class methods
  instance creation top  
 

on:


  project window creation top  
 

newMVCProject

Create an instance of me on a new MVC project (in a SystemWindow).


 

newMorphicProject

Return an instance of me on a new Morphic project (in a SystemWindow).


 

newMorphicProjectOn:

Return an instance of me on a new Morphic project (in a SystemWindow).


 

newProjectViewInAWindowFor:

Return an instance of me on a new Morphic project (in a SystemWindow).