Marcel Taeumel uploaded a new version of FFI-Kernel to project FFI:
http://source.squeak.org/FFI/FFI-Kernel-mt.70.mcz
==================== Summary ====================
Name: FFI-Kernel-mt.70
Author: mt
Time: 19 May 2020, 4:18:35.480992 pm
UUID: 77eeead7-5f0d-6c4c-99c1-fc879d8c79e6
Ancestors: FFI-Kernel-mt.69
Print the type for external data in tools so one can quickly recognize 'char*' etc.
=============== Diff against FFI-Kernel-mt.69 ===============
Item was added:
+ ----- Method: ExternalData>>printOn: (in category 'printing') -----
+ printOn: stream
+
+ super printOn: stream.
+
+ stream
+ nextPut: $<;
+ print: type;
+ nextPut: $>.!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1659.mcz
==================== Summary ====================
Name: Morphic-mt.1659
Author: mt
Time: 19 May 2020, 2:32:16.407702 pm
UUID: a50918d1-5a41-774e-81c6-696146b0dd2c
Ancestors: Morphic-nice.1658
Like in the code browser, show class icons in object explorer for non-visual objects.
Depends on the browser's #showClassIcons preference as well as #visualExplorer. Routed through ObjectExplorerWrapper in case we decide to decouple those preferences for dependency concerns between Morphic <-> Tools package.
Maybe we should move ObjectExplorerWrapper into the Tools package.
=============== Diff against Morphic-nice.1658 ===============
Item was added:
+ ----- Method: ObjectExplorerWrapper class>>showClassIcons (in category 'preferences') -----
+ showClassIcons
+ ^ Browser showClassIcons!
Item was added:
+ ----- Method: ObjectExplorerWrapper class>>showClassIcons: (in category 'preferences') -----
+ showClassIcons: aBoolean
+ Browser showClassIcons: aBoolean.!
Item was changed:
----- Method: ObjectExplorerWrapper>>icon (in category 'accessing') -----
icon
"Answer a form to be used as icon"
^ Preferences visualExplorer
ifTrue: [([self object iconOrThumbnailOfSize: 12] on: Error do: [nil])
+ ifNil: [self class showClassIcons
+ ifTrue: [ToolIcons iconNamed: self object class toolIcon]
+ ifFalse: [self class showContentsInColumns
+ ifTrue: [ToolIcons iconNamed: #blank]
+ ifFalse: [nil]]]]
- ifNil: [self class showContentsInColumns
- ifTrue: [ToolIcons iconNamed: #blank]
- ifFalse: [nil]]]
ifFalse: [nil]!
Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-mt.433.mcz
==================== Summary ====================
Name: Graphics-mt.433
Author: mt
Time: 17 May 2020, 4:49:08.858947 pm
UUID: 7e70458e-14f3-ef46-a954-9c1368211056
Ancestors: Graphics-mt.432
Removes instance-side refs to the global Display because it can be quite surprising to call #replacedBy:do: expecting a #become: or similar.
=============== Diff against Graphics-mt.432 ===============
Item was changed:
Form subclass: #DisplayScreen
instanceVariableNames: 'clippingBox extraRegions'
+ classVariableNames: 'DeferringUpdates DisplayChangeSignature DisplayIsFullScreen'
- classVariableNames: 'DeferringUpdates DisplayChangeSignature DisplayIsFullScreen 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>>fullScreen (in category 'other') -----
- fullScreen "Display fullScreen"
-
- ScreenSave notNil ifTrue: [Display := ScreenSave].
- clippingBox := super boundingBox!
Item was removed:
- ----- Method: DisplayScreen>>replacedBy:do: (in category 'other') -----
- replacedBy: aForm do: aBlock
- "Permits normal display to draw on aForm instead of the display."
-
- ScreenSave := self.
- Display := aForm.
- aBlock value.
- Display := self.
- ScreenSave := nil.!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1159.mcz
==================== Summary ====================
Name: System-mt.1159
Author: mt
Time: 17 May 2020, 4:21:47.664702 pm
UUID: 295e0b7d-6603-ca4e-b7b7-9152cd3d4678
Ancestors: System-mt.1158
Adds way to locate all stores into global variables. Expands documentation a little bit.
(Note that I am not sure whether it is a good idea to have this duplication in #allStoresInto:from:. Try
SystemNavigation default
browseAllStoresInto: 'Display'
from: ProtoObject
Maybe that addition with SharedPool was once a now obsolete workaround?)
=============== Diff against System-mt.1158 ===============
Item was added:
+ ----- Method: SystemNavigation>>allStoresInto: (in category 'query') -----
+ allStoresInto: globalVarName
+ "Answer a collection of method references for all methods in the current environment that assign to the globalVarName. Also supports variables from shared pools."
+ "self new allStoresInto: 'ActiveWorld'."
+
+ | result |
+ result := OrderedCollection new.
+ self allClasses do: [:class |
+ (class theNonMetaClass whichMethodsStoreInto: globalVarName) do: [:method |
+ result add: method methodReference].
+ (class theMetaClass whichMethodsStoreInto: globalVarName) do: [:method |
+ result add: method methodReference]].
+ ^result!
Item was changed:
----- Method: SystemNavigation>>allStoresInto:from: (in category 'query') -----
+ allStoresInto: varName from: aClass
+ "Answer a collection of method references for all the aClass' methods or any methods of a subclass/superclass that assign to the varName. If aClass is a SharedPool, consider all classes in the current environment that refer to that pool."
- allStoresInto: varName from: aClass
- "Answer a sequence of MewthodReferences for all the receiver's methods
- or any methods of a subclass/superclass that assign to the instance variable name."
"self new allStoresInto: 'contents' from: Collection."
+ "self new allStoresInto: 'DayNames' from: ChronologyConstants."
+
| result roots |
result := OrderedCollection new.
(aClass theNonMetaClass inheritsFrom: SharedPool) ifTrue:
[roots := self allClasses select: [:class| class sharedPools includes: aClass theNonMetaClass].
roots do:
[:root|
root withAllSubclassesDo:
[:class|
(class whichMethodsStoreInto: varName),
(class class whichMethodsStoreInto: varName) do:
[:eachMethod|
result add: eachMethod methodReference]]]].
aClass withAllSubAndSuperclassesDo:
[ : class |
(class theNonMetaClass whichMethodsStoreInto: varName),
(class theMetaClass whichMethodsStoreInto: varName) do:
[ : eachMethod |
result add: eachMethod methodReference ] ].
^result!
Item was added:
+ ----- Method: SystemNavigation>>browseAllStoresInto: (in category 'browse') -----
+ browseAllStoresInto: globalVarName
+ "Create and schedule a Message Set browser for all the methods in the current environment that assign to the globalVarName. Also supports variables from shared pools."
+ "self new browseAllStoresInto: 'ActiveWorld'."
+
+ ^ self
+ browseMessageList: (self allStoresInto: globalVarName)
+ name: 'Stores into global ' , globalVarName
+ autoSelect: globalVarName!
Item was changed:
----- Method: SystemNavigation>>browseAllStoresInto:from: (in category 'browse') -----
browseAllStoresInto: varName from: aClass
+ "Create and schedule a Message Set browser for all the aClass' methods or any methods of a subclass/superclass that assign to the varName. If aClass is a SharedPool, consider all classes in the current environment that refer to that pool."
- "Create and schedule a Message Set browser for all the receiver's methods
- or any methods of a subclass/superclass that refer to the instance variable name."
"self new browseAllStoresInto: 'contents' from: Collection."
+ "self new browseAllStoresInto: 'DayNames' from: ChronologyConstants."
+
^ self
browseMessageList: (self allStoresInto: varName from: aClass)
name: 'Stores into ' , varName
autoSelect: varName!