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

commits at source.squeak.org commits at source.squeak.org
Fri Aug 5 09:08:56 UTC 2016


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

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

Name: Morphic-mt.1236
Author: mt
Time: 5 August 2016, 11:08:10.113358 am
UUID: 04c11a0e-41ce-6947-85fb-dc2f7d340ff0
Ancestors: Morphic-mt.1235

Due to popular request, make the background for Morphic projects also part of the UI theme -- unless the user did set a custom background.

Still propagate the current (custom) background to freshly opened Morphic projects.

=============== Diff against Morphic-mt.1235 ===============

Item was added:
+ ----- Method: MorphicProject class>>themeProperties (in category 'preferences') -----
+ themeProperties
+ 
+ 	^ super themeProperties, {
+ 		{ #background. 'Colors'. 'Color or fill-style for projects. Use-defined background will not be overwritten.' }.
+ 	}!

Item was added:
+ ----- Method: MorphicProject>>applyUserInterfaceTheme (in category 'updating') -----
+ applyUserInterfaceTheme
+ 
+ 	super applyUserInterfaceTheme.
+ 	self setWorldBackground: false.!

Item was added:
+ ----- Method: MorphicProject>>canApplyUserInterfaceTheme (in category 'updating') -----
+ canApplyUserInterfaceTheme
+ 
+ 	^ true!

Item was changed:
  ----- Method: MorphicProject>>initialize (in category 'initialize') -----
  initialize
  	"Initialize a new Morphic Project"
  	super initialize.
  	world := PasteUpMorph newWorldForProject: self.
+ 	self setWorldBackground: true.
- 	world fillStyle: (Project current isMorphic ifTrue: [Project current world fillStyle] ifFalse: [self class defaultFill]).
  	Locale switchToID: CurrentProject localeID.
  	Preferences useVectorVocabulary ifTrue: [world installVectorVocabulary]!

Item was changed:
  ----- Method: MorphicProject>>installPasteUpAsWorld: (in category 'initialize') -----
  installPasteUpAsWorld: pasteUpMorph
  	"(ProjectViewMorph newMorphicProjectOn: aPasteUpMorph) openInWorld."
  
+ 	world := pasteUpMorph beWorldForProject: self.
+ 	self setWorldBackground: true.!
- 	world := pasteUpMorph beWorldForProject: self!

Item was changed:
  ----- Method: MorphicProject>>setAsBackground: (in category 'utilities') -----
  setAsBackground: aForm
  	"Set  aForm as a background image."
  
  	| thisWorld newColor |
  	thisWorld := self currentWorld.
  	newColor := InfiniteForm with: aForm.
  	aForm rememberCommand:
  		(Command new cmdWording: 'set background to a picture' translated;
  			undoTarget: thisWorld selector: #color: argument: thisWorld color;
  			redoTarget: thisWorld selector: #color: argument: newColor).
+ 	thisWorld color: newColor.
+ 	thisWorld setProperty: #hasCustomBackground toValue: true.
- 	thisWorld color: newColor
  !

Item was added:
+ ----- Method: MorphicProject>>setWorldBackground: (in category 'initialize') -----
+ setWorldBackground: force
+ 
+ 	((world hasProperty: #hasCustomBackground) and: [force not])
+ 		ifTrue: [^ self].
+ 
+ 	"If the user has a custom background, propagate it into the new project."
+ 	((Project current ~~ self and: [Project current isMorphic]) and: [Project current world hasProperty: #hasCustomBackground])
+ 		ifTrue: [
+ 			world fillStyle: Project current world fillStyle.
+ 			world setProperty: #hasCustomBackground toValue: true]
+ 		ifFalse: [
+ 			world removeProperty: #hasCustomBackground.
+ 			world fillStyle: (self userInterfaceTheme background ifNil: [self class defaultFill])].!



More information about the Squeak-dev mailing list