Tobias Pape uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-topa.557.mcz
==================== Summary ====================
Name: Tools-topa.557
Author: topa
Time: 25 March 2015, 9:41:06.71 am
UUID: 154a18bc-667c-43e6-8971-fc65de2ea68a
Ancestors: Tools-eem.556
Browser: Fix message list icons for metaclasses
=============== Diff against Tools-eem.556 ===============
Item was changed:
----- Method: Browser>>messageIconAt: (in category 'message list') -----
messageIconAt: anIndex
self class showMessageIcons
ifFalse: [^ nil].
^ ToolIcons iconNamed: (ToolIcons
+ iconForClass: self selectedClassOrMetaClass
- iconForClass: self selectedClass
selector: (self messageList at: anIndex))!
Cross-posting to Pharo dev, Squeak dev, and Squeak VM lists...
Recently, we discovered on the Pharo dev list that the key combination used to fake wheel events - ctrl + arrowKey - may be a bit too simple. Apparently ctrl+horizontalArrowKey is a standard in-use combo in Linux and Windows, so adding horizontal wheel events broke some users' workflows. So I propose "ctrl + alt + shift + cmd + arrowKey".
The new combo is:
very unlikely to be typed
backward-compatible with existing Pharo and Squeak images, which only checks that either cmd or ctrl is pressed
frees up ctrl + arrow for our Linux/Windows friends
For Pharo, there is:
https://github.com/pharo-project/pharo-vm/pull/72
Fogbugz Issue 15209: "Mouse Wheel Events Keyboard Clash", with a slice all ready on the image side once the VM patch is integrated.
NB: I changed the combo in the VM for Mac OS and OSX. Are these the only two platforms that fake wheel events? I searched a bit but didn't see similar logic for other platforms...
David T. Lewis uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-dtl.101.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-dtl.101
Author: dtl
Time: 21 March 2015, 12:08:28.036 pm
UUID: bd975efe-ecc6-4634-94cf-a74a251da227
Ancestors: ToolBuilder-Morphic-dtl.100
Remove the toolBuilder instance variable from UIManager, replacing it with builderClass. The builderClass for a UIManager is determined by ToolBuilder class>>findDefault, possibly influenced by local project preferences. This will normally be established at first use following creation of a new MVC or Morphic project.
ToolBuilder instances are created as required, so that a UIManager does not reuse a single instance (which would accumulate garbage it its registries).
=============== Diff against ToolBuilder-Morphic-dtl.100 ===============
Item was removed:
- ----- Method: MorphicUIManager>>toolBuilder (in category 'builder') -----
- toolBuilder
- ^ MorphicToolBuilder new!
David T. Lewis uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-dtl.100.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-dtl.100
Author: dtl
Time: 20 March 2015, 4:01:04.899 pm
UUID: 10696acd-74dc-4047-898e-77fed9121b6e
Ancestors: ToolBuilder-Morphic-mt.99
Remove toolBuilder instance variable from UIManager.
A UIManager knows what kind of ToolBuilder it should use, so it does not need to hold on to a single instance. Create ToolBuilder instances as required, and do not reuse a ToolBuilder instance after it has done its job. This prevents confusing accumulation of registered widgets in a single ToolBuilder instance
=============== Diff against ToolBuilder-Morphic-mt.99 ===============
Item was removed:
- ----- Method: MorphicUIManager>>initialize (in category 'initialize-release') -----
- initialize
- toolBuilder := MorphicToolBuilder new!
Item was added:
+ ----- Method: MorphicUIManager>>toolBuilder (in category 'builder') -----
+ toolBuilder
+ ^ MorphicToolBuilder new!
David T. Lewis uploaded a new version of ToolBuilder-MVC to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-MVC-dtl.36.mcz
==================== Summary ====================
Name: ToolBuilder-MVC-dtl.36
Author: dtl
Time: 21 March 2015, 12:07:57.062 pm
UUID: 8a01e8ca-80e4-4edd-b166-bea8b1ac01d5
Ancestors: ToolBuilder-MVC-dtl.35
Remove the toolBuilder instance variable from UIManager, replacing it with builderClass. The builderClass for a UIManager is determined by ToolBuilder class>>findDefault, possibly influenced by local project preferences. This will normally be established at first use following creation of a new MVC or Morphic project.
ToolBuilder instances are created as required, so that a UIManager does not reuse a single instance (which would accumulate garbage it its registries).
=============== Diff against ToolBuilder-MVC-dtl.35 ===============
Item was removed:
- ----- Method: MVCUIManager>>toolBuilder (in category 'builder') -----
- toolBuilder
- ^ MVCToolBuilder new!
David T. Lewis uploaded a new version of ToolBuilder-MVC to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-MVC-dtl.35.mcz
==================== Summary ====================
Name: ToolBuilder-MVC-dtl.35
Author: dtl
Time: 20 March 2015, 4:00:36.889 pm
UUID: 97e7e8fa-358a-487e-a8ec-0c7c357b3d2f
Ancestors: ToolBuilder-MVC-fbs.34
Remove toolBuilder instance variable from UIManager.
A UIManager knows what kind of ToolBuilder it should use, so it does not need to hold on to a single instance. Create ToolBuilder instances as required, and do not reuse a ToolBuilder instance after it has done its job. This prevents confusing accumulation of registered widgets in a single ToolBuilder instance
=============== Diff against ToolBuilder-MVC-fbs.34 ===============
Item was removed:
- ----- Method: MVCUIManager>>initialize (in category 'initialize-release') -----
- initialize
- toolBuilder := MVCToolBuilder new!
Item was added:
+ ----- Method: MVCUIManager>>toolBuilder (in category 'builder') -----
+ toolBuilder
+ ^ MVCToolBuilder new!
David T. Lewis uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-dtl.68.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-dtl.68
Author: dtl
Time: 23 March 2015, 7:34:14.341 am
UUID: 686389b8-aad6-4324-b077-19a7673bf4c8
Ancestors: ToolBuilder-Kernel-dtl.67
Add UIManager>> builderClass.
Clean up unreferenced code.
=============== Diff against ToolBuilder-Kernel-dtl.67 ===============
Item was changed:
----- Method: ToolBuilder class>>default (in category 'accessing') -----
default
"Answer the default tool builder"
^ Project current uiManager toolBuilder
+ !
- ifNil: [self findDefault]!
Item was removed:
- ----- Method: ToolBuilder class>>default: (in category 'accessing') -----
- default: aToolBuilder
- "Set a new default tool builder"
- self deprecated: 'The default ToolBuilder is an attribute of the UIManager'
- !
Item was added:
+ ----- Method: UIManager>>builderClass: (in category 'accessing') -----
+ builderClass: aClass
+ builderClass := aClass!
David T. Lewis uploaded a new version of ToolBuilder-Kernel to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Kernel-dtl.67.mcz
==================== Summary ====================
Name: ToolBuilder-Kernel-dtl.67
Author: dtl
Time: 21 March 2015, 12:07:23.671 pm
UUID: d0d0c324-e12d-4424-a1dd-7b4a1cf1f946
Ancestors: ToolBuilder-Kernel-dtl.66
Remove the toolBuilder instance variable from UIManager, replacing it with builderClass. The builderClass for a UIManager is determined by ToolBuilder class>>findDefault, possibly influenced by local project preferences. This will normally be established at first use following creation of a new MVC or Morphic project.
ToolBuilder instances are created as required, so that a UIManager does not reuse a single instance (which would accumulate garbage it its registries).
=============== Diff against ToolBuilder-Kernel-dtl.66 ===============
Item was changed:
----- Method: ToolBuilder class>>findDefault (in category 'accessing') -----
findDefault
"Answer a default tool builder"
| builderClass |
"Note: The way the following is phrased ensures that you can always make 'more specific' builders merely by subclassing a tool builder and implementing a more specific way of reacting to #isActiveBuilder. For example, a BobsUIToolBuilder can subclass MorphicToolBuilder and (if enabled, say Preferences useBobsUITools) will be considered before the parent (generic MorphicToolBuilder)."
builderClass := self allSubclasses
detect:[:any| any isActiveBuilder and:[
any subclasses noneSatisfy:[:sub| sub isActiveBuilder]]] ifNone:[nil].
+ builderClass ifNotNil: [^builderClass ].
- builderClass ifNotNil: [^builderClass new].
^self error: 'ToolBuilder not found'!
Item was changed:
Object subclass: #UIManager
+ instanceVariableNames: 'builderClass'
- instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ToolBuilder-Kernel'!
!UIManager commentStamp: 'dtl 5/2/2010 16:06' prior: 0!
UIManager is a dispatcher for various user interface requests, such as menu and dialog interactions. An instance of UIManager is associated with each Project to implement the appropriate functions for Morphic, MVC or other user interfaces.!
Item was added:
+ ----- Method: UIManager>>builderClass (in category 'builder') -----
+ builderClass
+ "Answer the kind of tool builder to use, possibly influenced by project preferences"
+ ^ builderClass ifNil: [ builderClass := ToolBuilder findDefault ]!
Item was changed:
----- Method: UIManager>>toolBuilder (in category 'builder') -----
toolBuilder
+ ^ self builderClass new!
- "Answer a ToolBuilder for this kind of UIManager"
- ^ self subclassResponsibility!