Eliot Miranda uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-eem.63.mcz==================== Summary ====================
Name: ToolBuilder-Morphic-eem.63
Author: eem
Time: 1 July 2010, 11:51:45.643 am
UUID: e29115f6-3f9e-4fa6-923e-f45307d86db6
Ancestors: ToolBuilder-Morphic-ar.62
ToolBuilder support for browser multi-windows.
3 of 4 (Morphic, ToolBuilder-Kernel, ToolBuilder-Morphic, Tools).
=============== Diff against ToolBuilder-Morphic-ar.62 ===============
Item was added:
+ ----- Method: MorphicToolBuilder>>windowClassFor: (in category 'widget classes') -----
+ windowClassFor: multiWindowStyle
+ ^multiWindowStyle
+ caseOf:
+ { [nil] -> [PluggableSystemWindow].
+ [#labelButton] -> [PluggableSystemWindowWithLabelButton] }
+ otherwise: [PluggableSystemWindowWithLabelButton]!
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableWindow: (in category 'pluggable widgets') -----
buildPluggableWindow: aSpec
+ | widget children |
- | widget children label |
aSpec layout == #proportional ifFalse:[
"This needs to be implemented - probably by adding a single pane and then the rest"
^self error: 'Not implemented'.
].
+ widget := (self windowClassFor: aSpec multiWindowStyle) new.
- widget := self windowClass new.
self register: widget id: aSpec name.
widget model: aSpec model.
+ aSpec label ifNotNil:
+ [:label|
- (label := aSpec label) ifNotNil:[
label isSymbol
ifTrue:[widget getLabelSelector: label]
ifFalse:[widget setLabel: label]].
+ aSpec multiWindowStyle notNil ifTrue:
+ [widget savedMultiWindowState: (SavedMultiWindowState on: aSpec model)].
children := aSpec children.
children isSymbol ifTrue:[
widget getChildrenSelector: children.
widget update: children.
children := #().
].
widget closeWindowSelector: aSpec closeAction.
panes := OrderedCollection new.
self buildAll: children in: widget.
self buildHelpFor: widget spec: aSpec.
widget bounds: (RealEstateAgent
initialFrameFor: widget
initialExtent: (aSpec extent ifNil:[widget initialExtent])
world: self currentWorld).
widget setUpdatablePanesFrom: panes.
^widget!