The Trunk: Morphic-mt.1526.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-mt.1526.mcz

commits-2
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.
  !