[squeak-dev] The Trunk: System-dtl.210.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Dec 29 01:34:50 UTC 2009

David T. Lewis uploaded a new version of System to project The Trunk:

==================== Summary ====================

Name: System-dtl.210
Author: dtl
Time: 28 December 2009, 8:30:32 am
UUID: 5168fb07-568b-4740-9ea1-d2735d078dec
Ancestors: System-dtl.209

Move #restoreDisplay implementation from ScreenController to Project to eliminate #isMorphic sends.

Eliminate #isMorphic from #snapshot:andQuit:embedded: by adding #startUpComplete to Project and MorphicProject.

Move #offerMenuFrom:shifted: from StringHolder to Project to eliminate #isMorphic send.

=============== Diff against System-dtl.209 ===============

Item was added:
+ ----- Method: Project>>restoreDisplay (in category 'displaying') -----
+ restoreDisplay 
+ 	"Clear the screen to gray and then redisplay all the scheduled views."
+ 	self subclassResponsibility!

Item was changed:
  ----- Method: SmalltalkImage>>snapshot:andQuit:embedded: (in category 'snapshot and quit') -----
  snapshot: save andQuit: quit embedded: embeddedFlag
  	"Mark the changes file and close all files as part of #processShutdownList.
  	If save is true, save the current state of this Smalltalk in the image file.
  	If quit is true, then exit to the outer OS shell.
  	The latter part of this method runs when resuming a previously saved image. This resume logic checks for a document file to process when starting up."
  	| resuming msg |
  	Object flushDependents.
  	Object flushEvents.
  	(SourceFiles at: 2) ifNotNil:[
  		msg := String streamContents: [ :s |
  			s nextPutAll: '----';
  			nextPutAll: (save ifTrue: [ quit ifTrue: [ 'QUIT' ] ifFalse: [ 'SNAPSHOT' ] ]
  							ifFalse: [quit ifTrue: [ 'QUIT/NOSAVE' ] ifFalse: [ 'NOP' ]]);
  			nextPutAll: '----';
  			print: Date dateAndTimeNow; space;
  			nextPutAll: (FileDirectory default localNameFor: self imageName);
  			nextPutAll: ' priorSource: ';
  			print: LastQuitLogPosition ].
  		self assureStartupStampLogged.
  		save ifTrue: [ LastQuitLogPosition := (SourceFiles at: 2) setToEnd; position ].
  		self logChange: msg.
  		Transcript cr; show: msg
  	Smalltalk processShutDownList: quit.
  	Cursor write show.
  	save ifTrue: [resuming := embeddedFlag 
  					ifTrue: [self snapshotEmbeddedPrimitive] 
  					ifFalse: [self snapshotPrimitive].  "<-- PC frozen here on image file"
  				resuming == false "guard against failure" ifTrue:
  					["Time to reclaim segment files is immediately after a save"
  					Smalltalk at: #ImageSegment
  						ifPresent: [:theClass | theClass reclaimObsoleteSegmentFiles]]]
  		ifFalse: [resuming := false].
  	quit & (resuming == false) ifTrue: [self quitPrimitive].
  	Cursor normal show.
  	Smalltalk setGCParameters.
  	resuming == true ifTrue: [Smalltalk clearExternalObjects].
  	Smalltalk processStartUpList: resuming == true.
  	resuming == true ifTrue:[
  		self setPlatformPreferences.
  		self recordStartupStamp].
+ 	Project current startUpComplete.
- 	Smalltalk isMorphic ifTrue: [SystemWindow wakeUpTopWindowUponStartup].
  	"Now it's time to raise an error"
  	resuming == nil ifTrue: [self error:'Failed to write image file (disk full?)'].
  	^ resuming!

Item was added:
+ ----- Method: Project>>offerMenuFrom:shifted: (in category 'utilities') -----
+ offerMenuFrom: menuRetriever shifted: aBoolean
+ 	"Pop up a menu whose target is the receiver and whose contents are provided
+ 	by sending the menuRetriever to the receiver. The menuRetriever takes two
+ 	arguments: a menu, and a boolean representing the shift state."
+ 	self subclassResponsibility!

Item was added:
+ ----- Method: Project>>startUpComplete (in category 'enter') -----
+ startUpComplete
+ 	"Image has been restarted, and the startUp list has been processed. Perform
+ 	any additional actions needed to restart the user interface."
+ 	^ self!

More information about the Squeak-dev mailing list