[squeak-dev] The Trunk: Collections-fbs.549.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Dec 13 18:55:28 UTC 2013


Frank Shearar uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-fbs.549.mcz

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

Name: Collections-fbs.549
Author: fbs
Time: 13 December 2013, 6:54:48.313 pm
UUID: 0f65b403-968d-8445-af4f-a0888ccb807d
Ancestors: Collections-dtl.548

Transcripter is actually MVC specific. Move it there, and other UI frameworks can define their own emergency evaluator.

=============== Diff against Collections-dtl.548 ===============

Item was removed:
- ReadWriteStream subclass: #Transcripter
- 	instanceVariableNames: 'frame para'
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'Collections-Streams'!
- 
- !Transcripter commentStamp: '<historical>' prior: 0!
- Transcripter is a dog-simple scrolling stream with display.  It is intended to operate with no support from MVC or color in a minimal, or headless version of Squeak.  No attention has been paid to appearance or performance.!

Item was removed:
- ----- Method: Transcripter class>>emergencyEvaluator (in category 'utilities') -----
- emergencyEvaluator
- 	(Transcripter newInFrame: (0 at 0 corner: 320 at 200))
- 		show: 'Type ''revert'' to revert your last method change.
- Type ''exit'' to exit the emergency evaluator.';
- 		readEvalPrint!

Item was removed:
- ----- Method: Transcripter class>>newInFrame: (in category 'instance creation') -----
- newInFrame: frame
- "
- (Transcripter newInFrame: (0 at 0 extent: 100 at 200))
- 	nextPutAll: 'Hello there'; endEntry;
- 	cr; print: 355.0/113; endEntry;
- 	readEvalPrint.
- "
- 	| transcript |
- 	transcript := self on: (String new: 100).
- 	transcript initInFrame: frame.
- 	^ transcript clear!

Item was removed:
- ----- Method: Transcripter class>>startTranscriptProcess (in category 'instance creation') -----
- startTranscriptProcess   "Transcripter startTranscriptProcess"
- 	| activeProcess |
- 	Transcript := self newInFrame: Display boundingBox.
- 	activeProcess := [Transcript readEvalPrint.
- 					Smalltalk processShutDownList: true; quitPrimitive]
- 						newProcess
- 					priority: Processor userSchedulingPriority.
- 	activeProcess resume.
- 	Processor terminateActive
- !

Item was removed:
- ----- Method: Transcripter>>black (in category 'private') -----
- black
- 	Display depth = 1 ifTrue: [^ Bitmap with: 16rFFFFFFFF "Works without color support"].
- 	^ Color black!

Item was removed:
- ----- Method: Transcripter>>clear (in category 'accessing') -----
- clear
- 	Display fill: (frame insetBy: -2) fillColor: self black;
- 			fill: frame fillColor: self white.
- 	self on: (String new: 100); endEntry!

Item was removed:
- ----- Method: Transcripter>>confirm: (in category 'command line') -----
- confirm: queryString 
- 
- 	| choice |
- 	[choice := self request: queryString , '
- Please type yes or no followed by return'.
- 	choice first asUppercase = $Y ifTrue: [^ true].
- 		choice first asUppercase = $N ifTrue: [^ false]] repeat!

Item was removed:
- ----- Method: Transcripter>>endEntry (in category 'accessing') -----
- endEntry
- 	| c d cb |
- 	c := self contents.
- 	Display extent ~= DisplayScreen actualScreenSize ifTrue:
- 		["Handle case of user resizing physical window"
- 		DisplayScreen startUp.
- 		frame := frame intersect: Display boundingBox.
- 		^ self clear; show: c].
- 	para setWithText: c asText
- 		style: TextStyle default
- 		compositionRectangle: ((frame insetBy: 4) withHeight: 9999)
- 		clippingRectangle: frame
- 		foreColor: self black backColor: self white.
- 	d := para compositionRectangle bottom - frame bottom.
- 	d > 0 ifTrue:
- 		["Scroll up to keep all contents visible"
- 		cb := para characterBlockAtPoint: para compositionRectangle topLeft
- 											+ (0@(d+para lineGrid)).
- 		self on: (c copyFrom: cb stringIndex to: c size).
- 		readLimit:= position:= collection size.
- 		^ self endEntry].
- 	para display!

Item was removed:
- ----- Method: Transcripter>>initInFrame: (in category 'initialization') -----
- initInFrame: rect
- 	Smalltalk at: #Paragraph ifPresent: [:classParagraph | "MVC"
- 		frame := rect insetBy: 2.  "Leave room for border"
- 		para := classParagraph withText: self contents asText
- 					style: TextStyle default
- 					compositionRectangle: ((frame insetBy: 4) withHeight: 9999)
- 					clippingRectangle: frame
- 					foreColor: self black backColor: self white]!

Item was removed:
- ----- Method: Transcripter>>readEvalPrint (in category 'command line') -----
- readEvalPrint
- 	| line okToRevert |
- 	okToRevert := true.
- 	[#('quit' 'exit' 'done' ) includes: (line := self request: '>')]
- 		whileFalse:
- 		[line = 'revert'
- 		ifTrue: [okToRevert
- 			ifTrue: [RecentMessages default revertMostRecent.
- 					self cr; show: 'reverted: ' , RecentMessages default mostRecent.
- 					okToRevert := false]
- 			ifFalse: [self cr; show: 'Only one level of revert currently supported']]
- 		ifFalse: [self cr; show: ([Compiler evaluate: line] ifError: [:err :ex | err])]]!

Item was removed:
- ----- Method: Transcripter>>request: (in category 'command line') -----
- request: prompt
- 	| startPos char contents | 
- 	self cr; show: prompt.
- 	startPos := position.
- 	[[Sensor keyboardPressed] whileFalse.
- 	(char := Sensor keyboard) = Character cr]
- 		whileFalse:
- 		[char = Character backspace
- 			ifTrue: [readLimit := position := (position - 1 max: startPos)]
- 			ifFalse: [self nextPut: char].
- 		self endEntry].
- 	contents := self contents.
- 	^ contents copyFrom: startPos + 1 to: contents size!

Item was removed:
- ----- Method: Transcripter>>show: (in category 'accessing') -----
- show: anObject
- 	self nextPutAll: anObject asString; endEntry!

Item was removed:
- ----- Method: Transcripter>>white (in category 'private') -----
- white
- 	Display depth = 1 ifTrue: [^ Bitmap with: 0 "Works without color support"].
- 	^ Color white!



More information about the Squeak-dev mailing list