[squeak-dev] The Trunk: Morphic-mt.853.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 10 13:08:26 UTC 2015


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.853.mcz

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

Name: Morphic-mt.853
Author: mt
Time: 10 April 2015, 3:07:39.015 pm
UUID: b6de4c8e-4df3-2946-9608-12ff51775de1
Ancestors: Morphic-mt.852

Some cosmetic fixes in sliders, scroll bars, and scroll panes.

=============== Diff against Morphic-mt.852 ===============

Item was added:
+ ----- Method: ScrollBar>>defaultBorderWidth (in category 'initialize') -----
+ defaultBorderWidth
+ 	^ 0!

Item was changed:
  ----- Method: ScrollBar>>updateSlider (in category 'initialize') -----
  updateSlider
  
+ 	| imagesNeedUpdate |
+ 	imagesNeedUpdate := upButton width ~= (self bounds isWide ifTrue: [self height] ifFalse: [self width]).
+ 	
  	self menuButton
  		visible: (self bounds isWide or: [self class scrollBarsWithoutMenuButton]) not;
  		bounds: self boundsForMenuButton.
  	upButton
  		visible: self class scrollBarsWithoutArrowButtons not;
  		bounds: self boundsForUpButton.
  	downButton
  		visible: self class scrollBarsWithoutArrowButtons not;
  		bounds: self boundsForDownButton.
  
  	super updateSlider.
  
  	pagingArea bounds: self totalSliderArea.
- 
  	self expandSlider.
+ 
+ 	imagesNeedUpdate ifTrue: [
+ 		self menuButton visible ifTrue: [self updateMenuButtonImage].
+ 		upButton visible ifTrue: [self updateUpButtonImage].
+ 		downButton visible ifTrue: [self updateDownButtonImage]].!
- 	!

Item was changed:
  ----- Method: ScrollBar>>updateSliderColor: (in category 'access') -----
  updateSliderColor: aColor
- 	| gradient |
  
+ 	| gradient |
- 	self borderWidth: 0.
- 
  	Preferences gradientScrollBars ifFalse: [
  		slider
  			borderColor: aColor muchDarker;
  			color: aColor.
  		pagingArea
  			borderColor: (aColor muchDarker alpha: pagingArea borderStyle color alpha);
  			color: (aColor darker alpha: 0.45).
  		^ self].
  
  	slider borderStyle: (BorderStyle width: 1 color: Color lightGray).	
  
  	"Fill the slider."
  	gradient := GradientFillStyle ramp: {
  			0 -> (Color gray: 0.95).
  			0.49 -> (Color gray: 0.9).
  			0.5 -> (Color gray: 0.87).
  			1 -> (Color gray: 0.93).
  	}.
  	gradient origin: slider topLeft.
  	gradient direction: (self bounds isWide
  		ifTrue:[0 at slider height]
  		ifFalse:[slider width at 0]).
  	slider fillStyle: gradient.
  	
  	"Fill the paging area."
  	gradient := GradientFillStyle ramp: {
  		0 -> (Color gray: 0.65).
  		0.6 -> (Color gray: 0.82).
  		1 -> (Color gray: 0.88).
  	}.
  	gradient origin: self topLeft.
  	gradient direction: (self bounds isWide
  		ifTrue:[0 at self height]
  		ifFalse:[self width at 0]).
  	pagingArea fillStyle: gradient.!

Item was changed:
  ----- Method: ScrollPane>>hResizeScrollBar (in category 'geometry') -----
  hResizeScrollBar
  
  	| topLeft h border offset |
  
  "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.
  	offset := (scrollBarOnLeft and: [self vIsScrollbarShowing])
  		ifTrue: [h]
  		ifFalse: [0].
  	
  	topLeft := retractableScrollBar
  				ifTrue: [bounds bottomLeft + (border + offset @ border negated)]
  				ifFalse: [bounds bottomLeft + (border + offset @ (h + border) negated)].
  
+ 	hScrollBar bounds: (topLeft + (border negated @ border) extent: self hScrollBarWidth@ h)
- 	hScrollBar bounds: (topLeft + (-1 at 1) extent: self hScrollBarWidth@ h)
  !

Item was changed:
  ----- Method: ScrollPane>>initializeScrollBars (in category 'initialization') -----
  initializeScrollBars
  "initialize the receiver's scrollBar"
  
  	(scrollBar := ScrollBar on: self getValue: nil setValue: #vScrollBarValue:)
+ 			menuSelector: #vScrollBarMenuButtonPressed:.
- 			menuSelector: #vScrollBarMenuButtonPressed:;
- 			borderWidth: 1; 
- 			borderColor: Color black.
  	(hScrollBar := ScrollBar on: self getValue: nil setValue: #hScrollBarValue:)
+ 			menuSelector: #hScrollBarMenuButtonPressed:.
- 			menuSelector: #hScrollBarMenuButtonPressed:;
- 			borderWidth: 1; 
- 			borderColor: Color black.
  
  	""
  	scroller := TransformMorph new color: Color transparent.
  	scroller offset: 0 @ 0.
  	self addMorph: scroller.
  	""
  	scrollBar initializeEmbedded: retractableScrollBar not.
  	hScrollBar initializeEmbedded: retractableScrollBar not.
  	retractableScrollBar ifFalse: 
  			[self 
  				addMorph: scrollBar;
  				addMorph: hScrollBar].
  
  	Preferences alwaysShowVScrollbar ifTrue:
  		[ self alwaysShowVScrollBar: true ].
  		
  	Preferences alwaysHideHScrollbar
  		ifTrue:[self hideHScrollBarIndefinitely: true ]
  		ifFalse:
  			[Preferences alwaysShowHScrollbar ifTrue:
  				[ self alwaysShowHScrollBar: true ]].
  !

Item was changed:
  ----- Method: ScrollPane>>innerBounds (in category 'geometry') -----
  innerBounds
  	| inner |
  	inner := super innerBounds.
  	retractableScrollBar | (submorphs includes: scrollBar) not ifFalse:[
  		inner := (scrollBarOnLeft
  					ifTrue: [scrollBar right @ inner top corner: inner bottomRight]
  					ifFalse: [inner topLeft corner: scrollBar left @ inner bottom])
  	].
  	(retractableScrollBar | self hIsScrollbarShowing not)
  		ifTrue: [^ inner]
+ 		ifFalse: [^ inner topLeft corner: (inner bottomRight - (0@(self scrollBarThickness - self borderWidth)))].
- 		ifFalse: [^ inner topLeft corner: (inner bottomRight - (0@(self scrollBarThickness - 1)))].
  !

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

Item was changed:
  ----- Method: Slider>>extent: (in category 'geometry') -----
  extent: newExtent
+ 
+ 	(bounds extent closeTo: newExtent) ifTrue: [^ self].
+ 
- 	newExtent = bounds extent ifTrue: [^ self].
  	bounds isWide
  		ifTrue: [super extent: (newExtent x max: self sliderThickness * 2) @ newExtent y]
  		ifFalse: [super extent: newExtent x @ (newExtent y max: self sliderThickness * 2)].
+ 
  	self updateSlider.!



More information about the Squeak-dev mailing list