[squeak-dev] The Trunk: ToolBuilder-Morphic-mt.135.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Apr 19 07:05:26 UTC 2015
Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.135.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-mt.135
Author: mt
Time: 19 April 2015, 9:05:20.374 am
UUID: 7bb11f70-871b-dd49-8d3e-f37f242ccef3
Ancestors: ToolBuilder-Morphic-mt.134
New interface for managing scrollbar visibility used.
=============== Diff against ToolBuilder-Morphic-mt.134 ===============
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableList: (in category 'widgets required') -----
buildPluggableList: aSpec
| widget listClass getIndex setIndex |
aSpec getSelected ifNil:[
listClass := self listClass.
getIndex := aSpec getIndex.
setIndex := aSpec setIndex.
] ifNotNil:[
listClass := self listByItemClass.
getIndex := aSpec getSelected.
setIndex := aSpec setSelected.
].
widget := listClass on: aSpec model
list: aSpec list
selected: getIndex
changeSelected: setIndex
menu: aSpec menu
keystroke: aSpec keyPress.
self register: widget id: aSpec name.
+
+ "Override default scroll bar policies if needed. Widget will use preference values otherwise."
+ aSpec hScrollBarPolicy ifNotNil: [:policy |
+ policy caseOf: {
+ [#always] -> [widget alwaysShowHScrollBar].
+ [#never] -> [widget hideHScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]. } ].
+ aSpec vScrollBarPolicy ifNotNil: [:policy |
+ policy caseOf: {
+ [#always] -> [widget alwaysShowVScrollBar].
+ [#never] -> [widget hideVScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]. } ].
+
widget getListElementSelector: aSpec listItem.
widget getListSizeSelector: aSpec listSize.
widget getIconSelector: aSpec icon.
widget getHelpSelector: aSpec help.
widget doubleClickSelector: aSpec doubleClick.
+
widget dragItemSelector: aSpec dragItem.
widget dropItemSelector: aSpec dropItem.
widget wantsDropSelector: aSpec dropAccept.
+
widget autoDeselect: aSpec autoDeselect.
widget keystrokePreviewSelector: aSpec keystrokePreview.
+
+ widget
+ borderWidth: 1;
+ borderColor: Color lightGray;
+ color: (aSpec color
+ ifNil: [Color white]
+ ifNotNil: [aSpec color]).
+
- aSpec color isNil
- ifTrue: [widget
- borderWidth: 1;
- borderColor: Color lightGray;
- color: Color white]
- ifFalse: [widget color: aSpec color].
self setFrame: aSpec frame in: widget.
parent ifNotNil:[self add: widget to: parent].
panes ifNotNil:[
aSpec list ifNotNil:[panes add: aSpec list].
].
^widget!
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableScrollPane: (in category 'widgets optional') -----
buildPluggableScrollPane: spec
| widget |
widget := self scrollPaneClass new.
widget model: spec model.
self register: widget id: spec name.
spec children
ifNotNil: [:obj |
"Create panel morph to scroll it."
widget morph: (self pluggablePanelSpec new
children: obj;
layout: spec layout;
frame: (0 at 0 corner: 1 at 1);
buildWith: self).
spec layout ~~ #proportional ifTrue: [
"Fix #spaceFill resizing because it does not make sense in scroll pane."
widget morph
hResizing: #shrinkWrap;
vResizing: #shrinkWrap.
widget morph submorphsDo: [:m |
m
extent: 100 at 100;
flag: #refactor; "mt: Restore orginial properties?"
hResizing: #rigid;
vResizing: #rigid]
]]
ifNil: [spec morph
ifNotNil: [:m | widget morph: m]
ifNil: [widget morphClass: spec morphClass]].
self setFrame: spec frame in: widget.
parent ifNotNil: [self add: widget to: parent].
widget borderWidth: spec borderWidth.
spec hScrollBarPolicy caseOf: {
+ [#always] -> [widget alwaysShowHScrollBar].
+ [#never] -> [widget hideHScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]}.
- [#always] -> [widget alwaysShowHScrollBar: true].
- [#never] -> [widget hideHScrollBarIndefinitely: true].
- [#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded: false]}.
spec vScrollBarPolicy caseOf: {
+ [#always] -> [widget alwaysShowVScrollBar].
+ [#never] -> [widget hideVScrollBarIndefinitely].
+ [#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]}.
- [#always] -> [widget alwaysShowVScrollBar: true].
- [#never] -> [widget hideVScrollBarIndefinitely: true].
- [#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded: false]}.
^ widget!
Item was changed:
----- Method: MorphicToolBuilder>>buildPluggableText: (in category 'widgets required') -----
buildPluggableText: aSpec
| widget |
widget := self textPaneClass new.
aSpec stylerClass ifNotNil: [:c | widget styler: (c new view: widget)].
widget
on: aSpec model
text: aSpec getText
accept: aSpec setText
readSelection: aSpec selection
menu: aSpec menu.
aSpec font ifNotNil: [:f | widget font: f].
widget editTextSelector: aSpec editText.
widget wantsFrameAdornments: aSpec indicateUnacceptedChanges.
widget askBeforeDiscardingEdits: aSpec askBeforeDiscardingEdits.
widget font: Preferences standardCodeFont.
widget textMorph isAutoFit ifTrue: [
+ widget hideHScrollBarIndefinitely ].
- widget hideHScrollBarIndefinitely: true.].
self register: widget id: aSpec name.
widget getColorSelector: aSpec color.
self buildHelpFor: widget spec: aSpec.
self setFrame: aSpec frame in: widget.
parent ifNotNil:[self add: widget to: parent].
widget borderColor: Color lightGray.
widget color: Color white.
^widget!
More information about the Squeak-dev
mailing list
|