Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-mt.332.mcz
==================== Summary ====================
Name: Graphics-mt.332
Author: mt
Time: 7 May 2016, 9:48:30.374081 am
UUID: 7fc10c6a-d146-584d-8e94-7153042d37d9
Ancestors: Graphics-nice.331
Cherry-pick and adapt eToys' way to set the screen size programmatically via HostWindowPlugin.
=============== Diff against Graphics-nice.331 ===============
Item was changed:
Form subclass: #DisplayScreen
instanceVariableNames: 'clippingBox extraRegions'
+ classVariableNames: 'DeferringUpdates DisplayChangeSignature DisplayIsFullScreen ScreenSave'
- classVariableNames: 'DeferringUpdates DisplayChangeSignature ScreenSave'
poolDictionaries: ''
category: 'Graphics-Display Objects'!
!DisplayScreen commentStamp: '<historical>' prior: 0!
There is only one instance of me, Display. It is a global and is used to handle general user requests to deal with the whole display screen.
Although I offer no protocol, my name provides a way to distinguish this special instance from all other Forms. This is useful, for example, in dealing with saving and restoring the system.
To change the depth of your Display...
Display newDepth: 16.
Display newDepth: 8.
Display newDepth: 1.
Valid display depths are 1, 2, 4, 8, 16 and 32. It is suggested that you run with your monitors setting the same, for better speed and color fidelity. Note that this can add up to 4Mb for the Display form. Finally, note that newDepth: ends by executing a 'ControlManager restore' which currently terminates the active process, so nothing that follows in the doit will get executed.
Depths 1, 2, 4 and 8 bits go through a color map to put color on the screen, but 16 and 32-bit color use the pixel values directly for RGB color (5 and 8 bits per, respectivlely). The color choice an be observed by executing Color fromUser in whatever depth you are using.
!
Item was removed:
- ----- Method: DisplayScreen class>>depth:width:height:fullscreen: (in category 'display box access') -----
- depth: depthInteger width: widthInteger height: heightInteger fullscreen: aBoolean
- "Force Squeak's window (if there's one) into a new size and depth."
- "DisplayScreen depth: 8 width: 1024 height: 768 fullscreen: false"
-
- <primitive: 92>
- self primitiveFailed!
Item was added:
+ ----- Method: DisplayScreen class>>displayIsFullScreen (in category 'screen modes') -----
+ displayIsFullScreen
+
+ ^ DisplayIsFullScreen ifNil: [DisplayIsFullScreen := false]!
Item was added:
+ ----- Method: DisplayScreen class>>fullScreenOff (in category 'screen modes') -----
+ fullScreenOff
+
+ Display fullScreenMode: (DisplayIsFullScreen := false).
+ self checkForNewScreenSize.
+ !
Item was added:
+ ----- Method: DisplayScreen class>>fullScreenOn (in category 'screen modes') -----
+ fullScreenOn
+
+ Display fullScreenMode: (DisplayIsFullScreen := true).
+ self checkForNewScreenSize.!
Item was added:
+ ----- Method: DisplayScreen class>>hostWindowExtent: (in category 'host window access') -----
+ hostWindowExtent: aPoint
+
+ ^ self
+ primitiveWindow: self hostWindowIndex
+ width: aPoint x
+ height: aPoint y!
Item was added:
+ ----- Method: DisplayScreen class>>hostWindowIndex (in category 'host window access') -----
+ hostWindowIndex
+
+ ^ 1!
Item was added:
+ ----- Method: DisplayScreen class>>hostWindowTitle: (in category 'host window access') -----
+ hostWindowTitle: aString
+
+ ^ self
+ primitiveWindow: self hostWindowIndex
+ title: aString squeakToUtf8!
Item was added:
+ ----- Method: DisplayScreen class>>primitiveWindow:title: (in category 'host window access') -----
+ primitiveWindow: id title: titleString
+
+ <primitive: 'primitiveHostWindowTitle' module: 'HostWindowPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: DisplayScreen class>>primitiveWindow:width:height: (in category 'host window access') -----
+ primitiveWindow: id width: width height: height
+
+ <primitive: 'primitiveHostWindowSizeSet' module: 'HostWindowPlugin'>
+ ^self primitiveFailed!
Item was added:
+ ----- Method: DisplayScreen class>>setNewScreenSize: (in category 'display box access') -----
+ setNewScreenSize: aPoint
+ "Ensure that the Display is set to the given extent. Due to the behavior of host-window plugin, this may need two attempts because the plugin tends to account for host window shadows and title bars."
+
+ self hostWindowExtent: aPoint.
+ self checkForNewScreenSize.
+
+ Display extent < aPoint ifTrue: [
+ self hostWindowExtent: 2*aPoint - Display extent.
+ self checkForNewScreenSize].!
Item was added:
+ ----- Method: DisplayScreen class>>toggleFullScreen (in category 'screen modes') -----
+ toggleFullScreen
+ "Toggle between full screen and windowed mode."
+
+ self displayIsFullScreen
+ ifTrue: [self fullScreenOff]
+ ifFalse: [self fullScreenOn].!
The classic tests for things that should be interruptable are:
"[true] whileTrue"
"[[true] whileTrue] forkAt: Processor userSchedulingPriority + 1"
"Smalltalk createStackOverflow"
"[Smalltalk createStackOverflow] forkAt: Processor userSchedulingPriority + 1"
Trunk is failing the last two tests that check for stack overflow handling
(wait for out of memory -> VM crash).
Note: To reproduce, run with fixed stack size, otherwise you will just get
virtual memory page thrashing. On Linux:
$ squeak -memory 40M myTrunkImage.image
I think that this is an image side problem (not Spur/Cog VM) because I get
similar failures with a trunk level image running on interpreter VM (image
from http://build.squeak.org/job/FollowTrunkOnOldV3Image/).
It is not necessarily a new problem, because I have not tried this in quite
a while, and the computer that I am using today is much faster than the one
I would have used on previous tests. So it is possible that this is existing
behavior that gets worse as the hardware has gotten faster, or maybe there
is something that has regressed in the image.
Either way, low space interrupts are not working as expected in trunk.
Results might vary on different operating systems and computer hardware. Are
others seeing the same thing? How does it look on a Raspberry Pi for example?
Dave
Hi All,
recently the Cog VM on Mac OS X moved to Cocoa, the Objective-C API for
the platform, leaving behind the old Carbon C API. There is some backward
compatibility support but it is gradually being deprecated by Apple. One
victim is the MIDIPlugin which was written against a ComponentManager API
that, while Apple docs say is only deprecated, has actually disappeared.
Consequently the MIDIPlugin support (see
http://www.squeakvm.org/svn/squeak/branches/Cog/platforms/iOS/plugins/MIDIP…)
needs completely rewriting to use Cocoa APIs. I've recently changed the
build so that the MIDIPlgin is built externally, which will make it easier
to work on; one doesn't need to build the entire VM, only the plugin. I'm
looking for volunteers who
a) love music/know MIDI
b) are happy programming at the Objective-C level using command-line builds
and perhaps Xcode, but more immediately lldb for debugging.
If interested, reply to vm-dev and we can continue discussions there; there
are folks that can help with Mac OS support, but no one I know of that has
time to write this rather important plugin for multi-media. It would be a
great shame to lose MIDI on Mac.
______,,,^..^,,,______
AdvThanksance, Eliot
Nicolas Cellier uploaded a new version of Files to project The Trunk:
http://source.squeak.org/trunk/Files-nice.153.mcz
==================== Summary ====================
Name: Files-nice.153
Author: nice
Time: 5 May 2016, 12:12:26.738818 am
UUID: 29dccfc0-111c-46a9-bba5-5fd368cb6f0b
Ancestors: Files-eem.152
Deprecate HtmlFileStream since its superclass is deprecated.
Thus also deprecate StandardFileStream>>asHtml which has no sender in trunk.
=============== Diff against Files-eem.152 ===============
Item was removed:
- CrLfFileStream subclass: #HtmlFileStream
- instanceVariableNames: 'prevPreamble'
- classVariableNames: 'TabThing'
- poolDictionaries: ''
- category: 'Files-Kernel'!
-
- !HtmlFileStream commentStamp: 'mk 8/30/2005 15:10' prior: 0!
- The Class apes StandardFileStream, but converts the text to HTML before putting it out (primarily intended for printOut). It can be invoked with
-
- ((FileStream fileNamed: 'changes.html') asHtml) fileOutChanges
-
- Use usual FileStream methods to put out text converted to
- HTML fairly approximating that text (for best looks, use
- method:, methodHeader:, methodBody:, for code);
-
- verbatim: puts text out without conversion;
-
- command: put out HTML items, such as <br>, supplying the brackets.
-
- header: and trailer: put out an HTML wrapper (preamble and closing text)
-
- nextPut does the actual conversion, nextPutAll: defers characters to nextPut.
-
- The code is fairly dumb at present, doing a wooden straightforward conversion of the text without attempting to capture the style or fonts in which the original text was rendered. Tabs are handled awkwardly, using  , so that probably only leading strings are working right. Style sheets now permit us to do a much neater looking job if there is interest in improving the looks of things.
-
- Example:
- Perform
- HtmlFileStream example1
- and then navigate your browser to file 'example1.html'!
Item was removed:
- ----- Method: HtmlFileStream class>>example1 (in category 'examples') -----
- example1
- "This example shows how HtmlFileStream class can be used for generating HTML file."
-
- | htmlFileStream |
- htmlFileStream := HtmlFileStream newFrom: (FileStream fileNamed: 'example1.html').
- htmlFileStream
- header;
- command: 'H1';
- nextPutAll: 'Hello, world!!';
- command: '/H1';
- trailer;
- close.!
Item was removed:
- ----- Method: HtmlFileStream class>>initialize (in category 'class initialization') -----
- initialize "HtmlFileStream initialize"
- TabThing := ' '
-
- "I took Ted's suggestion to use  , which works far better for the HTML. Style sheets provide an alternative, possibly better, solution since they permit finer-grain control of the HTML formatting, and thus would permit capturing the style in which text was originally rendered. Internal tabbings would still get lost. 1/1/99 acg."!
Item was removed:
- ----- Method: HtmlFileStream class>>newFrom: (in category 'instance creation') -----
- newFrom: aFileStream
- "Answer an HtmlFileStream that is 'like' aFileStream. As a side-effect, the surviving fileStream answered by this method replaces aFileStream on the finalization registry. 1/6/99 acg"
-
- |inst|
- inst := super newFrom: aFileStream.
- StandardFileStream unregister: aFileStream.
- HtmlFileStream register: inst.
- inst detectLineEndConvention.
- ^inst
- !
Item was removed:
- ----- Method: HtmlFileStream>>command: (in category 'HTML') -----
- command: aString
- "Append HTML commands directly without translation. Caller should not include < or >. Note that font change info comes through here!! 4/5/96 tk"
-
- (aString includes: $<) ifTrue: [self error: 'Do not put < or > in arg'].
- "We do the wrapping with <> here!! Don't put it in aString."
- ^ self verbatim: '<', aString, '>'!
Item was removed:
- ----- Method: HtmlFileStream>>copyMethodChunkFrom: (in category 'fileIn/Out') -----
- copyMethodChunkFrom: aStream
- "Overridden to bolden the first line (presumably a method header)"
- | terminator code firstLine |
- terminator := $!!.
- aStream skipSeparators.
- code := aStream upTo: terminator.
- firstLine := code copyUpTo: Character cr.
- firstLine size = code size
- ifTrue: [self nextPutAll: code]
- ifFalse: [self command: 'b'; nextPutAll: firstLine; command: '/b'.
- self nextPutAll: (code copyFrom: firstLine size + 1 to: code size)].
- self nextPut: terminator.
- [aStream peekFor: terminator] whileTrue: "case of imbedded (doubled) terminators"
- [self nextPut: terminator;
- nextPutAll: (aStream upTo: terminator);
- nextPut: terminator]!
Item was removed:
- ----- Method: HtmlFileStream>>header (in category 'read, write, position') -----
- header
- "append the HTML header. Be sure to call trailer after you put out the data.
- 4/4/96 tk"
- | cr |
- cr := String with: Character cr.
- self command: 'HTML'; verbatim: cr.
- self command: 'HEAD'; verbatim: cr.
- self command: 'TITLE'.
- self nextPutAll: '"', self name, '"'.
- self command: '/TITLE'; verbatim: cr.
- self command: '/HEAD'; verbatim: cr.
- self command: 'BODY'; verbatim: cr.
- !
Item was removed:
- ----- Method: HtmlFileStream>>nextChunk (in category 'fileIn/Out') -----
- nextChunk
- "Answer the contents of the receiver, up to the next terminator character (!!). Imbedded terminators are doubled. Undo and strip out all Html stuff in the stream and convert the characters back. 4/12/96 tk"
- | out char did rest |
- self skipSeparators. "Absorb <...><...> also"
- out := WriteStream on: (String new: 500).
- [self atEnd] whileFalse: [
- self peek = $< ifTrue: [self unCommand]. "Absorb <...><...>"
- (char := self next) = $&
- ifTrue: [
- rest := self upTo: $;.
- did := out position.
- rest = 'lt' ifTrue: [out nextPut: $<].
- rest = 'gt' ifTrue: [out nextPut: $>].
- rest = 'amp' ifTrue: [out nextPut: $&].
- did = out position ifTrue: [
- self error: 'new HTML char encoding'.
- "Please add it to this code"]]
- ifFalse: [char = $!! "terminator"
- ifTrue: [
- self peek = $!! ifFalse: [^ out contents].
- out nextPut: self next] "pass on one $!!"
- ifFalse: [char asciiValue = 9
- ifTrue: [self next; next; next; next "TabThing"].
- out nextPut: char]]
- ].
- ^ out contents!
Item was removed:
- ----- Method: HtmlFileStream>>nextPut: (in category 'read, write, position') -----
- nextPut: char
- "Put a character on the file, but translate it first. 4/6/96 tk 1/1/98 acg"
- char = $< ifTrue: [^ super nextPutAll: '<'].
- char = $> ifTrue: [^ super nextPutAll: '>'].
- char = $& ifTrue: [^ super nextPutAll: '&'].
- char asciiValue = 13 "return"
- ifTrue: [self command: 'br'].
- char = $ "tab"
- ifTrue: [self verbatim: TabThing. ^super nextPut: char].
- ^ super nextPut: char!
Item was removed:
- ----- Method: HtmlFileStream>>nextPutAll: (in category 'read, write, position') -----
- nextPutAll: aString
- "Write the whole string, translating as we go. 4/6/96 tk"
- "Slow, but faster than using aString asHtml?"
-
- ^aString do: [:each | self nextPut: each].!
Item was removed:
- ----- Method: HtmlFileStream>>skipSeparators (in category 'fileIn/Out') -----
- skipSeparators
- "Bsides the normal spacers, also skip any <...>, html commands.
- 4/12/96 tk"
- | did |
- [did := self position.
- super skipSeparators.
- self unCommand. "Absorb <...><...>"
- did = self position] whileFalse. "until no change"
- !
Item was removed:
- ----- Method: HtmlFileStream>>trailer (in category 'read, write, position') -----
- trailer
- "append the HTML trailer. Call this just before file close.
- 4/4/96 tk"
- | cr |
- cr := String with: Character cr.
- self command: '/BODY'; verbatim: cr.
- self command: '/HTML'; verbatim: cr.
- !
Item was removed:
- ----- Method: HtmlFileStream>>verbatim: (in category 'read, write, position') -----
- verbatim: aString
- "Put out the string without HTML conversion. 1/1/99 acg"
-
- super nextPutAll: aString
-
- "'super verbatim:' in the 2.3beta draft didn't perform as expected -- the code was printed with conversion. In a sense, that wouldn't make sense either -- we don't want strictly verbatim printing, just printing without the HTML conversion (that is, skipping around just the nextPut: and nextPutAll: for just this Class). If there were intermediate conversions (say, CRLF!!), we would want those to happen as advertised -- perhaps we should use a differently named selector, perhaps something like nextPutWithoutHTMLConversion:, so that verbatim isn't overridden?"!
Item was removed:
- ----- Method: StandardFileStream>>asHtml (in category 'properties-setting') -----
- asHtml
- "Convert me in to an HtmlFileStream. 4/11/96 tk"
-
- ^ self as: HtmlFileStream
- !
Nicolas Cellier uploaded a new version of 51Deprecated to project The Trunk:
http://source.squeak.org/trunk/51Deprecated-nice.25.mcz
==================== Summary ====================
Name: 51Deprecated-nice.25
Author: nice
Time: 5 May 2016, 12:10:16.185159 am
UUID: 9be9d957-c07f-4465-8433-e527f464f910
Ancestors: 51Deprecated-mt.24
Deprecate HtmlFileStream since its superclass is deprecated.
Thus also deprecate StandardFileStream>>asHtml which has no sender in trunk.
=============== Diff against 51Deprecated-mt.24 ===============
Item was added:
+ CrLfFileStream subclass: #HtmlFileStream
+ instanceVariableNames: 'prevPreamble'
+ classVariableNames: 'TabThing'
+ poolDictionaries: ''
+ category: '51Deprecated-Files-Kernel'!
+
+ !HtmlFileStream commentStamp: 'mk 8/30/2005 15:10' prior: 0!
+ The Class apes StandardFileStream, but converts the text to HTML before putting it out (primarily intended for printOut). It can be invoked with
+
+ ((FileStream fileNamed: 'changes.html') asHtml) fileOutChanges
+
+ Use usual FileStream methods to put out text converted to
+ HTML fairly approximating that text (for best looks, use
+ method:, methodHeader:, methodBody:, for code);
+
+ verbatim: puts text out without conversion;
+
+ command: put out HTML items, such as <br>, supplying the brackets.
+
+ header: and trailer: put out an HTML wrapper (preamble and closing text)
+
+ nextPut does the actual conversion, nextPutAll: defers characters to nextPut.
+
+ The code is fairly dumb at present, doing a wooden straightforward conversion of the text without attempting to capture the style or fonts in which the original text was rendered. Tabs are handled awkwardly, using  , so that probably only leading strings are working right. Style sheets now permit us to do a much neater looking job if there is interest in improving the looks of things.
+
+ Example:
+ Perform
+ HtmlFileStream example1
+ and then navigate your browser to file 'example1.html'!
Item was added:
+ ----- Method: HtmlFileStream class>>example1 (in category 'examples') -----
+ example1
+ "This example shows how HtmlFileStream class can be used for generating HTML file."
+
+ | htmlFileStream |
+ htmlFileStream := HtmlFileStream newFrom: (FileStream fileNamed: 'example1.html').
+ htmlFileStream
+ header;
+ command: 'H1';
+ nextPutAll: 'Hello, world!!';
+ command: '/H1';
+ trailer;
+ close.!
Item was added:
+ ----- Method: HtmlFileStream class>>initialize (in category 'class initialization') -----
+ initialize "HtmlFileStream initialize"
+ TabThing := ' '
+
+ "I took Ted's suggestion to use  , which works far better for the HTML. Style sheets provide an alternative, possibly better, solution since they permit finer-grain control of the HTML formatting, and thus would permit capturing the style in which text was originally rendered. Internal tabbings would still get lost. 1/1/99 acg."!
Item was added:
+ ----- Method: HtmlFileStream class>>newFrom: (in category 'instance creation') -----
+ newFrom: aFileStream
+ "Answer an HtmlFileStream that is 'like' aFileStream. As a side-effect, the surviving fileStream answered by this method replaces aFileStream on the finalization registry. 1/6/99 acg"
+
+ |inst|
+ inst := super newFrom: aFileStream.
+ StandardFileStream unregister: aFileStream.
+ HtmlFileStream register: inst.
+ inst detectLineEndConvention.
+ ^inst
+ !
Item was added:
+ ----- Method: HtmlFileStream>>command: (in category 'HTML') -----
+ command: aString
+ "Append HTML commands directly without translation. Caller should not include < or >. Note that font change info comes through here!! 4/5/96 tk"
+
+ (aString includes: $<) ifTrue: [self error: 'Do not put < or > in arg'].
+ "We do the wrapping with <> here!! Don't put it in aString."
+ ^ self verbatim: '<', aString, '>'!
Item was added:
+ ----- Method: HtmlFileStream>>copyMethodChunkFrom: (in category 'fileIn/Out') -----
+ copyMethodChunkFrom: aStream
+ "Overridden to bolden the first line (presumably a method header)"
+ | terminator code firstLine |
+ terminator := $!!.
+ aStream skipSeparators.
+ code := aStream upTo: terminator.
+ firstLine := code copyUpTo: Character cr.
+ firstLine size = code size
+ ifTrue: [self nextPutAll: code]
+ ifFalse: [self command: 'b'; nextPutAll: firstLine; command: '/b'.
+ self nextPutAll: (code copyFrom: firstLine size + 1 to: code size)].
+ self nextPut: terminator.
+ [aStream peekFor: terminator] whileTrue: "case of imbedded (doubled) terminators"
+ [self nextPut: terminator;
+ nextPutAll: (aStream upTo: terminator);
+ nextPut: terminator]!
Item was added:
+ ----- Method: HtmlFileStream>>header (in category 'read, write, position') -----
+ header
+ "append the HTML header. Be sure to call trailer after you put out the data.
+ 4/4/96 tk"
+ | cr |
+ cr := String with: Character cr.
+ self command: 'HTML'; verbatim: cr.
+ self command: 'HEAD'; verbatim: cr.
+ self command: 'TITLE'.
+ self nextPutAll: '"', self name, '"'.
+ self command: '/TITLE'; verbatim: cr.
+ self command: '/HEAD'; verbatim: cr.
+ self command: 'BODY'; verbatim: cr.
+ !
Item was added:
+ ----- Method: HtmlFileStream>>nextChunk (in category 'fileIn/Out') -----
+ nextChunk
+ "Answer the contents of the receiver, up to the next terminator character (!!). Imbedded terminators are doubled. Undo and strip out all Html stuff in the stream and convert the characters back. 4/12/96 tk"
+ | out char did rest |
+ self skipSeparators. "Absorb <...><...> also"
+ out := WriteStream on: (String new: 500).
+ [self atEnd] whileFalse: [
+ self peek = $< ifTrue: [self unCommand]. "Absorb <...><...>"
+ (char := self next) = $&
+ ifTrue: [
+ rest := self upTo: $;.
+ did := out position.
+ rest = 'lt' ifTrue: [out nextPut: $<].
+ rest = 'gt' ifTrue: [out nextPut: $>].
+ rest = 'amp' ifTrue: [out nextPut: $&].
+ did = out position ifTrue: [
+ self error: 'new HTML char encoding'.
+ "Please add it to this code"]]
+ ifFalse: [char = $!! "terminator"
+ ifTrue: [
+ self peek = $!! ifFalse: [^ out contents].
+ out nextPut: self next] "pass on one $!!"
+ ifFalse: [char asciiValue = 9
+ ifTrue: [self next; next; next; next "TabThing"].
+ out nextPut: char]]
+ ].
+ ^ out contents!
Item was added:
+ ----- Method: HtmlFileStream>>nextPut: (in category 'read, write, position') -----
+ nextPut: char
+ "Put a character on the file, but translate it first. 4/6/96 tk 1/1/98 acg"
+ char = $< ifTrue: [^ super nextPutAll: '<'].
+ char = $> ifTrue: [^ super nextPutAll: '>'].
+ char = $& ifTrue: [^ super nextPutAll: '&'].
+ char asciiValue = 13 "return"
+ ifTrue: [self command: 'br'].
+ char = $ "tab"
+ ifTrue: [self verbatim: TabThing. ^super nextPut: char].
+ ^ super nextPut: char!
Item was added:
+ ----- Method: HtmlFileStream>>nextPutAll: (in category 'read, write, position') -----
+ nextPutAll: aString
+ "Write the whole string, translating as we go. 4/6/96 tk"
+ "Slow, but faster than using aString asHtml?"
+
+ ^aString do: [:each | self nextPut: each].!
Item was added:
+ ----- Method: HtmlFileStream>>skipSeparators (in category 'fileIn/Out') -----
+ skipSeparators
+ "Bsides the normal spacers, also skip any <...>, html commands.
+ 4/12/96 tk"
+ | did |
+ [did := self position.
+ super skipSeparators.
+ self unCommand. "Absorb <...><...>"
+ did = self position] whileFalse. "until no change"
+ !
Item was added:
+ ----- Method: HtmlFileStream>>trailer (in category 'read, write, position') -----
+ trailer
+ "append the HTML trailer. Call this just before file close.
+ 4/4/96 tk"
+ | cr |
+ cr := String with: Character cr.
+ self command: '/BODY'; verbatim: cr.
+ self command: '/HTML'; verbatim: cr.
+ !
Item was added:
+ ----- Method: HtmlFileStream>>verbatim: (in category 'read, write, position') -----
+ verbatim: aString
+ "Put out the string without HTML conversion. 1/1/99 acg"
+
+ super nextPutAll: aString
+
+ "'super verbatim:' in the 2.3beta draft didn't perform as expected -- the code was printed with conversion. In a sense, that wouldn't make sense either -- we don't want strictly verbatim printing, just printing without the HTML conversion (that is, skipping around just the nextPut: and nextPutAll: for just this Class). If there were intermediate conversions (say, CRLF!!), we would want those to happen as advertised -- perhaps we should use a differently named selector, perhaps something like nextPutWithoutHTMLConversion:, so that verbatim isn't overridden?"!
Item was added:
+ ----- Method: StandardFileStream>>asHtml (in category '*51Deprecated-Files-Kernel') -----
+ asHtml
+ "Convert me in to an HtmlFileStream. 4/11/96 tk"
+
+ ^ self as: HtmlFileStream
+ !
Nicolas Cellier uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-nice.1136.mcz
==================== Summary ====================
Name: Morphic-nice.1136
Author: nice
Time: 4 May 2016, 11:56:22.843845 pm
UUID: 15444d47-2ddb-4185-b3a8-e6c9e2e841c4
Ancestors: Morphic-nice.1135
Move #representsSameBrowseeAs: and #postAcceptBrowseFor: out of Morphic
The reason is to make other packages unloadable.
Indeed, if those messages are implemented in classes of other packages, it then make Morphic depends on these packages, and thus make these packages unloadable (until Morphic is unloaded).
=============== Diff against Morphic-nice.1135 ===============
Item was removed:
- ----- Method: HelpBrowser>>representsSameBrowseeAs: (in category '*morphic') -----
- representsSameBrowseeAs: anotherModel
- ^ self hasUnacceptedEdits not and:
- [ (toplevelTopics collect:
- [ : e | e title ]) =
- (anotherModel toplevelTopics collect:
- [ : e | e title ]) ]!
Item was removed:
- ----- Method: HierarchyBrowser>>postAcceptBrowseFor: (in category '*morphic') -----
- postAcceptBrowseFor: aHierarchyBrowser
- (aHierarchyBrowser selectedClass ~= self selectedClass or: [ aHierarchyBrowser selectedMessageName notNil ]) ifTrue: [ self selectMessageCategoryNamed: nil ].
- aHierarchyBrowser instanceMessagesIndicated
- ifTrue: [ self indicateInstanceMessages ]
- ifFalse: [ self indicateClassMessages ].
- self
- selectClass: aHierarchyBrowser selectedClass ;
- selectedMessageName: aHierarchyBrowser selectedMessageName ;
- showHomeCategory!
Item was removed:
- ----- Method: HierarchyBrowser>>representsSameBrowseeAs: (in category '*morphic') -----
- representsSameBrowseeAs: anotherModel
- ^ self hasUnacceptedEdits not
- and: [ classDisplayList size = anotherModel classList size
- and: [ classDisplayList includesAllOf: anotherModel classList ] ]!
Item was removed:
- ----- Method: Inspector>>representsSameBrowseeAs: (in category '*morphic') -----
- representsSameBrowseeAs: anotherInspector
- ^ self object == anotherInspector object!
Item was removed:
- ----- Method: MessageSet>>representsSameBrowseeAs: (in category '*morphic') -----
- representsSameBrowseeAs: anotherModel
- ^ self hasUnacceptedEdits not
- and: [ messageList = anotherModel messageList ]!
Item was removed:
- ----- Method: Model>>aboutToStyle: (in category '*morphic') -----
- aboutToStyle: aStyler
- "Default implementation for text styling. No changes in styler configuration but we are OK to style our contents."
-
- ^ true!
Item was removed:
- ----- Method: Model>>postAcceptBrowseFor: (in category '*morphic') -----
- postAcceptBrowseFor: anotherModel
- "If I am taking over browsing for anotherModel, sucblasses may override to, for example, position me to the object to be focused on."!
Item was removed:
- ----- Method: Model>>representsSameBrowseeAs: (in category '*morphic') -----
- representsSameBrowseeAs: anotherModel
- "Answer true if my browser can browse what anotherModel wants to browse."
- ^ false!
Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-nice.1018.mcz
==================== Summary ====================
Name: Kernel-nice.1018
Author: nice
Time: 4 May 2016, 11:50:22.289732 pm
UUID: 9c352422-6711-4a46-a864-86b07e0db599
Ancestors: Kernel-nice.1017
Move #representsSameBrowseeAs: and #postAcceptBrowseFor: out of Morphic
=============== Diff against Kernel-nice.1017 ===============
Item was changed:
----- Method: EventSensor class>>initialize (in category 'class initialization') -----
initialize
+ Smalltalk addToStartUpList: self before: ProcessorScheduler.
- Smalltalk addToStartUpList: self after: Cursor.
Smalltalk addToShutDownList: self.
self installKeyDecodeTable.
self installMouseDecodeTable.
self install.
!
Item was changed:
----- Method: Fraction>>floorLog: (in category 'mathematical functions') -----
floorLog: radix
"Unlike super, this version is exact when radix is integer"
| d n |
+ radix isInteger ifFalse: [^super floorLog: 10].
- radix isInteger ifFalse: [^super floorLog: radix].
n := numerator floorLog: radix.
d := denominator floorLog: radix.
^(numerator * (radix raisedTo: d))
< (denominator * (radix raisedTo: n))
ifTrue: [n - d - 1]
ifFalse: [n - d]!
Item was changed:
----- Method: Integer>>floorLog: (in category 'mathematical functions') -----
floorLog: radix
"Unlike super, this version is exact when radix is integer"
+ radix isInteger ifFalse: [^super floorLog: 10].
- radix isInteger ifFalse: [^super floorLog: radix].
self <= 0 ifTrue: [^DomainError signal: 'floorLog: is only defined for x > 0.0'].
^(self numberOfDigitsInBase: radix) - 1!
Item was added:
+ ----- Method: Model>>aboutToStyle: (in category 'morphic ui') -----
+ aboutToStyle: aStyler
+ "Default implementation for text styling. No changes in styler configuration but we are OK to style our contents."
+
+ ^ true!
Item was added:
+ ----- Method: Model>>postAcceptBrowseFor: (in category 'morphic ui') -----
+ postAcceptBrowseFor: anotherModel
+ "If I am taking over browsing for anotherModel, sucblasses may override to, for example, position me to the object to be focused on."!
Item was added:
+ ----- Method: Model>>representsSameBrowseeAs: (in category 'morphic ui') -----
+ representsSameBrowseeAs: anotherModel
+ "Answer true if my browser can browse what anotherModel wants to browse."
+ ^ false!