Marcel Taeumel uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-mt.256.mcz
==================== Summary ====================
Name: ST80-mt.256
Author: mt
Time: 13 July 2020, 11:48:31.957623 am
UUID: 354bbbf1-f342-ca44-92c6-f5556433cecc
Ancestors: ST80-mt.255
Makes MVC lists, window titles, menus, and "dialogs" aware of demo/hi-dpi mode.
=============== Diff against ST80-mt.255 ===============
Item was changed:
Paragraph subclass: #ListParagraph
instanceVariableNames: ''
+ classVariableNames: ''
- classVariableNames: 'ListStyle'
poolDictionaries: ''
category: 'ST80-Support'!
!ListParagraph commentStamp: '<historical>' prior: 0!
I represent a special type of Paragraph that is used in the list panes of a browser. I avoid all the composition done by more general Paragraphs, because I know the structure of my Text.!
Item was removed:
- ----- Method: ListParagraph class>>initialize (in category 'initialization') -----
- initialize
- "ListParagraph initialize"
- | aFont |
- "Allow different line spacing for lists"
- aFont := Preferences standardListFont.
- ListStyle := TextStyle fontArray: { aFont }.
- ListStyle gridForFont: 1 withLead: 1!
Item was changed:
----- Method: ListParagraph class>>standardListStyle (in category 'style') -----
standardListStyle
+
+ ^ (TextStyle fontArray: { Preferences standardListFont })
+ gridForFont: 1 withLead: 1;
+ yourself!
- ^ ListStyle!
Item was changed:
----- Method: ListParagraph class>>withArray:style: (in category 'instance creation') -----
withArray: anArray style: aTextStyleOrNil
"Convert an array of strings into a ListParagraph using the given TextStyle."
aTextStyleOrNil
+ ifNil: [^ (super withText: Text new style: self standardListStyle) withArray: anArray]
- ifNil: [^ (super withText: Text new style: ListStyle) withArray: anArray]
ifNotNil: [^ (super withText: Text new style: aTextStyleOrNil) withArray: anArray].
!
Item was changed:
----- Method: MVCProject>>jumpToProject (in category 'utilities') -----
jumpToProject
"Present a list of potential projects and enter the one selected.
We use mvcStartUpLeftFlush for possibly no longer valid historical reasons"
"Project current jumpToProject"
+ self jumpToSelection: (self buildJumpToMenu: CustomMenu new) startUp!
- self jumpToSelection: (self buildJumpToMenu: CustomMenu new) mvcStartUpLeftFlush!
Item was changed:
----- Method: PopUpMenu>>computeLabelParagraph (in category '*ST80-Support') -----
computeLabelParagraph
"Answer a Paragraph containing this menu's labels, one per line and centered."
+ ^ Paragraph withText: labelString asText style: self class standardMenuStyle!
- ^ Paragraph withText: labelString asText style: MenuStyle!
Item was removed:
- ----- Method: PopUpMenu>>mvcStartUpLeftFlush (in category '*ST80-Menus') -----
- mvcStartUpLeftFlush
- "Build and invoke this menu with no initial selection. By Jerry Archibald, 4/01.
- If in MVC, align menus items with the left margin.
- Answer the selection associated with the menu item chosen by the user or nil if none is chosen.
- The mechanism for getting left-flush appearance in mvc leaves a tiny possibility for misadventure: if the user, in mvc, puts up the jump-to-project menu, then hits cmd period while it is up, then puts up a second jump-to-project menu before dismissing or proceeding through the debugger, it's possible for mvc popup-menus thereafter to appear left-aligned rather than centered; this very unlikely condition can be cleared by evaluating 'PopUpMenu alignment: 2'"
-
- | saveAlignment |
- saveAlignment := PopUpMenu alignment.
- PopUpMenu leftFlush.
- ^[self startUp] ensure:
- [PopUpMenu alignment: saveAlignment]!
Item was changed:
View subclass: #StandardSystemView
instanceVariableNames: 'labelFrame labelText isLabelComplemented savedSubViews minimumSize maximumSize collapsedViewport expandedViewport labelBits windowBits bitsValid updatablePanes'
+ classVariableNames: 'CacheBits'
- classVariableNames: 'CacheBits LabelStyle'
poolDictionaries: ''
category: 'ST80-Support'!
!StandardSystemView commentStamp: '<historical>' prior: 0!
I represent a view that has a label above its top left corner. The text in the label identifies the kind of view. In addition to a label, I add control over the maximum and minimum size of the display box of my instance. My default controller is StandardSystemController. The elements of ScheduledControllers, the sole instance of ControlManager, are usually controllers for instances of me.!
Item was changed:
----- Method: StandardSystemView class>>initialize (in category 'class initialization') -----
initialize "StandardSystemView initialize"
+ self doCacheBits.!
- self doCacheBits.
- self setLabelStyle!
Item was removed:
- ----- Method: StandardSystemView class>>setLabelStyle (in category 'class initialization') -----
- setLabelStyle
- | aFont |
- "StandardSystemView setLabelStyle"
- aFont := Preferences windowTitleFont.
- LabelStyle := TextStyle fontArray: { aFont }.
- LabelStyle gridForFont: 1 withLead: 0!
Item was added:
+ ----- Method: StandardSystemView class>>standardLabelStyle (in category 'class initialization') -----
+ standardLabelStyle
+
+ ^ (TextStyle fontArray: { Preferences windowTitleFont })
+ gridForFont: 1 withLead: 0;
+ yourself!
Item was changed:
----- Method: StandardSystemView>>label: (in category 'label access') -----
label: aString
"Set aString to be the receiver's label."
labelText := Paragraph
withText: (Text fromString: ((aString == nil or: [aString isEmpty])
ifTrue: ['Untitled' copy]
ifFalse: [aString]))
+ style: self class standardLabelStyle.
- style: LabelStyle.
insetDisplayBox == nil ifTrue: [^ self]. "wait for further initialization"
self setLabelRegion!
Item was changed:
----- Method: StandardSystemView>>labelHeight (in category 'label access') -----
labelHeight
+ ^ ((self class standardLabelStyle fontAt: 1) height + 4) max: 20!
- ^ ((LabelStyle fontAt: 1) height + 4) max: 20!
A little while back - late May (or as we refer to it around here, very late March) - we had a thread about loading the Cryptography package etc. I'd swear that
(Installer ss) project: 'Cryptography'; install: 'ProCrypto-1-1-1'.
worked to load it. There are multiple emails referring to that; it's what rww sugested.
Today it fails because the two repositories that the read-in MCConfiguration has are set with a location of #nil (not nil, #nil). This is a *plain 5.3-19435 release image, freshly started* and just run the incantation in a workspace. I've tried several older configurations from the Cryptography repository in case I screwed up the mcm file, but no change. When I examine the mcm files they clearly don't have any repository names in there. I'm baffled how using that install command could have loaded anything.
Somewhere I must have done some prior required thing in those earlier tests and failed to note it, surely? Right now I'm just assuming this is 2020 having fun with me...
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Strange OpCodes: RCS: Read Card Sideways
A new version of Graphics was added to project The Inbox:
http://source.squeak.org/inbox/Graphics-kfr.434.mcz
==================== Summary ====================
Name: Graphics-kfr.434
Author: kfr
Time: 11 July 2020, 10:18:06.272175 am
UUID: 0e0125f6-3040-6247-9e5a-43bfd1896f84
Ancestors: Graphics-mt.433
I wanted to subclass Rectangle with a instance variable to carry some state, but these methodes indirected to Point>>corner: so it broke the override and returned a ordinary Rectangle instead of my fancy new subclass SuperRectangle
=============== Diff against Graphics-mt.433 ===============
Item was changed:
----- Method: Rectangle class>>encompassing: (in category 'instance creation') -----
encompassing: listOfPoints
"A number of callers of encompass: should use this method."
| topLeft bottomRight |
topLeft := bottomRight := nil.
listOfPoints do:
[:p | topLeft == nil
ifTrue: [topLeft := bottomRight := p]
ifFalse: [topLeft := topLeft min: p.
bottomRight := bottomRight max: p]].
+ ^self origin: topLeft corner: bottomRight!
- ^ topLeft corner: bottomRight!
Item was changed:
----- Method: Rectangle class>>merging: (in category 'instance creation') -----
merging: listOfRects
"A number of callers of merge: should use this method."
| minX minY maxX maxY |
listOfRects
do: [:r | minX
ifNil: [minX := r topLeft x. minY := r topLeft y.
maxX := r bottomRight x. maxY := r bottomRight y]
ifNotNil: [minX := minX min: r topLeft x. minY := minY min: r topLeft y.
maxX := maxX max: r bottomRight x. maxY := maxY max: r bottomRight y]].
+ ^ self origin:minX@minY corner: maxX@maxY!
- ^ minX@minY corner: maxX@maxY!
A new version of Graphics was added to project The Inbox:
http://source.squeak.org/inbox/Graphics-kfr.435.mcz
==================== Summary ====================
Name: Graphics-kfr.435
Author: kfr
Time: 11 July 2020, 4:59:11.970242 pm
UUID: 2ded852c-61bf-9c45-be09-6acb12a6b592
Ancestors: Graphics-kfr.434
I wanted to subclass Rectangle with a instance variable to carry some state, but these methodes indirected to Point>>corner: so it broke the override and returned a ordinary Rectangle instead of my fancy new subclass SuperRectangle
Updated to use #first to get the first element and #allButFirstDo: to iterate over the rest.
(Suggested by Levente Uzonyi)
=============== Diff against Graphics-kfr.434 ===============
Item was changed:
----- Method: Rectangle class>>encompassing: (in category 'instance creation') -----
encompassing: listOfPoints
"A number of callers of encompass: should use this method."
| topLeft bottomRight |
+ topLeft := bottomRight := listOfPoints first.
+ listOfPoints allButFirstDo:
+ [:p |topLeft := topLeft min: p.
+ bottomRight := bottomRight max: p].
- topLeft := bottomRight := nil.
- listOfPoints do:
- [:p | topLeft == nil
- ifTrue: [topLeft := bottomRight := p]
- ifFalse: [topLeft := topLeft min: p.
- bottomRight := bottomRight max: p]].
^self origin: topLeft corner: bottomRight!
Item was changed:
----- Method: Rectangle class>>merging: (in category 'instance creation') -----
merging: listOfRects
"A number of callers of merge: should use this method."
+ | bottomRight topLeft |
+ topLeft := listOfRects first topLeft.
+ bottomRight := listOfRects first bottomRight.
- | minX minY maxX maxY |
listOfRects
+ allButFirstDo: [:r | topLeft := topLeft min: r topLeft.
+ bottomRight := bottomRight max: r bottomRight].
+ ^self origin: topLeft corner: bottomRight.
+ !
- do: [:r | minX
- ifNil: [minX := r topLeft x. minY := r topLeft y.
- maxX := r bottomRight x. maxY := r bottomRight y]
- ifNotNil: [minX := minX min: r topLeft x. minY := minY min: r topLeft y.
- maxX := maxX max: r bottomRight x. maxY := maxY max: r bottomRight y]].
- ^ self origin:minX@minY corner: maxX@maxY!
> On 2020-07-10, at 2:40 AM, Trygve Reenskaug <trygver(a)ifi.uio.no> wrote:
>
> I once did a VW program that logged the messages received by the instances of a class.
That's an interesting attack on a slightly different problem than mine; but I like the idea. If I needed to log the entire message flow I'd probably use a subclass of the simulator these days. A fast machine can simulate with bearable interactive performance, which is amazing.
> On 2020-07-10, at 12:44 PM, Robert Withers via Squeak-dev <squeak-dev(a)lists.squeakfoundation.org> wrote:
>
> I would take this opportunity to point out the TraceMonitor [1] package in Cryptography.
That looks interesting, and since I am already loading the cryptography package it will be easy to just include. I'll see how it goes!
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Useful Latin Phrases:- Re vera, potas bene = Say, you sure are drinking a lot.
Greetings all,
Some time ago, I had the pleasure and privilege of being sponsored by the
Pharo Consortium to implement OSSubprocess. Because of that work, I quickly
realized that a new OS process framework created by Instantiations was
quite advanced and unlike anything I had seen before. If you are able, I
would highly recommend that you attend the technology preview of this
framework coming to VAST 2021:
Seth Berman will be presenting, registration here:
https://attendee.gotowebinar.com/register/7491754880594201356
We hope the community can attend and we look forward to your feedback and
questions during the event's Q&A session.
Best regards,
--
Mariano Martinez Peck
Email: marianopeck(a)gmail.com
Twitter: @MartinezPeck
LinkedIn: www.linkedin.com/in/mariano-martinez-peck
<https://www.linkedin.com/in/mariano-mart%C3%ADnez-peck/>
Blog: https://marianopeck.wordpress.com/
I just spotted a small bug in the code loaded up for SIXX. After loading it into a clean 5.3 image XMLDOMParser class>>#initialize & XMLDOMParser class>>#unload are reverted to old and out of date versions.
Installer code used -
Installer squeaksource
project: 'MetacelloRepository';
install: 'ConfigurationOfSIXX'.
(Smalltalk at: #ConfigurationOfSIXX) load.
Looks like the ConfigurationOfSIXX>>#version051: method is causing the load of
`
spec for: #squeak do:[
spec
package: 'XML-Parser' with: [
spec file: 'XML-Parser-ul.44';
repository: 'http://source.squeak.org/squeak52'
`
and that in turn re-loads old versions of XMLDOMParser class>>#initialize & XMLDOMParser class>>#unload - and they try to use the deprecated #registerFileReader: in FileList instead of FileServices.
I *think* it looks like ConfigurationOfSIXX>>#baseline06: requires the above section removing - but I am most definitely not any sort of expert in the ConfigurationOfXXXXXX stuff.
It appears that Masashi-san is still caring for this package since there was a commit in january of this year, so if you could please Do The Magic(™).
And since SmalltalkHub is now deprecated it could be a good idea to move the repository perhaps to squeaksource.com
tim
--
tim Rowledge; tim(a)rowledge.org; http://www.rowledge.org/tim
Fractured Idiom:- MAZEL TON - Lots of luck