[squeak-dev] The Trunk: PreferenceBrowser-mt.70.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Aug 12 09:58:37 UTC 2016


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

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

Name: PreferenceBrowser-mt.70
Author: mt
Time: 12 August 2016, 11:58:31.556343 am
UUID: 6d579f33-f1fb-4b48-a851-8b396a061ec0
Ancestors: PreferenceBrowser-mt.69

Make preference wizard not so alien and more easily dismiss-able.

=============== Diff against PreferenceBrowser-mt.69 ===============

Item was changed:
  Morph subclass: #PreferenceWizardMorph
+ 	instanceVariableNames: 'previewWorld titleMorph buttonRowMorph controlMorph startButton previousButton nextButton pages currentPageIndex pagesLabel skipButton isFullScreen'
- 	instanceVariableNames: 'previewWorld titleMorph buttonRowMorph controlMorph startButton previousButton nextButton pages currentPageIndex pagesLabel skipButton'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'PreferenceBrowser'!

Item was changed:
  ----- Method: PreferenceWizardMorph>>createButton (in category 'initialization') -----
  createButton
  
  	^ PluggableButtonMorphPlus new
  		setProperty: #noUserInterfaceTheme toValue: true;
+ 		offColor: (self defaultColor adjustBrightness: 0.2);
+ 		feedbackColor: (self defaultColor adjustBrightness: 0.4);
- 		offColor: (Color gray: 0.2);
- 		feedbackColor: (Color gray: 0.5);
  		model: self;
  		font: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 12);
+ 		textColor: self defaultTextColor;
+ 		borderColor: self defaultTextColor;
+ 		instVarNamed: #borderColor put: self defaultTextColor; "HACK!!"
- 		textColor: Color white;
- 		borderColor: Color white;
- 		instVarNamed: #borderColor put: Color white; "HACK!!"
  		borderWidth: 2;
  		cornerStyle: #rounded;
  		vResizing: #shrinkWrap;
  		hResizing: #shrinkWrap;
  		layoutInset: (20 at 10 corner: 20 at 10);
  		yourself!

Item was changed:
  ----- Method: PreferenceWizardMorph>>createCheckbox:for: (in category 'initialization') -----
  createCheckbox: label for: selector
  
  	| box lbl btn |
  	
  	btn := self createButton
  		label: ' ';
+ 		onColor: Color white offColor: (self defaultColor adjustBrightness: 0.3);
- 		onColor: Color white offColor: (Color gray: 0.2);
  		vResizing: #rigid;
  		hResizing: #rigid;
  		action: ('toggle', selector) asSymbol;
  		getStateSelector: ('state', selector) asSymbol;
  		extent: 25 at 25.
  
+ 	lbl := self createLabel: label color: self defaultTextColor.
- 	lbl := self createLabel: label color: Color white.
  	
  	box := Morph new
  		color: Color transparent;
  		changeTableLayout;
  		listDirection: #leftToRight;
  		cellPositioning: #topLeft;
  		hResizing: #spaceFill;
  		vResizing: #shrinkWrap;
  		cellInset: 10;
  		yourself.
  		
  	box addAllMorphs: {btn. lbl}.
  	^ box!

Item was changed:
  ----- Method: PreferenceWizardMorph>>createLabel: (in category 'initialization') -----
  createLabel: aString
  
+ 	^ self createLabel: aString color: (self defaultTextColor adjustBrightness: -0.1)!
- 	^ self createLabel: aString color: (Color gray: 0.8)!

Item was changed:
  ----- Method: PreferenceWizardMorph>>createLabel:color: (in category 'initialization') -----
  createLabel: aString color: aColor
  
  	| lbl |
  	lbl := TextMorph new hResizing: #spaceFill; vResizing: #shrinkWrap.
  	lbl newContents:aString.
  	lbl text
  		addAttribute: (TextColor color: aColor);
  		addAttribute: (TextFontReference toFont: ((StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 12))).
+ 	lbl lock.
  	^ lbl!

Item was added:
+ ----- Method: PreferenceWizardMorph>>defaultColor (in category 'initialization') -----
+ defaultColor
+ 
+ 	^ Color black!

Item was added:
+ ----- Method: PreferenceWizardMorph>>defaultTextColor (in category 'initialization') -----
+ defaultTextColor
+ 
+ 	^ Color white!

Item was changed:
  ----- Method: PreferenceWizardMorph>>initialize (in category 'initialization') -----
  initialize
  
  	super initialize.
  	
+ 	isFullScreen := false.
+ 
+ 	self color: (self defaultColor alpha: 0.75).
- 	self color: Color black.
  	self setProperty: #indicateKeyboardFocus toValue: #never.
  	
  	Preferences enable: #systemWindowEmbedOK.
  	
  	titleMorph := ('Welcome to Squeak' translated asText
+ 		addAttribute: (TextColor color: self defaultTextColor);
- 		addAttribute: (TextColor color: Color white);
  		addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20));
+ 		yourself) asMorph lock.
- 		yourself) asMorph.
  	titleMorph margins: (10 at 0 corner: 10 at 10).
  	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)).
  	
  	self
  		initializePages;
  		initializeButtons;
  		initializeControlMorph;
  		initializePreviewWorld.
  
  	self
  		changeProportionalLayout;
  		layoutInset: 20;
  		cellInset: 10;
+ 		cellPositioning: #center;
  		addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton}.
  		
  	self addKeyboardCaptureFilter: self.!

Item was changed:
  ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization') -----
  initializeButtons
  
  	buttonRowMorph := Morph new
  		color: Color transparent;
  		changeTableLayout;
  		listDirection: #leftToRight;
  		cellInset: 10;
  		layoutInset: (0 at 20 corner: 0 at 0);
  		vResizing: #shrinkWrap;
  		hResizing: #spaceFill;
  		yourself.
  		
  	buttonRowMorph addAllMorphs: {
  		previousButton := self createButton action: #previous; label: 'Previous' translated.
  		pagesLabel := (self createLabel: '0 / 0') hResizing: #shrinkWrap; margins: (20 at 0 corner: 20 at 0); fullBounds; yourself.
  		nextButton := self createButton action: #next; label: 'Next' translated.
  		self createHorizontalSpacer.
  		self createButton action: #showSqueak; label: 'Done' translated}.
  	
  	
  	buttonRowMorph fullBounds.
  	buttonRowMorph layoutFrame: (LayoutFrame fractions: (0 @ 1 corner: 1 @ 1) offsets: (0@ buttonRowMorph height negated corner: 0 @ 0)).
  	
  	
  	
+ 	startButton := (self createButton action: #showPlayfield; label: 'Configure' translated).
+ 	skipButton := (self createButton action: #showSqueak; label: 'Skip' translated).
+ 	
+ 	(startButton width max: skipButton width) in: [:w |
+ 		startButton hResizing: #rigid; width: w.
+ 		skipButton hResizing: #rigid; width: w.
+ 		
+ 		startButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (2*w negated @ 0 corner: 0 @ 0)).
+ 		skipButton layoutFrame: (LayoutFrame fractions: (0.5 @ 0.6 corner: 0.5 @ 0.6) offsets: (0@ 0 corner: 2*w @ 0))].!
- 	startButton := (self createButton action: #showPlayfield; label: 'Continue' translated).
- 	startButton layoutFrame: (LayoutFrame fractions: (0 @ 0.5 corner: 1 @ 0.5) offsets: (0@ 0 corner: 0 @ (titleMorph height * 4))).
- 	skipButton := (self createButton action: #showSqueak; label: 'Skip' translated; borderWidth: 0; color: Color black).
- 	skipButton layoutFrame: (LayoutFrame fractions: (1 at 1 corner: 1 at 1) offsets: (skipButton fullBounds width negated @ skipButton fullBounds height negated corner: 0 at 0)).	
- !

Item was changed:
  ----- Method: PreferenceWizardMorph>>intoWorld: (in category 'initialization') -----
  intoWorld: world
  
  	super intoWorld: world.
  	
  	self bounds: world bounds.
  	
  	self fullBounds.
  	self updateWindowBounds.
  	
+ 	world activeHand
+ 		newKeyboardFocus: self;
+ 		newMouseFocus: self.
+ 		
- 	world activeHand newKeyboardFocus: self.
- 	
  	self showWelcome.!

Item was added:
+ ----- Method: PreferenceWizardMorph>>mouseDown: (in category 'event handling') -----
+ mouseDown: evt
+ 
+ 	(self containsPoint: evt position)
+ 		ifFalse: [^ self delete].!

Item was added:
+ ----- Method: PreferenceWizardMorph>>mouseUp: (in category 'event handling') -----
+ mouseUp: evt
+ 
+ 	evt hand newMouseFocus: self.!

Item was added:
+ ----- Method: PreferenceWizardMorph>>processFocusEvent:using: (in category 'event handling') -----
+ processFocusEvent: evt using: dispatcher
+ 
+ 	^ dispatcher dispatchFocusEventFully: evt with: self!

Item was changed:
  ----- Method: PreferenceWizardMorph>>showPlayfield (in category 'actions') -----
  showPlayfield
  
  	startButton hide.
  	skipButton hide.
+ 	isFullScreen := true.
+ 	self step.
- 	self refreshWorld.
- 	(Delay forMilliseconds: 1000) wait.	
  	
- 	
  	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)).
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.	
  	
  
  	controlMorph show.
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.	
  	
  	previewWorld show.
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.	
  
  	buttonRowMorph show.
  	self next.
  	self refreshWorld.
  	
  	!

Item was changed:
  ----- Method: PreferenceWizardMorph>>showSqueak (in category 'actions') -----
  showSqueak
  
+ 	self isInWelcome ifTrue: [^ self delete].
- 	self isInWelcome ifTrue: [
- 		startButton hide.
- 		skipButton hide.
- 		self refreshWorld.
- 		(Delay forMilliseconds: 1000) wait.
- 		titleMorph hide.
- 		self refreshWorld.
- 		(Delay forMilliseconds: 1000) wait.
- 		^ self delete].
  	
  	buttonRowMorph hide.
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.
  
  	controlMorph hide.
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.
  
  	previewWorld hide.
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.
  
  
  	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 1)).
  	self refreshWorld.
  	(Delay forMilliseconds: 1000) wait.
  	self delete.!

Item was changed:
  ----- Method: PreferenceWizardMorph>>showWelcome (in category 'actions') -----
  showWelcome
  
+ 	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.65) offsets: (0 @0 corner: 0 at 0)).
+ 	isFullScreen := false.
+ 	self height: titleMorph fullBounds height * 4.
+ 	self step.
+ 	self fullBounds.
+ 	self step.
- 	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 1)).
  	
  	controlMorph hide.
  	previewWorld hide.
  	buttonRowMorph hide.
- 	titleMorph hide.
- 	startButton hide.
- 	skipButton hide.
  	
- 	self refreshWorld.
- 	
- 	(Delay forMilliseconds: 1000) wait.
  	titleMorph show.
- 	self refreshWorld.
- 
- 
- 	(Delay forMilliseconds: 1000) wait.
  	startButton show.
  	skipButton show.
+ 
  	self refreshWorld.
  	!

Item was changed:
  ----- Method: PreferenceWizardMorph>>step (in category 'stepping and presenter') -----
  step
  
+ 	| oldWidth oldBounds |
- 	| oldBounds |
  	"self comeToFront."
  
+ 	isFullScreen == true
+ 		ifTrue: [
+ 			oldBounds := self bounds.
+ 			self bounds: self world bounds.
+ 			self bounds = oldBounds ifFalse: [
+ 				self updateWindowBounds]]
+ 		ifFalse: [
+ 			oldWidth := self width.
+ 			self width: self world width.
+ 			self center: self world center.
+ 			self width = oldWidth ifFalse: [
+ 				self updateWindowBounds]].!
- 	oldBounds := self bounds.
- 	self bounds: self world bounds.
- 	self bounds = oldBounds ifFalse: [
- 		self updateWindowBounds].!

Item was changed:
  ----- Method: PreferenceWizardMorph>>updateWindowBounds (in category 'layout') -----
  updateWindowBounds
  
  	| windows offset |
+ 	isFullScreen == false ifTrue: [^ self].
+ 	
+ 	self fullBounds.
+ 
  	windows := previewWorld submorphs.
  	offset := 50 at 50.
  	
  	windows reversed do: [:ea |
  		ea
  			topLeft: previewWorld topLeft + offset;
  			extent: previewWorld extent // 3 * 2.
  		offset := offset + (50 at 50)].!



More information about the Squeak-dev mailing list