[squeak-dev] The Trunk: Morphic-ar.187.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Sep 19 16:24:59 UTC 2009


Andreas Raab uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-ar.187.mcz

==================== Summary ====================

Name: Morphic-ar.187
Author: ar
Time: 19 September 2009, 9:22:52 am
UUID: 3cb18359-9681-354a-9932-d5fa916986b6
Ancestors: Morphic-ar.186

Add adjustments from hmm for merging scrollbars with the pane borders.

=============== Diff against Morphic-ar.186 ===============

Item was changed:
  ----- Method: ScrollBar>>buttonExtent (in category 'geometry') -----
  buttonExtent
- 	| size |
- 	size := Preferences scrollBarsNarrow
- 				ifTrue: [11]
- 				ifFalse: [15].
  	^ bounds isWide
+ 		ifTrue: [self innerBounds height asPoint]
+ 		ifFalse: [self innerBounds width asPoint]!
- 		ifTrue: [size @ self innerBounds height]
- 		ifFalse: [self innerBounds width @ size]!

Item was changed:
  ----- Method: ScrollPane>>hResizeScrollBar (in category 'geometry') -----
  hResizeScrollBar
  
  	| topLeft h border |
  
  "TEMPORARY: IF OLD SCROLLPANES LYING AROUND THAT DON'T HAVE A hScrollBar, INIT THEM"
  	hScrollBar ifNil: [ self hInitScrollBarTEMPORARY].
  	
  	(self valueOfProperty: #noHScrollBarPlease ifAbsent: [false]) ifTrue: [^self].
  	bounds ifNil: [ self fullBounds ].
  	
  	h := self scrollBarThickness.
  	border := borderWidth.
  	
  	topLeft := retractableScrollBar
  				ifTrue: [bounds bottomLeft + (border @ border negated)]
  				ifFalse: [bounds bottomLeft + (border @ (h + border) negated)].
  
+ 	hScrollBar bounds: (topLeft + (-1 at 1) extent: self hScrollBarWidth@ h)
- 	hScrollBar bounds: (topLeft extent: self hScrollBarWidth@ h)
  !

Item was changed:
  ----- Method: ScrollPane>>vScrollBarHeight (in category 'geometry') -----
  vScrollBarHeight
  	| h |
  
+ 	h := bounds height "- (2 * borderWidth)".
- 	h := bounds height - (2 * borderWidth).
  	(retractableScrollBar not and: [self hIsScrollbarNeeded]) 
  		ifTrue:[ h := h - self scrollBarThickness. ].
  	
  	^h
  !

Item was changed:
  ----- Method: ScrollPane>>hScrollBarWidth (in category 'geometry') -----
  hScrollBarWidth
  "Return the width of the horizontal scrollbar"
  
  
  	| w |
  	
+ 	w := bounds width "- (2 * borderWidth)".
- 	w := bounds width - (2 * borderWidth).
  	
  	(retractableScrollBar not and: [self vIsScrollbarNeeded])
  		ifTrue: [w := w - self scrollBarThickness ].
  		
  	^w 
  !

Item was changed:
  ----- Method: ScrollBar>>totalSliderArea (in category 'geometry') -----
  totalSliderArea
  	| upperBoundsButton |
  	upperBoundsButton := menuButton ifNil: [upButton].
  	bounds isWide
  		ifTrue: [
  			upButton right > upperBoundsButton right
  				ifTrue: [upperBoundsButton := upButton].
+ 			^upperBoundsButton bounds topRight - (1 at 0) corner: downButton bounds bottomLeft + (1 at 0)]
- 			^upperBoundsButton bounds topRight corner: downButton bounds bottomLeft]
  		ifFalse:[
  			upButton bottom > upperBoundsButton bottom
  				ifTrue: [upperBoundsButton := upButton].
+ 			^upperBoundsButton bounds bottomLeft - (0 at 1) corner: downButton bounds topRight + (0 at 1)].
- 			^upperBoundsButton bounds bottomLeft corner: downButton bounds topRight].
  !

Item was changed:
  ----- Method: ScrollPane>>vResizeScrollBar (in category 'geometry') -----
  vResizeScrollBar
  	| w topLeft borderHeight innerWidth |
  	w := self scrollBarThickness.
  	innerWidth := self flatColoredScrollBarLook 
  		ifTrue: 
  			[borderHeight := borderWidth.
  			0]
  		ifFalse: 
  			[borderHeight := 0.
  			 1].
  	topLeft := scrollBarOnLeft 
  				ifTrue: 
  					[retractableScrollBar 
  						ifTrue: [bounds topLeft - ((w - borderWidth) @ (0 - borderHeight))]
  						ifFalse: [bounds topLeft + ((borderWidth - innerWidth) @ borderHeight)]]
  				ifFalse: 
  					[retractableScrollBar 
  						ifTrue: [bounds topRight - (borderWidth @ (0 - borderHeight))]
  						ifFalse: 
  							[bounds topRight - ((w + borderWidth - innerWidth) @ (0 - borderHeight))]].
  			
  	scrollBar 
+ 		bounds: (topLeft + ((scrollBarOnLeft ifTrue: [-1] ifFalse: [1]) @-1) extent: w @ self vScrollBarHeight)
- 		bounds: (topLeft extent: w @ self vScrollBarHeight)
  	
  !

Item was changed:
  ----- Method: ScrollBar>>initializeUpButton (in category 'initialize') -----
  initializeUpButton
  "initialize the receiver's upButton"
  	upButton := self roundedScrollbarLook
  		ifTrue: [RectangleMorph
  						newBounds: (self innerBounds topLeft extent: self buttonExtent)]
  		ifFalse: [RectangleMorph
  						newBounds: ((menuButton
  								ifNil: [self innerBounds topLeft]
  								ifNotNil: [bounds isWide
+ 										ifTrue: [menuButton bounds topRight - (1 at 0)]
+ 										ifFalse: [menuButton bounds bottomLeft - (0 at 1)]])
- 										ifTrue: [menuButton bounds topRight]
- 										ifFalse: [menuButton bounds bottomLeft]])
  								extent: self buttonExtent)].
  	upButton color: self thumbColor.
  	upButton
  		on: #mouseDown
  		send: #scrollUpInit
  		to: self.
  	upButton
  		on: #mouseUp
  		send: #finishedScrolling
  		to: self.
  	self updateUpButtonImage.
  	self roundedScrollbarLook
  		ifTrue: [upButton color: Color veryLightGray.
  			upButton
  				borderStyle: (BorderStyle complexRaised width: 3)]
  		ifFalse: [upButton setBorderWidth: 1 borderColor: Color lightGray].
  	self addMorph: upButton!

Item was changed:
  ----- Method: ScrollBar>>initializePagingArea (in category 'initialize') -----
  initializePagingArea
  "initialize the receiver's pagingArea"
  	pagingArea := RectangleMorph
  				newBounds: self totalSliderArea
  				color: (Color
  						r: 0.6
  						g: 0.6
  						b: 0.8).
+ 	pagingArea setBorderWidth: 1 borderColor: Color lightGray.
- 	pagingArea borderWidth: 0.
  	pagingArea
  		on: #mouseDown
  		send: #scrollPageInit:
  		to: self.
  	pagingArea
  		on: #mouseUp
  		send: #finishedScrolling
  		to: self.
+ 	self addMorphBack: pagingArea.
- 	self addMorph: pagingArea.
  	self roundedScrollbarLook
  		ifTrue: [pagingArea
  				color: (Color gray: 0.9)]!




More information about the Squeak-dev mailing list