The Trunk: ST80-dtl.166.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ST80-dtl.166.mcz

commits-2
David T. Lewis uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-dtl.166.mcz

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

Name: ST80-dtl.166
Author: dtl
Time: 14 December 2013, 4:35:38.884 pm
UUID: c3db7185-ae14-493e-8417-466efb875fcf
Ancestors: ST80-fbs.165

Make the emergency evaluator work in Morphic if MVC is not present, and vice versa.
Add two MVCProject methods to support Transcripter.
Move Transcriptor back to Collections.

=============== Diff against ST80-fbs.165 ===============

Item was added:
+ ----- Method: MVCProject>>displayTranscripter: (in category 'transcripter') -----
+ displayTranscripter: transcripter
+ "A transcripter is a minimal user interface to support an emergency evaluator.
+ An MVC project uses class Paragraph."
+ transcripter mvcDisplayText!

Item was added:
+ ----- Method: MVCProject>>initializeParagraphForTranscripter: (in category 'transcripter') -----
+ initializeParagraphForTranscripter: transcripter
+ "A transcripter is a minimal user interface to support an emergency evaluator.
+ An MVC project uses class Paragraph."
+ transcripter mvcInitializeParagraph: Paragraph!

Item was removed:
- ReadWriteStream subclass: #Transcripter
- instanceVariableNames: 'frame para'
- classVariableNames: ''
- poolDictionaries: ''
- category: 'ST80-REPL'!
-
- !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@0 corner: 320@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@0 extent: 100@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 added:
+ ----- Method: Transcripter>>mvcDisplayText (in category '*ST80') -----
+ mvcDisplayText
+ para setWithText: self contents asText
+ style: TextStyle default
+ compositionRectangle: ((frame insetBy: 4) withHeight: 9999)
+ clippingRectangle: frame
+ foreColor: self black backColor: self white.
+ para display!

Item was added:
+ ----- Method: Transcripter>>mvcInitializeParagraph: (in category '*ST80') -----
+ mvcInitializeParagraph: classParagraph
+ 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!