<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Hi Christoph --<div><br></div><div>The kind of re-use that the system browser does with its central text pane is kind of unfortunate, considering good usability. I am aware of that problem. Or what do you mean? I think that you already know the answer. We could lift up all those configuration options to the changed:/update: protocol. That's not happening at the moment. And it's not that important for the next Squeak release.</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 06.04.2022 18:44:34 schrieb christoph.thiede@student.hpi.uni-potsdam.de <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">
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>
<span style="color: #808080">---<br>
</span><span style="color: #808080"><i>Sent from </i></span><span style="color: #808080"><i><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><u><span style="color: #808080">Squeak Inbox Talk</span></u></a></i></span><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>
>
</div></blockquote></div>