Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.2075.mcz
==================== Summary ====================
Name: Morphic-mt.2075
Author: mt
Time: 26 January 2023, 10:20:57.216707 am
UUID: 6f66e69c-5e99-1d4b-abdf-1d4235feae4a
Ancestors: Morphic-mt.2074
Performance slightly improved for larger tree widgets.
=============== Diff against Morphic-mt.2074 ===============
Item was changed:
----- Method: IndentingListItemMorph>>backgroundColor: (in category 'accessing') -----
backgroundColor: aColor
+
+ backgroundColor = aColor ifTrue: [^ self].
backgroundColor := aColor.
self changed.!
Item was changed:
----- Method: IndentingListItemMorph>>fitContents (in category 'layout') -----
fitContents
+ self extent: container preferredSubmorphWidth @ self fontToUse lineGridForMorphs.!
- super fitContents.
- self width: container preferredSubmorphWidth.!
Item was changed:
----- Method: IndentingListItemMorph>>initWithColor:andFont: (in category 'initialization') -----
initWithColor: aColor andFont: aFont
"Configure the receiver with aColor and aFont as prescribed by the owning tree morph. Ignore a property if overridden from text label. See #initializeFromText:.
That is, a tree morph prescribes a certain appearance for all its items, which it will constantly create and destroy as users collapse and expand items in the tree. During construction of each item, any text label will be set *before* calling this method. So we can check #hasColorFromText and other flags that will help us decide whether to keep a property or not."
(self hasProperty: #hasColorFromText)
ifFalse: [self color: aColor].
(self hasProperty: #hasEmphasisFromText)
ifTrue: [
(self hasProperty: #hasFontFromText)
ifFalse: [self font: aFont "Keeps emphasis from text."]]
ifFalse: [
(self hasProperty: #hasFontFromText)
ifTrue: [self emphasis: aFont emphasis "Keeps font from text."]
+ ifFalse: [self setFont: aFont emphasis: nil]]
- ifFalse: [self font: aFont emphasis: aFont emphasis]]
!
Item was changed:
----- Method: IndentingListItemMorph>>initWithContents:prior:forList:indentLevel: (in category 'initialization') -----
initWithContents: anObject prior: priorMorph forList: hostList indentLevel: newLevel
container := hostList.
complexContents := anObject.
anObject addDependent: self.
self initWithContents: self getLabel font: Preferences standardListFont emphasis: nil.
indentLevel := 0.
isExpanded := false.
nextSibling := firstChild := nil.
priorMorph ifNotNil: [
priorMorph nextSibling: self.
].
indentLevel := newLevel.
+ icon := self getIcon ifNotNil: [:form | form scaleIconToDisplay].!
- icon := self getIcon ifNotNil: [:form | form scaleIconToDisplay].
- self extent: self minWidth @ self minHeight!
Item was changed:
----- Method: SimpleHierarchicalListMorph>>adjustSubmorphPositions (in category 'private') -----
adjustSubmorphPositions
| p |
p := 0@0.
scroller submorphsDo: [ :each | | h |
each visible ifTrue: [
h := each height.
each privateBounds: (p extent: self preferredSubmorphWidth@h).
p := p + (0@h) ]].
+ scroller layoutChanged.
self
clearColumnsCache;
changed;
layoutChanged;
setScrollDeltas.
!
Item was changed:
----- Method: StringMorph>>emphasis (in category 'accessing') -----
emphasis
"self assert: emphasis = self font emphasis"
+ ^ emphasis ifNil: [emphasis := font emphasis]!
- ^ emphasis!
Item was changed:
----- Method: StringMorph>>font:emphasis: (in category 'accessing - convenience') -----
font: aFontOrNil emphasis: emphasisCodeOrNil
"For convenience only. Try to use #font: and #emphasis: instead.
Changes font and/or emphasis. If both are given, the font's current emphasis will be discarded. If only the emphasis is given, the system's default font will be used. If only the font is given, the font's emphasis will be cached so that future calls to #font: will keep the emphasis."
self
assert: aFontOrNil notNil | emphasisCodeOrNil notNil
description: 'Either font or emphasis must be non-nil.'.
self
+ setFont: ((aFontOrNil isNil or: [emphasisCodeOrNil isNil] or: [aFontOrNil emphasis = emphasisCodeOrNil])
- setFont: ((aFontOrNil isNil or: [aFontOrNil emphasis = emphasisCodeOrNil] or: [emphasisCodeOrNil isNil])
ifTrue: [aFontOrNil]
ifFalse: [aFontOrNil emphasized: emphasisCodeOrNil])
+ emphasis: emphasisCodeOrNil.
- emphasis: (emphasisCodeOrNil ifNil: [aFontOrNil emphasis]).
"self assert: self font emphasis = self emphasis. --- mt: Does not always work because of how StrikeFont treats emphasis 0 in #emphasized:."!
Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.326.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-mt.326
Author: mt
Time: 26 January 2023, 10:19:17.584707 am
UUID: 1e892378-a503-ca42-9cb1-df68649c5f06
Ancestors: ToolBuilder-Morphic-mt.325
Performance slightly improved for larger tree widgets.
=============== Diff against ToolBuilder-Morphic-mt.325 ===============
Item was added:
+ ----- Method: PluggableTreeMorph>>hUnadjustedScrollRange (in category 'scrolling') -----
+ hUnadjustedScrollRange
+ "Optimized for performance. Assume horizontal scrollbar hidden."
+
+ ^ self preferredSubmorphWidth!
Hi team,
There seems to be some confusion about what the PackagePaneBrowser is; the left-most (top-level) list is supposed to be the class category categories (i.e., class category names split after $-, [Kernel, Collections, Graphics, ...], analogous to packages).
CT submitted a recent change that broke this, instead delegating to a PackageOrganizer; this is different and should be in a separate tool.
Here’s a fix.

stp
--------
Stephen Travis Pope Ojai, California, USA

http://HeavenEverywhere.comhttp://FASTLabInc.comhttps://vimeo.com/user19434036/videoshttp://heaveneverywhere.com/Reflections
All the hubbub finally got me excited enough to sit down and "meet"
ChatGPT. A brief sign up process abruptly gave way to my "First Contact."
As if it realized my presence before I realized its, there it was, the
Faceless White Canvas, staring at me, waiting, even daring me to talk about
*anything*. For me, it was a startlingly surreal experience that sent a
chill down my spine, as if talking to an alien for the first time.
I therefore decided to start with something concrete, Smalltalk. Something
versed enough in to help me *understand its understanding*, and whether it
can actually "learn".
90% of the conversation centers on this one question for the purpose of
exploring its limitations and self-contradictions.
[image: image.png]
I think it's safe to say we aren't in danger of losing our glamourous,
high-paying jobs as Smalltalk Superstars. It helps me understand what
ChatGPT is -- a *language* model, not a domain expert, and not a logical
inference engine. Certainly fun, but questionable utility.
Here's the full conversation.
https://sharegpt.com/c/hswnfmT
- Chris