Hi Marcel,<br>
<br>
is it intended that this also affects the comment/inheritance/reorganize modes of browsers? They are not really code ...<br>
<br>
Best,<br>
Christoph<br>
<br>
<font color="#808080">---<br>
</font><font color="#808080"><i>Sent from </i></font><font color="#808080"><i><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><u><font color="#808080">Squeak Inbox Talk</font></u></a></i></font><br>
<br>
On 2022-03-14T15:39:08+00:00, commits@source.squeak.org wrote:<br>
<br>
> Marcel Taeumel uploaded a new version of ToolBuilder-Morphic to project The Trunk:<br>
> http://source.squeak.org/trunk/ToolBuilder-Morphic-mt.308.mcz<br>
> <br>
> ==================== Summary ====================<br>
> <br>
> Name: ToolBuilder-Morphic-mt.308<br>
> Author: mt<br>
> Time: 14 March 2022, 4:39:06.716786 pm<br>
> UUID: bbb9bbdb-e30d-9243-8123-ea7b6a828e32<br>
> Ancestors: ToolBuilder-Morphic-mt.307<br>
> <br>
> Fixes regression in expand button in list-chooser dialogs.<br>
> <br>
> Allow longer text lines in pluggable dialogs (e.g., file-save dialog).<br>
> <br>
> Make #softLineWrapAtVisualWrapBorder preference functional. Still disabled by default. Only for source-code panes.<br>
> <br>
> Tweak #initialExtent in list-chooser dialogs.<br>
> <br>
> =============== Diff against ToolBuilder-Morphic-mt.307 ===============<br>
> <br>
> Item was changed:<br>
>   ----- Method: DirectoryChooserDialog>>initialExtent (in category 'toolbuilder') -----<br>
>   initialExtent<br>
>       "Since this is a single list it can be a bit narrower than a FileChooserDialog"<br>
>   <br>
> +     ^ super initialExtent * (0.6 @ 1)!<br>
> -     ^ super initialExtent * (0.5 @ 1)!<br>
> <br>
> Item was changed:<br>
>   ----- Method: ListChooser>>initialExtent (in category 'building') -----<br>
>   initialExtent<br>
>   <br>
> +     | listFont listStyle itemCount maxItemSize |<br>
> -     | listFont itemCount maxItemSize cellSize |<br>
>       listFont := Preferences standardListFont.<br>
> +     listStyle := listFont asNewTextStyle.<br>
>       itemCount := items size.<br>
> +     maxItemSize := (items take: 15) inject: 0 into: [:max :item | max max: item asString size].<br>
> -     maxItemSize := items inject: 0 into: [:max :item | max max: item asString size].<br>
> -     cellSize := (listFont widthOf: $m) @ listFont height.<br>
>   <br>
> +     ^ (listStyle compositionWidthFor: (maxItemSize min: 50 max: 35))<br>
> -     ^ ((maxItemSize min: 20 max: 10) * (listFont widthOf: $m))<br>
>           @ ((ToolBuilder default listHeightFor: (itemCount min: 15 max: 5))<br>
>               + self searchBarHeight<br>
>               + ToolBuilder default dialogSpacing)!<br>
> <br>
> Item was changed:<br>
>   ----- Method: ListMultipleChooser>>initialExtent (in category 'toolbuilder') -----<br>
>   initialExtent<br>
>   <br>
> +     | listFont listStyle itemCount maxItemSize |<br>
> -     | listFont itemCount maxItemSize |<br>
>       listFont := Preferences standardListFont.<br>
> +     listStyle := listFont asNewTextStyle.<br>
>       itemCount := labels size.<br>
> +     maxItemSize := (labels take: 15) inject: 0 into: [:max :item | max max: item asString size].<br>
> -     maxItemSize := labels inject: 0 into: [:max :item | max max: item asString size].<br>
>       <br>
> +     ^ (listStyle compositionWidthFor: (maxItemSize min: 50 max: 35))<br>
> -     ^ ((maxItemSize min: 20 max: 10) * (listFont widthOf: $m))<br>
>           @ (ToolBuilder default listHeightFor: (itemCount min: 15 max: 5))!<br>
> <br>
> Item was changed:<br>
>   ----- Method: MorphicToolBuilder>>buildPluggableCodePane: (in category 'widgets optional') -----<br>
>   buildPluggableCodePane: aSpec<br>
>   <br>
>       | widget |<br>
>       widget := super buildPluggableCodePane: aSpec.<br>
>       <br>
>       "Override code-specific default properties."<br>
>       widget wantsWrapBorder: PluggableTextMorph visualWrapBorder.<br>
> +     PluggableTextMorph softLineWrapAtVisualWrapBorder<br>
> +         ifTrue: [widget numCharactersPerLine: PluggableTextMorph visualWrapBorderLimit].<br>
>       widget wrapFlag: (aSpec softLineWrap ifNil: [PluggableTextMorph softLineWrap]).<br>
>       ^ widget!<br>
> <br>
> Item was changed:<br>
>   ----- Method: MorphicToolBuilder>>buildPluggableDialog: (in category 'widgets optional') -----<br>
>   buildPluggableDialog: aSpec<br>
>   <br>
>       | widget |<br>
>   <br>
>       widget := self dialogClass new.<br>
>       self register: widget id: aSpec name.<br>
>       <br>
>       widget model: aSpec model.<br>
>   <br>
>       "Set child dependent layout properties. The pane morph holds the special contents."<br>
>       widget paneMorph wantsPaneSplitters: (aSpec wantsResizeHandles ifNil: [true]).<br>
>       self setLayoutHintsFor: widget paneMorph spec: aSpec.<br>
>       widget paneMorph layoutInset: (aSpec padding ifNil: [self dialogPadding]).<br>
>       widget morphicLayerNumber: widget class dialogLayer.<br>
>   <br>
>       "Performance. Flip the #wantsPaneSplitters flag only after all children where added."<br>
>       widget paneMorph cellGap: 0.<br>
>       widget paneMorph wantsPaneSplitters: false; wantsGrips: false.<br>
>       widget paneMorph removePaneSplitters; removeGrips.<br>
>   <br>
>       "Now create the children."<br>
>       panes := OrderedCollection new.<br>
>       aSpec children isSymbol<br>
>           ifTrue: [<br>
>               widget getChildrenSelector: aSpec children.<br>
>               widget update: aSpec children]<br>
>           ifFalse: [<br>
>               self buildAll: aSpec children in: widget paneMorph].<br>
>   <br>
>       "Avoid strange behavior in #addMorph:fullFrame:"<br>
>       widget paneMorph cellGap: (aSpec spacing ifNil: [self dialogSpacing]).<br>
>       widget paneMorph wantsPaneSplitters: (aSpec wantsResizeHandles ifNil: [true]).<br>
>       widget paneMorph wantsPaneSplitters ifTrue: [<br>
>           widget paneMorph wantsGrips: true.    <br>
>           widget paneMorph addPaneSplitters; addCornerGrips"; addEdgeGrips".<br>
>           widget paneMorph grips do: [:ea | ea showHandle: true]].<br>
>   <br>
> +     "Increase the line width of the dialog's message to allow that longer messages accompany complex paneMorph contents."<br>
> +     widget messageMorph numCharactersPerLine: 65.<br>
> + <br>
>       "Now create the buttons."<br>
>       aSpec buttons isSymbol<br>
>           ifTrue: [<br>
>               widget getButtonsSelector: aSpec buttons.<br>
>               widget update: aSpec buttons]<br>
>           ifFalse: [<br>
>               self buildAll: aSpec buttons in: widget buttonRowMorph.<br>
>               widget updateButtonProperties].<br>
>   <br>
>       aSpec title ifNotNil: [:label |<br>
>           label isSymbol <br>
>               ifTrue:[widget getTitleSelector: label; update: label]<br>
>               ifFalse:[widget title: label]].<br>
>       aSpec message ifNotNil: [:label |<br>
>           label isSymbol <br>
>               ifTrue:[widget getMessageSelector: label; update: label]<br>
>               ifFalse:[widget message: label]].<br>
>       <br>
>       "Interaction behavior."<br>
>       aSpec autoCancel ifNotNil: [:b | widget autoCancel: b].<br>
>       aSpec exclusive ifNotNil: [:b | widget exclusive: b].<br>
>           <br>
>       widget closeDialogSelector: aSpec closeAction.<br>
>       self buildHelpFor: widget spec: aSpec. <br>
>   <br>
>       "Everything is shrink-wrapped around the pane morph."<br>
>       widget paneMorph extent: (aSpec extent ifNil:[widget initialExtent])<br>
>           + (widget paneMorph layoutInset * 2) asPoint.<br>
>   <br>
>       ^ widget!<br>
> <br>
> Item was changed:<br>
>   ----- Method: PluggableDialogWindow>>expandDialogPane (in category 'running') -----<br>
>   expandDialogPane<br>
>       "Expand the dialog pane to its preferred extent, including the pane's extra layout inset used for grips. Then try again to move to the dialog's preferred position."<br>
>   <br>
>       | extra |<br>
>       self flag: #preferredExtentWorkaround. "mt: Working with a widget's min, max, and preferred extent is still very awkward using proportional layouts and layout frames. For now, approximate extra spacing to accommodate ListChooser and ListMultipleChooser only."<br>
> +     extra := PluggableListMorph listMargins.<br>
> +     extra := extra topLeft + extra bottomRight.<br>
> -     extra := LazyListMorph new cellInset. extra := extra topLeft + extra bottomRight.<br>
>   <br>
>       self paneMorph extent:<br>
>           (self model preferredExtent<br>
>               + (self paneMorph layoutInset * 2) asPoint<br>
>               + extra).<br>
>       self moveToPreferredPosition.!<br>
> <br>