[Pkg] The Trunk: ToolBuilder-Morphic-mt.175.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Jul 31 09:22:56 UTC 2016
Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.175.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-mt.175
Author: mt
Time: 31 July 2016, 11:22:46.85449 am
UUID: 2aeb6aa3-4498-394f-90dc-d8192d0e8ef9
Ancestors: ToolBuilder-Morphic-mt.174
*** Widget Refactorings and UI Themes (Part 6 of 11) ***
Some fixes and refactorings for lists, trees, text boxes --- including added support for UI theming.
=============== Diff against ToolBuilder-Morphic-mt.174 ===============
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 helpItem.
widget doubleClickSelector: aSpec doubleClick.
widget dragItemSelector: aSpec dragItem.
widget dropItemSelector: aSpec dropItem.
widget wantsDropSelector: aSpec dropAccept.
widget dragStartedSelector: aSpec dragStarted.
widget autoDeselect: aSpec autoDeselect.
widget keystrokePreviewSelector: aSpec keystrokePreview.
+ aSpec color ifNotNil: [:c | widget color: c].
- widget
- borderWidth: 1;
- borderColor: Color lightGray;
- color: (aSpec color
- ifNil: [Color white]
- ifNotNil: [aSpec color]).
-
self buildHelpFor: widget spec: aSpec.
self setFrame: aSpec frame in: widget.
self setLayoutHintsFor: widget spec: aSpec.
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 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].
- widget borderWidth: spec borderWidth.
"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]}].
spec vScrollBarPolicy ifNotNil: [:policy |
policy caseOf: {
[#always] -> [widget alwaysShowVScrollBar].
[#never] -> [widget hideVScrollBarIndefinitely].
[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]}].
^ 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 readOnly: aSpec readOnly.
widget editTextSelector: aSpec editText.
widget wantsFrameAdornments: aSpec indicateUnacceptedChanges.
widget askBeforeDiscardingEdits: aSpec askBeforeDiscardingEdits.
widget setProperty: #alwaysAccept toValue: aSpec askBeforeDiscardingEdits not.
aSpec softLineWrap ifNotNil: [:b | widget wrapFlag: b].
widget isAutoFit
ifTrue: [widget hideHScrollBarIndefinitely]
ifFalse: [widget showHScrollBarOnlyWhenNeeded].
self register: widget id: aSpec name.
widget getColorSelector: aSpec color.
self buildHelpFor: widget spec: aSpec.
self setFrame: aSpec frame in: widget.
self setLayoutHintsFor: widget spec: aSpec.
parent ifNotNil:[self add: widget to: parent].
- widget borderColor: Color lightGray.
- widget color: Color white.
^widget!
Item was changed:
----- Method: PluggableTextMorphPlus>>drawBalloonTextOn: (in category 'drawing') -----
drawBalloonTextOn: aCanvas
"Show balloon text in the text morph if it has no contents."
textMorph contents ifNotEmpty: [ ^ self ].
([ self balloonText ]
on: Error
do: [ : err | 'error in balloonText' ]) ifNotNil:
[ : text | aCanvas
drawString: text
in: (self innerBounds insetBy: (5 @ 2 corner: 0 @ 0))
+ font: (self userInterfaceTheme balloonTextFont ifNil: [TextStyle defaultFont])
+ color: (self userInterfaceTheme balloonTextColor ifNil: [Color gray: 0.7]) ]!
- font: textMorph textStyle defaultFont "I want italic here"
- color: (Color gray: 0.7) ]!
More information about the Packages
mailing list