[squeak-dev] The Trunk: ToolBuilder-Morphic-mt.143.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun May 3 08:34:28 UTC 2015
Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.143.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-mt.143
Author: mt
Time: 3 May 2015, 10:34:22.75 am
UUID: 4ee679ac-c35a-7b4d-80eb-b138d4d84702
Ancestors: ToolBuilder-Morphic-mt.142
Honor custom resizing policies.
=============== Diff against ToolBuilder-Morphic-mt.142 ===============
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggablePanel: (in category 'widgets required') -----
buildPluggablePanel: aSpec
| widget |
widget := self panelClass new.
self register: widget id: aSpec name.
widget model: aSpec model.
"Set child dependent layout properties."
widget wantsPaneSplitters: (aSpec wantsResizeHandles ifNil: [false]).
+ self setLayoutHintsFor: widget spec: aSpec.
widget layoutInset: (aSpec padding ifNil: [0]).
widget cellInset: (aSpec spacing ifNil: [
widget wantsPaneSplitters
ifTrue: [ProportionalSplitterMorph gripThickness]
ifFalse: [2]]).
"Now create the children."
aSpec children isSymbol
ifTrue: [
widget getChildrenSelector: aSpec children.
widget update: aSpec children]
ifFalse: [
self buildAll: aSpec children in: widget].
self setFrame: aSpec frame in: widget.
self setLayout: aSpec layout in: widget.
- self setLayoutHintsFor: widget spec: aSpec.
parent ifNotNil:[self add: widget to: parent].
widget borderWidth: 0.
self buildHelpFor: widget spec: aSpec.
widget color: Color transparent.
^ widget!
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableWindow: (in category 'widgets required') -----
buildPluggableWindow: aSpec
| widget |
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) new.
self register: widget id: aSpec name.
widget model: aSpec model.
"Set child dependent layout properties."
widget wantsPaneSplitters: (aSpec wantsResizeHandles ifNil: [true]).
+ self setLayoutHintsFor: widget spec: aSpec.
widget layoutInset: (aSpec padding ifNil: [ProportionalSplitterMorph gripThickness]).
widget cellInset: (aSpec spacing ifNil: [ProportionalSplitterMorph gripThickness]).
"Now create the children."
panes := OrderedCollection new.
aSpec children isSymbol
ifTrue: [
widget getChildrenSelector: aSpec children.
widget update: aSpec children]
ifFalse: [
self buildAll: aSpec children in: widget].
widget setUpdatablePanesFrom: panes.
aSpec label ifNotNil: [:label|
label isSymbol
ifTrue:[widget getLabelSelector: label]
ifFalse:[widget setLabel: label]].
aSpec multiWindowStyle notNil ifTrue:
[widget savedMultiWindowState: (SavedMultiWindowState on: aSpec model)].
widget closeWindowSelector: aSpec closeAction.
self buildHelpFor: widget spec: aSpec.
widget bounds: (RealEstateAgent
initialFrameFor: widget
initialExtent: (aSpec extent ifNil:[widget initialExtent])
world: self currentWorld).
- self setLayoutHintsFor: widget spec: aSpec.
^ widget!
Item was changed:
----- Method: MorphicToolBuilder>>setLayout:in: (in category 'private') -----
setLayout: layout in: widget
layout == #proportional ifTrue:[
widget layoutPolicy: ProportionalLayout new.
^self].
layout == #horizontal ifTrue:[
widget layoutPolicy: TableLayout new.
widget listDirection: #leftToRight.
- widget submorphsDo:[:m| m hResizing: #spaceFill; vResizing: #spaceFill].
"widget cellInset: 1 at 1.
widget layoutInset: 1 at 1."
widget color: Color transparent.
"and then some..."
^self].
layout == #vertical ifTrue:[
widget layoutPolicy: TableLayout new.
widget listDirection: #topToBottom.
- widget submorphsDo:[:m| m hResizing: #spaceFill; vResizing: #spaceFill].
"widget cellInset: 1 at 1.
widget layoutInset: 1 at 1."
widget color: Color transparent.
"and then some..."
^self].
^self error: 'Unknown layout: ', layout.!
Item was changed:
----- Method: MorphicToolBuilder>>setLayoutHintsFor:spec: (in category 'private') -----
setLayoutHintsFor: widget spec: aSpec
aSpec minimumWidth >= 0
ifTrue: [widget minimumWidth: aSpec minimumWidth].
aSpec minimumHeight >= 0
+ ifTrue: [widget minimumHeight: aSpec minimumHeight].
+ aSpec padding
+ ifNotNil: [:p | widget layoutInset: p].
+ "aSpec margin
+ ifNotNil: [:m | widget layoutOutset: m]."
+
+ widget hResizing: (aSpec horizontalResizing ifNil: [#spaceFill]).
+ widget vResizing: (aSpec verticalResizing ifNil: [#spaceFill]).!
- ifTrue: [widget minimumHeight: aSpec minimumHeight].!
More information about the Squeak-dev
mailing list
|