Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-kb.346.mcz==================== Summary ====================
Name: Morphic-kb.346
Author: kb
Time: 15 February 2010, 11:16:07.628 am
UUID: 988c7f95-7651-4d40-858a-c270d37fb038
Ancestors: Morphic-dtl.345
- Added a preference to control the window reusing behaviour. It's disabled by default.
=============== Diff against Morphic-dtl.345 ===============
Item was added:
+ ----- Method: SystemWindow class>>reuseWindows (in category 'preferences') -----
+ reuseWindows
+
+ <preference: 'Reuse Windows'
+ category: 'browsing'
+ description: 'When enabled, before opening a new window check if there is any open window like it, and if there is, reuse it.'
+ type: #Boolean>
+ ^ReuseWindows ifNil: [ false ]
+ !
Item was changed:
----- Method: SystemWindow>>anyOpenWindowLikeMe (in category 'open/close') -----
anyOpenWindowLikeMe
+
+ self class reuseWindows ifFalse: [ ^Array empty ].
^ SystemWindow
windowsIn: World
satisfying:
[ : each |
each model class = self model class
and: [ (each model respondsTo: #representsSameBrowseeAs:)
+ and: [ each model representsSameBrowseeAs: self model ] ] ]
+ !
- and: [ each model representsSameBrowseeAs: self model ] ] ]!
Item was changed:
MorphicModel subclass: #SystemWindow
instanceVariableNames: 'labelString stripes label closeBox collapseBox activeOnlyOnTop paneMorphs paneRects collapsedFrame fullFrame isCollapsed menuBox mustNotClose labelWidgetAllowance updatablePanes allowReframeHandles labelArea expandBox'
+ classVariableNames: 'CloseBoxImage CollapseBoxImage ExpandBoxImage MenuBoxImage ReuseWindows TopWindow'
- classVariableNames: 'CloseBoxImage CollapseBoxImage ExpandBoxImage MenuBoxImage TopWindow'
poolDictionaries: ''
category: 'Morphic-Windows'!
!SystemWindow commentStamp: '<historical>' prior: 0!
SystemWindow is the Morphic equivalent of StandardSystemView -- a labelled container for rectangular views, with iconic facilities for close, collapse/expand, and resizing.
The attribute onlyActiveOnTop, if set to true (and any call to activate will set this), determines that only the top member of a collection of such windows on the screen shall be active. To be not active means that a mouse click in any region will only result in bringing the window to the top and then making it active.!
Item was added:
+ ----- Method: SystemWindow class>>reuseWindows: (in category 'preferences') -----
+ reuseWindows: aBoolean
+
+ ReuseWindows := aBoolean!