Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.142.mcz ==================== Summary ==================== Name: ToolBuilder-Morphic-mt.142 Author: mt Time: 29 April 2015, 6:11:35.977 pm UUID: e9144d76-2044-f848-974b-c1dbfbed17b3 Ancestors: ToolBuilder-Morphic-mt.141 Fixed some minor layout issues when building panes or windows. =============== Diff against ToolBuilder-Morphic-mt.141 =============== Item was changed: ----- Method: MorphicToolBuilder>>add:to: (in category 'private') ----- add: aMorph to: aParent + + aMorph layoutFrame + ifNotNil: [aParent addMorph: aMorph fullFrame: aMorph layoutFrame] + ifNil: [aParent addMorphBack: aMorph].! - aParent addMorphBack: aMorph. - aParent isSystemWindow ifTrue:[ - aParent addPaneMorph: aMorph. - ].! Item was changed: ----- Method: MorphicToolBuilder>>buildPluggablePanel: (in category 'widgets required') ----- buildPluggablePanel: aSpec + + | widget | - | widget children frame | 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]). + 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]. + - widget color: Color transparent. - children := aSpec children. - children isSymbol ifTrue:[ - widget getChildrenSelector: children. - widget update: children. - children := #(). - ]. - self buildAll: children in: widget. - self buildHelpFor: widget spec: aSpec. self setFrame: aSpec frame in: widget. - parent ifNotNil:[self add: widget to: parent]. self setLayout: aSpec layout in: widget. + self setLayoutHintsFor: widget spec: aSpec. + + parent ifNotNil:[self add: widget to: parent]. + - widget layoutInset: 0. widget borderWidth: 0. + self buildHelpFor: widget spec: aSpec. - widget submorphsDo:[:sm| - (frame := sm layoutFrame) ifNotNil:[ - (frame rightFraction = 0 or:[frame rightFraction = 1]) - ifFalse:[frame rightOffset:1]. - (frame bottomFraction = 0 or:[frame bottomFraction = 1]) - ifFalse:[frame bottomOffset: 1]]]. widget color: Color transparent. - self setLayoutHintsFor: widget spec: aSpec. + ^ widget! - ^widget! Item was changed: ----- Method: MorphicToolBuilder>>buildPluggableWindow: (in category 'widgets required') ----- buildPluggableWindow: aSpec + | widget | + - | widget children | 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]). + 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| - aSpec label ifNotNil: - [:label| 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). - self setLayoutHintsFor: widget spec: aSpec. + + ^ widget! - - widget setUpdatablePanesFrom: panes. - ^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@1. + widget layoutInset: 1@1." - widget cellInset: 1@1. - widget layoutInset: 1@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@1. + widget layoutInset: 1@1." - widget cellInset: 1@1. - widget layoutInset: 1@1. widget color: Color transparent. "and then some..." ^self]. ^self error: 'Unknown layout: ', layout.! |
Free forum by Nabble | Edit this page |