Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1526.mcz ==================== Summary ==================== Name: Morphic-mt.1526 Author: mt Time: 20 September 2019, 7:32:57.883764 pm UUID: bc706b68-7e7e-dc44-a2a7-07af99cbb7f8 Ancestors: Morphic-mt.1525 Cleans up methods for scroll-range calculation in scroll panes. =============== Diff against Morphic-mt.1525 =============== Item was removed: - ----- Method: PluggableListMorph>>hExtraScrollRange (in category 'scrolling') ----- - hExtraScrollRange - "Return the amount of extra blank space to include to the right of the scroll content." - ^5 - ! Item was changed: ----- Method: PluggableListMorph>>hUnadjustedScrollRange (in category 'scroll cache') ----- hUnadjustedScrollRange + "Override because our lazy list approximates the width for performance reasons." - "Return the entire scrolling range." self resetHScrollRangeIfNecessary. ^hScrollRangeCache second ! Item was removed: - ----- Method: PluggableListMorph>>vUnadjustedScrollRange (in category 'scrolling') ----- - vUnadjustedScrollRange - "Return the height extent of the receiver's submorphs." - (scroller submorphs size > 0) ifFalse:[ ^0 ]. - ^(scroller submorphs last fullBounds bottom) - ! Item was changed: ----- Method: ScrollPane>>hUnadjustedScrollRange (in category 'geometry ranges') ----- hUnadjustedScrollRange "Return the width extent of the receiver's submorphs." + ^ scroller localSubmorphBounds width! - | submorphBounds | - submorphBounds := scroller localSubmorphBounds ifNil: [^ 0]. - ^ submorphBounds right - ! Item was changed: ----- Method: ScrollPane>>vUnadjustedScrollRange (in category 'geometry ranges') ----- vUnadjustedScrollRange "Return the height extent of the receiver's submorphs." + + ^ scroller localSubmorphBounds height! - | submorphBounds | - submorphBounds := scroller localSubmorphBounds ifNil: [^ 0]. - ^ submorphBounds bottom - ! Item was removed: - ----- Method: SimpleHierarchicalListMorph>>hExtraScrollRange (in category 'scrolling') ----- - hExtraScrollRange - "Return the amount of extra blank space to include below the bottom of the scroll content." - ^5 - ! Item was changed: ----- Method: SimpleHierarchicalListMorph>>hUnadjustedScrollRange (in category 'scrolling') ----- hUnadjustedScrollRange "Return the width of the widest item in the list" | max count | + self flag: #tofix. "mt: What about icons and columns? Do we ever show horizontal scroll bars for such tree views anyway? Maybe just return 0?" + - max := 0. count := 0. scroller submorphsDo: [ :each | | stringW right | stringW := each font widthOfStringOrText: each contents. right := (each toggleRectangle right + stringW + 10). max := max max: right. "NOTE: need to optimize this method by caching list item morph widths (can init that cache most efficiently in the #list: method before the item widths are reset to 9999). For now, just punt on really long lists" ((count := count + 1) > 200) ifTrue:[ ^max * 3]. ]. ^max ! Item was removed: - ----- Method: SimpleHierarchicalListMorph>>vUnadjustedScrollRange (in category 'scrolling') ----- - vUnadjustedScrollRange - "Return the width of the widest item in the list" - - (scroller submorphs size > 0) ifFalse:[ ^0 ]. - ^scroller submorphs last fullBounds bottom - ! Item was changed: ----- Method: TransformMorph>>layoutBounds (in category 'layout') ----- layoutBounds + "Ignore scaling and offset but move to local origin for my children as reference point. Note that we do not have to adapt #submorphBoundsForShrinkWrap because those are already in local coordinates. See #adjustLayoutBounds and #setLayoutBoundsFromLayout:" - "Ignore scaling and offset but move to local origin for my children as reference point. Note that we do not have to adapt #submorphBoundsForShrinkWrap because those are already in local coordinates." ^ super layoutBounds translateBy: self topLeft negated! Item was changed: ----- Method: TransformMorph>>localSubmorphBounds (in category 'geometry') ----- localSubmorphBounds "Answer, in my coordinate system, the bounds of all my submorphs (or nil if no submorphs). We will cache this value for performance. The value is invalidated upon recieving #layoutChanged." + ^ localBounds ifNil: [localBounds := super submorphBounds]! - localBounds ifNil:[ - self submorphsDo:[:m | - localBounds ifNil: [localBounds := m fullBounds] - ifNotNil: [localBounds := localBounds quickMerge: m fullBounds]]. - ]. - - ^ localBounds! Item was removed: - ----- Method: TransformMorph>>localVisibleSubmorphBounds (in category 'geometry') ----- - localVisibleSubmorphBounds - "Answer, in my coordinate system, the bounds of all my visible submorphs (or nil if no visible submorphs)" - | subBounds | - subBounds := nil. - self submorphsDo: [:m | - (m visible) ifTrue: [ - subBounds - ifNil: [subBounds := m fullBounds copy] - ifNotNil: [subBounds := subBounds quickMerge: m fullBounds]] - ]. - ^subBounds! Item was changed: ----- Method: TransformMorph>>submorphBounds (in category 'layout') ----- submorphBounds "Answer, in owner coordinates, the bounds of my visible submorphs, or my bounds" | box | + box := self localSubmorphBounds. - box := self localVisibleSubmorphBounds. ^(box ifNotNil: [ transform localBoundsToGlobal: box ] ifNil: [ self bounds ]) truncated. ! |
Free forum by Nabble | Edit this page |