Tim Felgentreff uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-tfel.356.mcz
==================== Summary ====================
Name: Graphics-tfel.356
Author: tfel
Time: 28 July 2016, 5:07:03.284263 pm
UUID: 563a9dfa-5c42-b44a-8122-dbb5f553f5c4
Ancestors: Graphics-tfel.355
add a preference for bigger cursors (from etoys) and fix fallback for CursorWithAlpha for systems that do not support 32-bit cursors with alpha
=============== Diff against Graphics-tfel.355 ===============
Item was changed:
Form subclass: #Cursor
instanceVariableNames: ''
+ classVariableNames: 'BlankCursor BottomLeftCursor BottomRightCursor CornerCursor CrossHairCursor CurrentCursor DownCursor MarkerCursor MenuCursor MoveCursor NormalCursor OriginCursor ReadCursor ResizeLeftCursor ResizeTopCursor ResizeTopLeftCursor ResizeTopRightCursor RightArrowCursor SquareCursor TargetCursor TopLeftCursor TopRightCursor UpCursor UseBiggerCursors WaitCursor WebLinkCursor WriteCursor XeqCursor'
- classVariableNames: 'BlankCursor BottomLeftCursor BottomRightCursor CornerCursor CrossHairCursor CurrentCursor DownCursor MarkerCursor MenuCursor MoveCursor NormalCursor OriginCursor ReadCursor ResizeLeftCursor ResizeTopCursor ResizeTopLeftCursor ResizeTopRightCursor RightArrowCursor SquareCursor TargetCursor TopLeftCursor TopRightCursor UpCursor WaitCursor WebLinkCursor WriteCursor XeqCursor'
poolDictionaries: ''
category: 'Graphics-Display Objects'!
!Cursor commentStamp: '<historical>' prior: 0!
I am a Form that is a possible appearance for a mouse cursor. My size is always 16x16, ever since the original implementation on the Alto.
There are many examples available in the "current cursor" category of class methods. For example, "Cursor normal" and "Cursor wait". For example:
Cursor wait show
!
Item was changed:
----- Method: Cursor class>>currentCursor: (in category 'current cursor') -----
currentCursor: aCursor
"Make the instance of cursor, aCursor, be the current cursor. Display it.
Create an error if the argument is not a Cursor."
(aCursor isKindOf: self)
ifTrue: [CurrentCursor := aCursor.
+ self useBiggerCursors
+ ifTrue: [[^ aCursor asBigCursor beCursor]
+ on: Error do: ["fall through"]].
aCursor beCursor]
ifFalse: [self error: 'The new cursor must be an instance of class Cursor']!
Item was added:
+ ----- Method: Cursor class>>useBiggerCursors (in category 'preferences') -----
+ useBiggerCursors
+
+ <preference: 'Use bigger mouse cursors'
+ category: 'mouse'
+ description: 'If true, mouse cursors are scaled up'
+ type: #Boolean>
+ ^ UseBiggerCursors ifNil: [false]!
Item was added:
+ ----- Method: Cursor class>>useBiggerCursors: (in category 'preferences') -----
+ useBiggerCursors: aBool
+
+ UseBiggerCursors := aBool!
Item was added:
+ ----- Method: Cursor>>asBigCursor (in category 'converting') -----
+ asBigCursor
+ "Big cursors are 32 bits deep (ARGB premultiplied)"
+ depth = 32
+ ifFalse: [^self enlargedBy: 2].
+ ^self!
Item was added:
+ ----- Method: Cursor>>enlargedBy: (in category 'converting') -----
+ enlargedBy: scale
+ "Big cursors are 32 bits deep (ARGB premultiplied)"
+ | big |
+ scale = 1 ifTrue: [^self].
+ big := CursorWithAlpha extent: self extent * scale depth: 32.
+ (self asCursorForm magnifyBy: scale) displayOn: big.
+ big offset: (self offset - 0.5 * scale min: 0@0 max: big extent negated) asIntegerPoint.
+ big fallback: self.
+ ^big!
Item was added:
+ ----- Method: CursorWithAlpha>>beCursor (in category 'primitives') -----
+ beCursor
+ <primitive: 101>
+ self fallback beCursor!
Item was removed:
- ----- Method: CursorWithAlpha>>primBeCursor (in category 'primitives') -----
- primBeCursor
- <primitive: 101>
- self fallback primBeCursor!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.845.mcz
==================== Summary ====================
Name: System-mt.845
Author: mt
Time: 28 July 2016, 3:40:31.153087 pm
UUID: 0a96d066-bdea-2845-abeb-2adcc248dd29
Ancestors: System-mt.844
Also add the generic hook to avoid display updates to all project kinds.
=============== Diff against System-mt.844 ===============
Item was added:
+ ----- Method: Project>>noDisplayDuring: (in category 'displaying') -----
+ noDisplayDuring: block
+ "Projects can provide means to bypass screen updates so that graphics code can be updated safely."!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1205.mcz
==================== Summary ====================
Name: Morphic-mt.1205
Author: mt
Time: 28 July 2016, 3:39:20.355087 pm
UUID: aa6ba894-8f4a-344e-8506-25c7e6418266
Ancestors: Morphic-mt.1204
Provide a simple interface to avoid display updates. For example, if you change a bunch of things in, say, the PluggableButtonMorph and you happen to have one visible on the screen, transcripts or system progress bars will trigger visual updates at a time when code is in an inconsistent state.
=============== Diff against Morphic-mt.1204 ===============
Item was added:
+ ----- Method: MorphicProject>>noDisplayDuring: (in category 'display') -----
+ noDisplayDuring: block
+
+ self world noDisplayDuring: block.!
Item was changed:
----- Method: PasteUpMorph>>displayWorld (in category 'world state') -----
displayWorld
+ (self valueOfProperty: #shouldDisplayWorld ifAbsent: [true])
+ ifTrue: [worldState displayWorld: self submorphs: submorphs].!
- worldState displayWorld: self submorphs: submorphs.!
Item was added:
+ ----- Method: PasteUpMorph>>noDisplayDuring: (in category 'world state') -----
+ noDisplayDuring: block
+ "Some morphs insist on updating the display like the system progress bar does. However, some code might be in an inconsistent state. For this, you can use this method to be safe."
+
+ self
+ setProperty: #shouldDisplayWorld
+ toValue: false.
+
+ block ensure: [self removeProperty: #shouldDisplayWorld].!
Item was changed:
----- Method: PasteUpMorph>>restoreMorphicDisplay (in category 'world state') -----
restoreMorphicDisplay
+ self removeProperty: #shouldDisplayWorld.
- ThumbnailMorph recursionReset.
+ ThumbnailMorph recursionReset.
+
self
extent: Display extent;
viewBox: Display boundingBox;
handsDo: [:h | h visible: true; showTemporaryCursor: nil];
restoreFlapsDisplay;
restoreMainDockingBarDisplay;
fullRepaintNeeded.
WorldState
addDeferredUIMessage: [Cursor normal show].
!
Marcel Taeumel uploaded a new version of SystemReporter to project The Trunk:
http://source.squeak.org/trunk/SystemReporter-mt.27.mcz
==================== Summary ====================
Name: SystemReporter-mt.27
Author: mt
Time: 28 July 2016, 11:32:24.083845 am
UUID: afe89257-ac5a-814d-9bc7-b9f991c3f9aa
Ancestors: SystemReporter-mt.26
The System Reporter tool is created via tool builder and hence should be a model like all other tools created via tool builder.
Note that Model does also have a more efficient management for dependents compared to Object.
=============== Diff against SystemReporter-mt.26 ===============
Item was changed:
+ Model subclass: #SystemReporter
- Object subclass: #SystemReporter
instanceVariableNames: 'categories categoriesSelected report tinyBenchmarksResult categoryList testRunner spaceAnalysisResult'
classVariableNames: ''
poolDictionaries: ''
category: 'SystemReporter'!
!SystemReporter commentStamp: 'laza 1/18/2011 12:04' prior: 0!
SystemReporter offers a window where information about the system is gathered. This can be easily copied to the clipboard and be attached to a bug report for better identification of the context the bug occured in.
To extend the SystemReporter:
- add a method
reportXYZ: aStream
to the reporting category
- insert a line
add: #XYZ method: #reportXYZ
to the initialize method
!