[squeak-dev] The Trunk: ToolBuilder-Morphic-mt.224.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 23 12:37:43 UTC 2019
Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.224.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-mt.224
Author: mt
Time: 23 January 2019, 1:37:44.247984 pm
UUID: ff9b83dd-1f7c-844f-b104-e1b6890461a0
Ancestors: ToolBuilder-Morphic-mt.223
For (pluggable) scroll panes through the tool builder, use optional scroll bars for both dimensions now. Ignore system-wide preferences because those usually address code-editing tools, not arbitrary programs.
Note that we might want to rename those preferences (#alwaysShowVScrollbar, #alwaysHideHScrollbar, etc.) and move their usages out of ScrollPane into the #buildWith: implementations of our tools (CodeHolder, Debugger, etc.). You need to know about the specific contents of those scroll panes to make such hide/show decisions.
=============== Diff against ToolBuilder-Morphic-mt.223 ===============
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableScrollPane: (in category 'widgets optional') -----
buildPluggableScrollPane: spec
| widget panel |
widget := self scrollPaneClass new.
widget model: spec model.
self register: widget id: spec name.
spec children
ifNotNil: [:obj |
"Create panel morph to scroll it."
panel := self pluggablePanelSpec new
model: spec model;
children: obj;
layout: spec layout;
horizontalResizing: (spec layout == #proportional ifTrue: [#rigid] ifFalse: [#shrinkWrap]);
verticalResizing: (spec layout == #proportional ifTrue: [#rigid] ifFalse: [#shrinkWrap]);
buildWith: self.
widget morph: panel.
]
ifNil: [spec morph
ifNotNil: [:m | widget morph: m]
ifNil: [widget morphClass: spec morphClass]].
self setFrame: spec frame in: widget.
self setLayoutHintsFor: widget spec: spec.
parent ifNotNil: [self add: widget to: parent].
spec borderWidth ifNotNil: [:w | widget borderWidth: w].
+ "Set scroll bar policies. By default, use scroll bars only when needed. Do not follow system-wide preferences here."
+ spec hScrollBarPolicy
+ caseOf: {
- "Override default scroll bar policies if needed. Widget will use preference values otherwise."
- spec hScrollBarPolicy ifNotNil: [:policy |
- policy caseOf: {
[#always] -> [widget alwaysShowHScrollBar].
[#never] -> [widget hideHScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded] }
+ otherwise: [widget showHScrollBarOnlyWhenNeeded].
+ spec vScrollBarPolicy
+ caseOf: {
- [#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]}].
- spec vScrollBarPolicy ifNotNil: [:policy |
- policy caseOf: {
[#always] -> [widget alwaysShowVScrollBar].
[#never] -> [widget hideVScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded] }
+ otherwise: [widget showVScrollBarOnlyWhenNeeded].
- [#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]}].
^ widget!
More information about the Squeak-dev
mailing list
|