[Pkg] The Trunk: Morphic-mt.817.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Apr 3 16:38:37 UTC 2015


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

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

Name: Morphic-mt.817
Author: mt
Time: 3 April 2015, 6:38:01.265 pm
UUID: c2a1e4c5-1ee5-0445-956f-8951e2fbb8fa
Ancestors: Morphic-mt.816

Color handling in system windows cleaned-up and fixed. #adoptPaneColor: will now be sent to all panes on activate/passivate to give them a chance to also "look inactive".

=============== Diff against Morphic-mt.816 ===============

Item was changed:
  ----- Method: SystemWindow class>>labelled: (in category 'instance creation') -----
  labelled: labelString
+ 
+ 	^ self basicNew
+ 		initializeWithLabel: labelString;
+ 		yourself!
- 	^ (self basicNew setLabel: labelString) initialize!

Item was changed:
  ----- Method: SystemWindow>>activateWindow (in category 'top window') -----
  activateWindow
  	"Bring me to the front and make me able to respond to mouse and keyboard.
  	Was #activate (sw 5/18/2001 23:20)"
  
  	| oldTop outerMorph sketchEditor pal |
  	outerMorph := self topRendererOrSelf.
  	outerMorph owner ifNil: [^ self "avoid spurious activate when drop in trash"].
  	oldTop := TopWindow.
  	oldTop = self ifTrue: [^self].
  	TopWindow := self.
  	oldTop ifNotNil: [oldTop passivate].
  	outerMorph owner firstSubmorph == outerMorph
  		ifFalse: ["Bring me (with any flex) to the top if not already"
  				outerMorph owner addMorphFront: outerMorph].
  	self submorphsDo: [:m | m unlock].
  
  	label ifNotNil: [label color: Color black].
  
  	self undimWindowButtons.
+ 	labelArea ifNotNil: [labelArea submorphsDo: [:m | m unlock; show]].
+ 	self
+ 		setStripeColorsFrom: self paneColorToUse;
+ 		adoptPaneColor: self paneColorToUse.
+ 	
- 	labelArea ifNotNil:
- 		[labelArea submorphsDo: [:m | m unlock; show].
- 		self setStripeColorsFrom: self paneColorToUse].
  	self isCollapsed ifFalse:
  		[model modelWakeUpIn: self.
  		self positionSubmorphs.
  		labelArea ifNil: [self adjustBorderUponActivationWhenLabeless]].
  
  	(sketchEditor := self extantSketchEditor) ifNotNil:
  		[sketchEditor comeToFront.
  		(pal := self world findA: PaintBoxMorph) ifNotNil:
  			[pal comeToFront]].
+ 
+ 	self updatePaneColors.!
- !

Item was changed:
  ----- Method: SystemWindow>>defaultBorderColor (in category 'initialization') -----
  defaultBorderColor
  	"answer the default border color/fill style for the receiver"
+ 	^ self defaultColor muchDarker!
- 	^ #raised.!

Item was changed:
  ----- Method: SystemWindow>>defaultBorderWidth (in category 'initialization') -----
  defaultBorderWidth
  	"answer the default border width for the receiver"
+ 	^ 1!
- 	^ 2.!

Item was added:
+ ----- Method: SystemWindow>>defaultBounds (in category 'initialization') -----
+ defaultBounds
+ 
+ 	^ 0 at 0 corner: 300 at 200!

Item was changed:
  ----- Method: SystemWindow>>defaultColor (in category 'initialization') -----
  defaultColor
  	"answer the default color/fill style for the receiver"
+ 	^ Preferences uniformWindowColor!
- 	^ Color white.!

Item was changed:
+ ----- Method: SystemWindow>>existingPaneColor (in category 'colors handling') -----
- ----- Method: SystemWindow>>existingPaneColor (in category 'panes') -----
  existingPaneColor
  	"Answer the existing pane color for the window, obtaining it from the first paneMorph if any, and fall back on using the second stripe color if necessary."
  
  	| aColor |
  	aColor := self valueOfProperty: #paneColor.
  	aColor ifNil: [self setProperty: #paneColor toValue: (aColor := self paneColor)].
  	^aColor.!

Item was changed:
+ ----- Method: SystemWindow>>gradientWithColor: (in category 'colors handling') -----
- ----- Method: SystemWindow>>gradientWithColor: (in category 'initialization') -----
  gradientWithColor: aColor
  
  	| gradient |
  	gradient := GradientFillStyle ramp: {
  		0.0 -> Color white. 
  		0.2 -> (aColor mixed: 0.5 with: (Color gray: 0.9)) lighter. 
  		1.0 -> aColor.
  	}.
  	gradient origin: self topLeft.
  	gradient direction: 0 @ self labelHeight.
  	^gradient!

Item was changed:
  ----- Method: SystemWindow>>initialize (in category 'initialization') -----
  initialize
  	"Initialize a system window. Add label, stripes, etc., if desired"
+ 
  	super initialize.
+ 
+ 	self layoutPolicy: ProportionalLayout new.
+ 
+ 	self initializeLabelArea.				
+ 	self addCornerGrips.
+ 
+ 	Preferences menuAppearance3d ifTrue: [
+ 		self
+ 			addDropShadow;
+ 			shadowColor: (TranslucentColor r: 0.0 g: 0.0 b: 0.0 alpha: 0.333);
+ 			shadowOffset: 1 at 1].
+ 
  	allowReframeHandles := true.
- 	labelString ifNil: [labelString := 'Untitled Window'].
  	isCollapsed := false.
  	activeOnlyOnTop := true.
  	paneMorphs := Array new.
- 	borderColor := Color lightGray.
- 	borderWidth := 1.
- 	self color: Color veryVeryLightGray muchLighter.
- 	self layoutPolicy: ProportionalLayout new.
- 	
- 	self initializeLabelArea.
- 				
- 	self addCornerGrips.
- 
- 	self extent: 300 @ 200.
  	mustNotClose := false.
+ 	updatablePanes := Array new.!
- 	updatablePanes := Array new.
- 		
- 	Preferences menuAppearance3d
- 		ifTrue: [
- 			self
- 				addDropShadow;
- 				shadowColor: (TranslucentColor r: 0.0 g: 0.0 b: 0.0 alpha: 0.333);
- 				shadowOffset: 1 at 1.
- 		].
- 					!

Item was changed:
  ----- Method: SystemWindow>>initializeLabelArea (in category 'initialization') -----
  initializeLabelArea
  	"Initialize the label area (titlebar) for the window."
+ 	
+ 	labelString ifNil: [labelString := 'Untitled Window'].
  	label := StringMorph new contents: labelString;
  						 font: Preferences windowTitleFont emphasis: 0.
  			"Add collapse box so #labelHeight will work"
  			collapseBox := self createCollapseBox.
  			stripes := Array
  						with: (RectangleMorph newBounds: bounds)
  						with: (RectangleMorph newBounds: bounds).
  			"see extent:"
  			self addLabelArea.
  			self setLabelWidgetAllowance.
  			self addCloseBox.
  			self class moveMenuButtonRight 
  				ifTrue: [self addLabel. self addMenuControl]
  				ifFalse: [self addMenuControl. self addLabel].
  			self addExpandBox.
  			labelArea addMorphBack: collapseBox.
  			self setFramesForLabelArea.
  			Preferences noviceMode
  				ifTrue: [closeBox
  						ifNotNil: [closeBox setBalloonText: 'close window'].
  					menuBox
  						ifNotNil: [menuBox setBalloonText: 'window menu'].
  					collapseBox
  						ifNotNil: [collapseBox setBalloonText: 'collapse/expand window']].
  !

Item was added:
+ ----- Method: SystemWindow>>initializeWithLabel: (in category 'initialization') -----
+ initializeWithLabel: aString
+ 
+ 	labelString := aString.	
+ 	self initialize.!

Item was changed:
+ ----- Method: SystemWindow>>paneColor (in category 'colors handling') -----
- ----- Method: SystemWindow>>paneColor (in category 'colors') -----
  paneColor
  	| cc |
  	(cc := self valueOfProperty: #paneColor) ifNotNil: [^cc].
  	Display depth > 2 
  		ifTrue: 
  			[model ifNotNil: 
  					[model isInMemory 
  						ifTrue: 
  							[cc := Color colorFrom: model defaultBackgroundColor]].
  	cc ifNil: [cc := paneMorphs isEmptyOrNil ifFalse: [paneMorphs first color]]].
  	cc ifNil: [cc := self defaultBackgroundColor].
  	self paneColor: cc.
  	^cc!

Item was changed:
+ ----- Method: SystemWindow>>paneColor: (in category 'colors handling') -----
- ----- Method: SystemWindow>>paneColor: (in category 'panes') -----
  paneColor: aColor
  	self setProperty: #paneColor toValue: aColor.
  
  	self adoptPaneColor: aColor.!

Item was changed:
+ ----- Method: SystemWindow>>paneColorToUse (in category 'colors handling') -----
- ----- Method: SystemWindow>>paneColorToUse (in category 'panes') -----
  paneColorToUse
  	^ Display depth <= 2
  		ifTrue:
  			[Color white]
  		ifFalse:
  			[self paneColor]!

Item was changed:
  ----- Method: SystemWindow>>passivate (in category 'top window') -----
  passivate
  	"Make me unable to respond to mouse and keyboard"
  
  	label ifNotNil: [label color: Color darkGray].
+ 
+ 	(SystemWindow gradientWindow
+ 		ifTrue: [self paneColorToUse duller darker]
+ 		ifFalse: [self paneColorToUse darker]) in: [:c |
+ 			self
+ 				setStripeColorsFrom: c;
+ 				adoptPaneColor: c]. 
+ 
- 	self setStripeColorsFrom: self paneColorToUse.
  	model modelSleep.
  
  	self lockInactivePortions
  !

Item was changed:
+ ----- Method: SystemWindow>>raisedColor (in category 'colors handling') -----
- ----- Method: SystemWindow>>raisedColor (in category 'drawing') -----
  raisedColor
  	^self paneColor raisedColor!

Item was changed:
+ ----- Method: SystemWindow>>refreshWindowColor (in category 'colors handling') -----
- ----- Method: SystemWindow>>refreshWindowColor (in category 'initialization') -----
  refreshWindowColor
  	"For changing the underlying model's default window color"
  	self paneColor: nil.
  	self setWindowColor: self paneColor.!

Item was changed:
+ ----- Method: SystemWindow>>restoreDefaultPaneColor (in category 'colors handling') -----
- ----- Method: SystemWindow>>restoreDefaultPaneColor (in category 'panes') -----
  restoreDefaultPaneColor
  	"Useful when changing from monochrome to color display"
  
  	self setStripeColorsFrom: self paneColor.!

Item was removed:
- ----- Method: SystemWindow>>scrollBarColor (in category 'drawing') -----
- scrollBarColor
- 	^self paneColor!

Item was changed:
+ ----- Method: SystemWindow>>setStripeColorsFrom: (in category 'colors handling') -----
- ----- Method: SystemWindow>>setStripeColorsFrom: (in category 'label') -----
  setStripeColorsFrom: paneColor 
  	"Set the stripe color based on the given paneColor"
  
  	labelArea ifNotNil: [labelArea color: Color transparent].
+ 	self updateBoxesColor: paneColor.
- 	self updateBoxesColor: (self isActive 
- 				ifTrue: [paneColor]
- 				ifFalse: [paneColor muchDarker]).
  	stripes ifNil: [^self].
  
+ 	self borderColor: paneColor muchDarker.
+ 
  	SystemWindow gradientWindow
+ 		ifTrue: [self fillStyle: (self gradientWithColor: paneColor)]
+ 		ifFalse: [self color: paneColor].!
- 		ifTrue: [
- 			self fillStyle: (self isActive
- 				ifTrue: [self gradientWithColor: paneColor duller "lighter lighter lighter"]
- 				ifFalse: [self gradientWithColor: paneColor duller darker])]
- 		ifFalse: [
- 			self color: (self isActive
- 				ifTrue: [paneColor]
- 				ifFalse: [paneColor duller])].!

Item was changed:
+ ----- Method: SystemWindow>>setWindowColor: (in category 'colors handling') -----
- ----- Method: SystemWindow>>setWindowColor: (in category 'menu') -----
  setWindowColor: incomingColor
  	| existingColor aColor |
  	incomingColor ifNil: [^ self].  "it happens"
  	aColor := incomingColor asNontranslucentColor.
  	(aColor = ColorPickerMorph perniciousBorderColor 
  		or: [aColor = Color black]) ifTrue: [^ self].
  	existingColor := self paneColorToUse.
  	existingColor ifNil: [^ Beeper beep].
  	self paneColor: aColor.
  	self setStripeColorsFrom: aColor.
  	self changed.!

Item was changed:
+ ----- Method: SystemWindow>>updatePaneColors (in category 'colors handling') -----
- ----- Method: SystemWindow>>updatePaneColors (in category 'panes') -----
  updatePaneColors
  	"Useful when changing from monochrome to color display"
  
  	self setStripeColorsFrom: self paneColorToUse.!



More information about the Packages mailing list