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

David T. Lewis lewis at mail.msen.com
Fri Sep 13 12:54:15 UTC 2019


This looks very good. It provides a comfortable "quick start" for
new users in a classroom setting, and I think it will work well for
new hobby users who may be encountering Squeak for the first time.

Dave

On Thu, Sep 12, 2019 at 02:25:06PM +0000, commits at source.squeak.org wrote:
> Marcel Taeumel uploaded a new version of PreferenceBrowser to project The Trunk:
> http://source.squeak.org/trunk/PreferenceBrowser-mt.92.mcz
> 
> ==================== Summary ====================
> 
> Name: PreferenceBrowser-mt.92
> Author: mt
> Time: 12 September 2019, 4:25:05.125077 pm
> UUID: 7ec5722c-bc3b-1c4b-8749-d0bbc537e2d5
> Ancestors: PreferenceBrowser-mt.91
> 
> Preference wizard
> - adds scroll bars (just in case)
> - adds option to install common packages
> - checks for internet connection
> 
> =============== Diff against PreferenceBrowser-mt.91 ===============
> 
> Item was changed:
>   ----- Method: PreferenceWizardMorph>>accept (in category 'actions') -----
>   accept
>   
> + 	self showInstallPage.!
> - 	self showSqueak.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>adjustSettingsForLowPerformance (in category 'support') -----
> - ----- Method: PreferenceWizardMorph>>adjustSettingsForLowPerformance (in category 'actions') -----
>   adjustSettingsForLowPerformance
>   
>   	self updateLowPerformanceLabel: 'Please wait, optimizing performance...' translated.
>   	self refreshWorld.
>   	
>   	self stateGradients "flat look" ifFalse: [self toggleGradients].
>   	self stateBlinkingCursor ifTrue: [self toggleBlinkingCursor].
>   	self stateFastDrag ifFalse: [self toggleFastDrag].
>   	
>   	self stateSoftShadows ifTrue: [self toggleSoftShadows].
>   	self stateHardShadows ifTrue: [self toggleHardShadows].
>   	
>   	self stateRoundedWindowLook ifTrue: [self toggleRoundedWindowLook].
>   	self stateRoundedButtonLook ifTrue: [self toggleRoundedButtonLook].
>   	
>   	self stateAttachToolsToMouse ifTrue: [self toggleAttachToolsToMouse].
>   	self stateToolAndMenuIcons ifTrue: [self toggleToolAndMenuIcons].
>   	
>   	self stateSmartHorizontalSplitters ifTrue: [self toggleSmartHorizontalSplitters].
>   	self stateSmartVerticalSplitters ifTrue: [self toggleSmartVerticalSplitters].
>   	
>   	PluggableListMorph highlightHoveredRow: false; filterableLists: false.
>   	TheWorldMainDockingBar showSecondsInClock: false.
>   	Preferences disable: #balloonHelpInMessageLists.
>   	
>   	
>   	"Set simple background."
>   	ActiveWorld setAsBackground: MorphicProject defaultFill.
>   	previewWorld fillStyle: ActiveWorld fillStyle.
>   	
>   	"Done."
>   	self updateLowPerformanceLabel: 'Settings were adjusted for optimal performance.' translated.
>   	!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>checkInternetOn: (in category 'updating') -----
> + checkInternetOn: button
> + 
> + 	self isInWorld ifFalse: [^ self].
> + 	(self hasProperty: #checkInternet) ifFalse: [^ self].
> + 	
> + 	self hasInternetConnection
> + 		ifTrue: [button enabled: true; label: 'Yes, install selected packages.' translated]
> + 		ifFalse: [button enabled: false; label: 'Please check your internet connection...' translated].
> + 	
> + 	(self future: 1000) checkInternetOn: button.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>chooseTheme: (in category 'support') -----
> - ----- Method: PreferenceWizardMorph>>chooseTheme: (in category 'actions') -----
>   chooseTheme: aTheme
>   
>   	aTheme apply.
>   
>   	"The theme does not theme this fake world."
> + 	previewWorld fillStyle: self world fillStyle.!
> - 	previewWorld fillStyle: ActiveWorld fillStyle.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createButton (in category 'initialization - building') -----
> - ----- 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);
>   		model: self;
>   		font: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 12);
>   		textColor: self defaultTextColor;
>   		borderColor: self defaultTextColor;
>   		instVarNamed: #borderColor put: self defaultTextColor; "HACK!!"
>   		borderWidth: 2;
>   		cornerStyle: (self hasLowPerformance ifTrue: [#square] ifFalse: [#rounded]);
>   		vResizing: #shrinkWrap;
>   		hResizing: #shrinkWrap;
>   		layoutInset: (20 at 10 corner: 20 at 10);
>   		yourself!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createCheckbox:for: (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createCheckbox:for: (in category 'initialization') -----
>   createCheckbox: label for: selector
>   
>   	^ self
>   		createCheckbox: label
>   		for: selector
>   		help: #()!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createCheckbox:for:help: (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createCheckbox:for:help: (in category 'initialization') -----
>   createCheckbox: label for: selector help: terms
>   
>   	| box lbl btn |
>   	
>   	btn := self createButton
>   		layoutInset: 0;
>   		label: ' ';
>   		onColor: (self defaultColor adjustBrightness: 0.3) offColor: (self defaultColor adjustBrightness: 0.3);
>   		vResizing: #rigid;
>   		hResizing: #rigid;
>   		action: ('toggle', selector) asSymbol;
>   		getStateSelector: ('state', selector) asSymbol;
>   		getLabelSelector: ('label', selector) asSymbol;
>   		extent: 25 at 25.
>   
>   	lbl := self createLabel: label color: self defaultTextColor.
> + 	lbl hResizing: #spaceFill.
>   	
>   	box := Morph new
>   		color: Color transparent;
>   		changeTableLayout;
>   		listDirection: #leftToRight;
>   		cellPositioning: #topLeft;
>   		hResizing: #spaceFill;
>   		vResizing: #shrinkWrap;
> + 		rubberBandCells: true;
>   		cellGap: 10;
>   		yourself.
>   		
>   	box addAllMorphs: {btn. lbl}.
>   	self
>   		setBalloonText: (terms isString ifTrue: [terms] ifFalse: [self findHelpStringFor: terms])
>   		for: box.
>   	^ box!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createHorizontalSpacer (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createHorizontalSpacer (in category 'initialization') -----
>   createHorizontalSpacer
>   
>   	^ Morph new
>   		color: Color transparent;
>   		hResizing: #spaceFill;
>   		extent: 5 at 5;
>   		yourself!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createLabel: (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createLabel: (in category 'initialization') -----
>   createLabel: aString
>   
>   	^ self createLabel: aString color: (self defaultTextColor adjustBrightness: -0.1)!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createLabel:color: (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createLabel:color: (in category 'initialization') -----
>   createLabel: aString color: aColor
>   
>   	^ self createLabel: aString color: aColor pointSize: 12!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createLabel:color:pointSize: (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createLabel:color:pointSize: (in category 'initialization') -----
>   createLabel: aString color: aColor pointSize: size
>   
>   	| 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: size))).
>   	lbl lock.
>   	^ lbl!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createPage (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createPage (in category 'initialization') -----
>   createPage
>   
>   	^ Morph new
>   		color: Color transparent;
>   		hResizing: #spaceFill;
>   		vResizing: #spaceFill;
>   		changeTableLayout;
>   		listDirection: #topToBottom;
>   		cellPositioning: #topLeft;
> + 		layoutInset: (20 at 20 corner: 10 at 0);
> - 		layoutInset: 20;
>   		cellGap: 10;
>   		yourself!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>createScrollPane (in category 'initialization - building') -----
> + createScrollPane
> + 
> + 	| pane |
> + 	pane := ScrollPane new
> + 		setProperty: #noUserInterfaceTheme toValue: true;
> + 		hScrollBarPolicy: #never;
> + 		vScrollBarPolicy: #whenNeeded;
> + 		borderWidth: 0;
> + 		color: Color transparent;
> + 		scrollBarThickness: 20;
> + 		yourself.
> + 		
> + 	pane
> + 		hResizing: #spaceFill;
> + 		vResizing: #spaceFill.
> + 	
> + 	pane scroller changeTableLayout.
> + 	pane scroller addMorph: (Morph new
> + 		changeTableLayout;
> + 		color: Color transparent;
> + 		hResizing: #spaceFill;
> + 		vResizing: #shrinkWrap;
> + 		cellGap: 10;
> + 		layoutInset: (0 at 0 corner: 10 at 0);
> + 		yourself).
> + 	
> + 	pane vScrollBar
> + 		setProperty: #noUserInterfaceTheme toValue: true;
> + 		sliderColor: Color white.
> + 	(pane vScrollBar instVarNamed: #slider) 
> + 		cornerStyle: (self hasLowPerformance ifTrue: [#square] ifFalse: [#rounded]);
> + 		borderWidth: 2.
> + 	(pane vScrollBar instVarNamed: #pagingArea) 
> + 		cornerStyle: (self hasLowPerformance ifTrue: [#square] ifFalse: [#rounded]).	
> + 			
> + 	^ pane!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createVerticalSpace (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createVerticalSpace (in category 'initialization') -----
>   createVerticalSpace
>   
>   	^ Morph new
>   		color: Color transparent;
>   		vResizing: #rigid;
>   		extent: 5 at 5;
>   		yourself!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>createVerticalSpacer (in category 'initialization - building') -----
> - ----- Method: PreferenceWizardMorph>>createVerticalSpacer (in category 'initialization') -----
>   createVerticalSpacer
>   
>   	^ Morph new
>   		color: Color transparent;
>   		vResizing: #spaceFill;
>   		extent: 5 at 5;
>   		yourself!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>doesNotUnderstand: (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>doesNotUnderstand: (in category 'buttons') -----
>   doesNotUnderstand: msg
>   
>   	(msg selector numArgs = 0 and: [msg selector beginsWith: 'label'])
>   		ifTrue: [^ (self perform: ('state', (msg selector allButFirst: 5)) asSymbol)
>   			ifTrue: [self checkmark]
>   			ifFalse: [' '] ].
>   		
>   	^ super doesNotUnderstand: msg!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>findHelpStringFor: (in category 'support') -----
> - ----- Method: PreferenceWizardMorph>>findHelpStringFor: (in category 'initialization') -----
>   findHelpStringFor: someTerms
>   
>   	someTerms ifEmpty: [^ ''].
>   	
>   	^ Preferences allPreferences
>   		detect:[:pref | someTerms allSatisfy: [:term| pref name includesSubstring: term caseSensitive: false]]
>   		ifFound: [:pref | (pref helpString lines joinSeparatedBy: ' ') withBlanksTrimmed]
>   		ifNone: ['']!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>hasInternetConnection (in category 'testing') -----
> + hasInternetConnection
> + 
> + 	^ [TestCase new ensureSecureInternetConnection. true]
> + 		on: Error do: [false]!
> 
> Item was changed:
>   ----- Method: PreferenceWizardMorph>>initialize (in category 'initialization') -----
>   initialize
>   
>   	super initialize.
>   	
>   	isFullScreen := false.
>   
>   	self hasLowPerformance
>   		ifTrue: [self color: self defaultColor]
>   		ifFalse: [self color: (self defaultColor alpha: 0.75)].
>   		
>   	self setProperty: #indicateKeyboardFocus toValue: #never.
>   	
>   	Preferences enable: #systemWindowEmbedOK.
>   	
>   	titleMorph := ('Welcome to Squeak' translated asText
>   		addAttribute: (TextColor color: self defaultTextColor);
>   		addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 20));
>   		yourself) asMorph lock.
>   	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;
>   		initializeForLowPerformance.
>   
>   	self
>   		changeProportionalLayout;
>   		layoutInset: 20;
>   		cellGap: 10;
>   		cellPositioning: #center;
>   		addAllMorphs: {titleMorph. buttonRowMorph. controlMorph. previewWorld. startButton. skipButton. lowPerformanceMorph}.
>   		
>   	self addKeyboardCaptureFilter: self.!
> 
> Item was changed:
>   ----- Method: PreferenceWizardMorph>>initializeButtons (in category 'initialization') -----
>   initializeButtons
>   
>   	buttonRowMorph := Morph new
>   		color: Color transparent;
>   		changeTableLayout;
>   		listDirection: #leftToRight;
>   		cellGap: 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: #accept; label: 'Done' translated}.
> - 		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))].!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage01Themes (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage01Themes (in category 'initialization') -----
>   initializePage01Themes
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose a theme:' color: Color white).
> + 	currentPage addMorphBack: pane.
> + 	
>   	((UserInterfaceTheme allThemes
>   		reject: [:uit | uit name beginsWith: 'Demo'])
>   		sorted: [:a :b | a name <= b name])
>   			do: [:ea |
> + 			pane scroller firstSubmorph addMorphBack: (self createButton
> - 			currentPage addMorphBack: (self createButton
>   				label: ea name;
>   				hResizing: #spaceFill;
>   				action: #chooseTheme:;
>   				arguments: {ea})].
> + 
> - 	currentPage addMorphBack: self createVerticalSpacer.
>   !
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage02Visuals (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage02Visuals (in category 'initialization') -----
>   initializePage02Visuals
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose visual settings' color: Color white).
> + 	currentPage addMorphBack: pane.
>   	
> + 	pane scroller firstSubmorph addAllMorphsBack: {
> - 	
> - 	currentPage addAllMorphsBack: {
>   		self createCheckbox: 'Colorful windows' translated for: #UseColorfulWindows help: #(color window).
>   		self createCheckbox: 'Flat widget look' translated for: #Gradients help: 'Whether to use gradients or not.' translated.
>   		self createVerticalSpace.
>   		self createCheckbox: 'Rounded windows' translated for: #RoundedWindowLook help: #(round window).
>   		self createCheckbox: 'Rounded buttons' translated for: #RoundedButtonLook help: #(round button).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Soft shadows' translated for: #SoftShadows help: #(soft shadow).
>   		self createCheckbox: 'Hard shadows' translated for: #HardShadows help: 'Whether to use a hard shadow for windows, menus, and dialogs.' translated.
>   		self createVerticalSpace.
>   		self createCheckbox: 'Fast drag and resize' translated for: #FastDrag help: #(fast drag).
>   		self createCheckbox: 'Blinking text cursor' translated for: #BlinkingCursor help: #(blinking cursor).
>   		self createCheckbox: 'Show keyboard focus' translated for: #ShowKeyboardFocus help: #(keyboard indicate).		
>   		self createCheckbox: 'Simple edit indication' translated for: #SimpleFrameAdornments help: #(adornment simple).		
> + 		}.!
> - 		}.
> - 		
> - 	currentPage addMorphBack: self createVerticalSpacer.
> - !
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage02bVisualsMore (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage02bVisualsMore (in category 'initialization') -----
>   initializePage02bVisualsMore
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose more visual settings' color: Color white).
> + 	currentPage addMorphBack: pane.
>   	
> + 	pane scroller firstSubmorph addAllMorphsBack: {
> - 	currentPage addAllMorphsBack: {
>   		self createCheckbox: 'Bigger Fonts' translated for: #UseBiggerFonts help: 'For high-DPI displays, bigger fonts can improve readability.'.
>   		self createCheckbox: 'Bigger Cursors' translated for: #UseBiggerCursors help: #(bigger cursor).
> + 		}.!
> - 		}.
> - 		
> - 	currentPage addMorphBack: self createVerticalSpacer.
> - !
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage03Interaction (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage03Interaction (in category 'initialization') -----
>   initializePage03Interaction
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose interaction settings' color: Color white).
> + 	currentPage addMorphBack: pane.
>   	
> + 	pane scroller firstSubmorph addAllMorphsBack: {
> - 	
> - 	currentPage addAllMorphsBack: {
>   		self createCheckbox: 'Swap mouse buttons' translated for: #SwapMouseButtons help: #(swap mouse).
>   		self createCheckbox: 'Focus follows mouse' translated for: #FocusFollowsMouse help: #(mouse over keyboard).
>   		self createCheckbox: 'Mouse wheel to focus' translated for: #SendMouseWheelToKeyboardFocus help: #(wheel keyboard).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Auto enclose brackets' translated for: #AutoEnclose help: #(auto enclose).
>   		self createCheckbox: 'Auto indent lines' translated for: #AutoIndent help: #(auto indent).
>   		self createCheckbox: 'Enclose text selections' translated for: #EncloseSelection help: #(enclose selection).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Arrows in scrollbar' translated for: #ScrollBarsWithoutArrowButtons help: 'Whether to show arrows for scrolling or not.' translated.
>   		self createCheckbox: 'Menu in scrollbar' translated for: #ScrollBarsWithoutMenuButton help: 'Whether to show a menu button or not.' translated.
>   		self createCheckbox: 'Scrollbars on the right' translated for: #ScrollBarsOnRight help: #(right scroll).
>   		self createCheckbox: 'Retractable scrollbars' translated for: #UseRetractableScrollBars help: #(retractable).
>   		self createCheckbox: 'Narrow scrollbars' translated for: #ScrollBarsNarrow help: #(narrow scroll).
>   		
> + 		}.!
> - 		}.
> - 		
> - 	currentPage addMorphBack: self createVerticalSpacer.
> - !
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage04InteractionMore (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage04InteractionMore (in category 'initialization') -----
>   initializePage04InteractionMore
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose more interaction settings' color: Color white).
> + 	currentPage addMorphBack: pane.
>   	
> + 	pane scroller firstSubmorph addAllMorphsBack: {
> - 	
> - 	currentPage addAllMorphsBack: {
>   		self createCheckbox: 'Windows raise on click' translated for: #WindowsRaiseOnClick help: #(window raise).
>   		self createCheckbox: 'Windows always active' for: #WindowsAlwaysActive help: #(window content active).
>   		self createCheckbox: 'Window buttons always active' translated for: #WindowButtonsAlwaysActive help: #(window control active).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Smart horizontal splitters' translated for: #SmartHorizontalSplitters help: #(horizontal splitter).
>   		self createCheckbox: 'Smart vertical splitters' translated for: #SmartVerticalSplitters help: #(vertical splitter).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Filterable lists and trees' translated for: #FilterableLists help: #(filterable).
>   		self createCheckbox: 'Filters clear if unfocused' translated for: #ClearFilterAutomatically help: #(filter clear).
>   		self createVerticalSpace.
>   		self createCheckbox: 'Attach tools to mouse' translated for: #AttachToolsToMouse help: #(tools attach).		
> + 		}.!
> - 		}.
> - 		
> - 	currentPage addMorphBack: self createVerticalSpacer.
> - !
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>initializePage05Tools (in category 'initialization - pages') -----
> - ----- Method: PreferenceWizardMorph>>initializePage05Tools (in category 'initialization') -----
>   initializePage05Tools
>   
> + 	| currentPage pane |
> - 	| currentPage |
>   	currentPage := pages add: self createPage.
> + 	pane := self createScrollPane.
> + 	
>   	currentPage addMorphBack: (self createLabel: 'Choose other settings' color: Color white).
> + 	currentPage addMorphBack: pane.
>   	
> + 	pane scroller firstSubmorph addAllMorphsBack: {
> - 	
> - 	currentPage addAllMorphsBack: {
>   		self createCheckbox: 'Trace messages browser' translated for: #TraceMessages help: #(trace message).
>   		self createCheckbox: 'Reuse tool windows' translated for: #ReuseWindows help: #(window reuse).
>   		self createCheckbox: 'Tool and menu icons' translated for: #ToolAndMenuIcons help: 'Whether to show icons in tools and menus.' translated.
>   		self createCheckbox: 'Browse class hierarchy' translated for: #AlternativeBrowseIt help: 'Whether to spawn a hierarchy browser or full system browser on browse-it commands.' translated.
>   		}.
> - 		
> - 	currentPage addMorphBack: self createVerticalSpacer.
>   !
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>initializePage99ExtraPackages (in category 'initialization - pages') -----
> + initializePage99ExtraPackages
> + 	"Let the user install extra packages."
> + 
> + 	| currentPage packagesList installButton |
> + 	currentPage := self createPage.
> + 	currentPage
> + 		cellPositioning: #topCenter;
> + 		layoutInset: (150 at 40 corner: 150 at 20);
> + 		addMorphBack: self createHorizontalSpacer;
> + 		addMorphBack: ((self createLabel: 'Do you want to install extra packages?' color: Color white)
> + 			hResizing: #shrinkWrap;
> + 			yourself);
> + 		addMorphBack: ((self createLabel: 'Note that the installation process requires an internet connection and may take several minutes.' color: (Color gray: 0.9))
> + 			hResizing: #rigid;
> + 			vResizing: #shrinkWrap;
> + 			width: 450;
> + 			yourself).
> + 	
> + 	currentPage submorphs last text addAttribute: TextAlignment centered.
> + 	currentPage submorphs last layoutChanged.
> + 	
> + 	currentPage addMorphBack: (self createVerticalSpace height: 20).
> + 	
> + 	packagesList := self createScrollPane.
> + 	packagesList
> + 		width: 350;
> + 		hResizing: #rigid;
> + 		vResizing: #spaceFill.
> + 
> + 	packagesList scroller firstSubmorph addAllMorphsBack: {
> + 		self createCheckbox: 'Latest system updates' translated for: #InstallLatestUpdates help: 'Install the latest patches for ' translated, SystemVersion current version.
> + 		self createCheckbox: 'Refactoring support in code browsers' translated for: #InstallRefactoringTools help: 'Refactoring is a process of re-writing or re-organizing text or code. The purpose of a refactor is to make the code or text more understandable and readable while exactly preserving its meaning and behavior.' translated.
> + 		self createCheckbox: 'Autocomplete in code editors' translated for: #InstallAutoComplete help: 'Package that provides interactive, context-sensitive auto-completion for Squeak.' translated.
> + 		self createCheckbox: 'Git support and browser' translated for: #InstallGitInfrastructure help: 'From the Git Browser, you can create new commits, synchronize with remote repositories (fetch, pull, push), manage and merge branches, switch between them, and compare different versions.' translated.
> + 		self createCheckbox: 'Foreign function interface (FFI)' translated for: #InstallFFI help: 'FFI, the Squeak Foreign Function Interface, is used to call functions located in shared libraries that are not part of the Squeak VM nor its plugins' translated.
> + 		self createCheckbox: 'Access OS functions' translated for: #InstallOSProcess help: 'OSProcess provides access to operating system functions, including pipes and child process creation.' translated.
> + 	}.
> + 		
> + 	currentPage addMorphBack: packagesList.
> + 
> + 	currentPage addMorphBack: ((self createLabel: 'Find more on www.squeak.org/projects' color: (Color gray: 0.9))
> + 		hResizing: #shrinkWrap; yourself).
> + 	
> + 	installButton := (self createButton action: #installExtraPackages).
> + 	currentPage addMorphBack: installButton.
> + 	currentPage addMorphBack: (self createButton action: #showSqueak; label: 'No, maybe later.' translated).
> + 	
> + 	self setProperty: #checkInternet toValue: true.
> + 	self checkInternetOn: installButton.
> + 	
> + 	^ currentPage!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installAutoComplete (in category 'actions - packages') -----
> + installAutoComplete
> + 
> + 	Metacello new
> + 		configuration: 'OCompletion';
> + 		load.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installExtraPackages (in category 'actions') -----
> + installExtraPackages
> + 	"Removes the buttons and adds the progress bar during installation."
> + 	
> + 	| steps page |
> + 	self removeProperty: #checkInternet. "No frequent checks for connectivity from here."
> + 	
> + 	steps := #(
> + 		InstallLatestUpdates
> + 		InstallMetacello
> + 		InstallRefactoringTools
> + 		InstallAutoComplete
> + 		InstallGitInfrastructure
> + 		InstallFFI
> + 		InstallOSProcess )
> + 			select: [:ea | self perform: ('state', ea) asSymbol]
> + 			thenCollect: [:ea | ea withFirstCharacterDownshifted asSymbol].
> + 	
> + 	page := controlMorph firstSubmorph.
> + 
> + 	page submorphs second hide. "question"
> + 	page submorphs last delete. "url"
> + 	page submorphs last delete. "no button"
> + 	page submorphs last delete. "yes button"
> + 	page submorphs last delete. "package list"
> + 	
> + 	self refreshWorld.
> + 	
> + 	[
> + 		PreferenceWizardProgressMorph install.
> + 		page
> + 			addMorphBack: PreferenceWizardProgressMorph uniqueInstance;
> + 			addMorphBack: self createVerticalSpacer.
> + 			
> + 		steps
> + 			do: [:step | self perform: step]
> + 			displayingProgress: [:step | (step findFeatures joinSeparatedBy: String space), ' ...'].
> + 	] ensure: [
> + 		PreferenceWizardProgressMorph reset.
> + 		self showSqueak].!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installFFI (in category 'actions - packages') -----
> + installFFI
> + 
> + 	Metacello new
> + 		configuration: 'FFI';
> + 		load.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installGitInfrastructure (in category 'actions - packages') -----
> + installGitInfrastructure
> + 
> + 	Installer installGitInfrastructure.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installLatestUpdates (in category 'actions - packages') -----
> + installLatestUpdates
> + 
> + 	MCConfiguration ensureOpenTranscript: false.
> + 	[MCMcmUpdater default doUpdate: false]
> + 		ensure: [MCConfiguration ensureOpenTranscript: true].!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installMetacello (in category 'actions - packages') -----
> + installMetacello
> + 
> + 	Installer ensureRecentMetacello.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installOSProcess (in category 'actions - packages') -----
> + installOSProcess
> + 
> + 	Metacello new
> + 		configuration: 'OSProcess';
> + 		load.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>installRefactoringTools (in category 'actions - packages') -----
> + installRefactoringTools
> + 
> + 	Metacello new
> + 		configuration: 'RefactoringTools';
> + 		version: '2.0';
> + 		load.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>refreshWorld (in category 'updating') -----
> - ----- Method: PreferenceWizardMorph>>refreshWorld (in category 'initialization') -----
>   refreshWorld
>   
>   	self world layoutChanged. "To be really sure to update docking bars..."
>   	self world fullBounds. "Avoid flickering..."
>   	self world doOneCycle.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>setBalloonText:for: (in category 'support') -----
> - ----- Method: PreferenceWizardMorph>>setBalloonText:for: (in category 'initialization') -----
>   setBalloonText: string for: morph
>   
>   	morph
>   		balloonColor: ((self defaultColor alpha: self color alpha) adjustBrightness: 0.2);
>   		balloonText: (string asText
>   			addAttribute: (TextFontReference toFont: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 9));
>   			addAttribute: (TextColor color: Color banana)).!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>showInstallPage (in category 'actions') -----
> + showInstallPage
> + 
> + 	buttonRowMorph delete.
> + 	previewWorld delete.
> + 
> + 	"self refreshWorld."
> + 
> + 	controlMorph
> + 		removeAllMorphs;
> + 		layoutInset: 0;
> + 		layoutFrame: (LayoutFrame fractions: (0.0 @ 0 corner: 1.0 @ 1.0) offsets: (0@ titleMorph height corner: 0 @ 0));
> + 		addMorphBack: self initializePage99ExtraPackages.
> + 
> + 	"self refreshWorld."!
> 
> Item was changed:
>   ----- Method: PreferenceWizardMorph>>showPlayfield (in category 'actions') -----
>   showPlayfield
>   
>   	startButton hide.
>   	skipButton hide.
>   	lowPerformanceMorph hide.
>   	isFullScreen := true.
>   	self step.
>   	
>   	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0) offsets: (0@ 0 corner: 0 @ titleMorph height)).
> - 	self refreshWorld.
> - 	(Delay forMilliseconds: 1000) wait.	
>   	
> + 	self refreshWorld.
> + 	500 milliSeconds wait.
>   
>   	controlMorph show.
>   	previewWorld show.
>   	buttonRowMorph show.
>   
>   	self next.
>   	self refreshWorld.
>   	
>   	!
> 
> Item was changed:
>   ----- Method: PreferenceWizardMorph>>showSqueak (in category 'actions') -----
>   showSqueak
>   
> + 	self removeProperty: #checkInternet.
>   	self isInWelcome ifTrue: [^ self delete].
>   	
>   	buttonRowMorph hide.
>   	controlMorph hide.
>   	previewWorld hide.
>   
>   	self refreshWorld.
> + 	500 milliSeconds wait.
> - 	(Delay forMilliseconds: 1000) wait.
>   
> - 
>   	titleMorph layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 1)).
> + 	
>   	self refreshWorld.
> + 	500 milliSeconds wait.
> + 	
> - 	(Delay forMilliseconds: 1000) wait.
>   	self delete.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateAlternativeBrowseIt (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateAlternativeBrowseIt (in category 'buttons') -----
>   stateAlternativeBrowseIt
>   
>   	^ Preferences valueOfFlag: #alternativeBrowseIt ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateAttachToolsToMouse (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateAttachToolsToMouse (in category 'buttons') -----
>   stateAttachToolsToMouse
>   
>   	^ Project uiManager openToolsAttachedToMouseCursor!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateAutoEnclose (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateAutoEnclose (in category 'buttons') -----
>   stateAutoEnclose
>   
>   	^ TextEditor autoEnclose!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateAutoIndent (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateAutoIndent (in category 'buttons') -----
>   stateAutoIndent
>   
>   	^ TextEditor autoIndent!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateBlinkingCursor (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateBlinkingCursor (in category 'buttons') -----
>   stateBlinkingCursor
>   
>   	^ TextEditor blinkingCursor!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateClearFilterAutomatically (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateClearFilterAutomatically (in category 'buttons') -----
>   stateClearFilterAutomatically
>   
>   	^ PluggableListMorph clearFilterAutomatically!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateEncloseSelection (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateEncloseSelection (in category 'buttons') -----
>   stateEncloseSelection
>   
>   	^ TextEditor encloseSelection!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateFastDrag (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateFastDrag (in category 'buttons') -----
>   stateFastDrag
>   
>   	^ Preferences valueOfFlag: #fastDragWindowForMorphic ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateFilterableLists (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateFilterableLists (in category 'buttons') -----
>   stateFilterableLists
>   
>   	^ PluggableListMorph filterableLists!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateFocusFollowsMouse (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateFocusFollowsMouse (in category 'buttons') -----
>   stateFocusFollowsMouse
>   
>   	^ Preferences valueOfFlag: #mouseOverForKeyboardFocus ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateGradients (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateGradients (in category 'buttons') -----
>   stateGradients
>   
>   	^ SystemWindow gradientWindow not!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateHardShadows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateHardShadows (in category 'buttons') -----
>   stateHardShadows
>   
>   	^ (Preferences valueOfFlag: #menuAppearance3d ifAbsent: [false]) and: [Morph useSoftDropShadow not]!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallAutoComplete (in category 'actions - packages') -----
> + stateInstallAutoComplete
> + 
> + 	^ self
> + 		valueOfProperty: #InstallAutoComplete
> + 		ifAbsent: [false]
> + !
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallFFI (in category 'actions - packages') -----
> + stateInstallFFI
> + 
> + 	^ self
> + 		valueOfProperty: #InstallFFI
> + 		ifAbsent: [false]!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallGitInfrastructure (in category 'actions - packages') -----
> + stateInstallGitInfrastructure
> + 
> + 	^ self
> + 		valueOfProperty: #InstallGitInfrastructure
> + 		ifAbsent: [false]!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallLatestUpdates (in category 'actions - packages') -----
> + stateInstallLatestUpdates
> + 
> + 	^ self
> + 		valueOfProperty: #InstallLatestUpdates
> + 		ifAbsent: [true]
> + !
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallMetacello (in category 'actions - packages') -----
> + stateInstallMetacello
> + 
> + 	^ #(
> + 		InstallRefactoringTools
> + 		InstallAutoComplete
> + 		InstallGitInfrastructure
> + 		InstallFFI
> + 		InstallOSProcess )
> + 			anySatisfy: [:ea | self perform: ('state', ea) asSymbol]!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallOSProcess (in category 'actions - packages') -----
> + stateInstallOSProcess
> + 
> + 	^ self
> + 		valueOfProperty: #InstallOSProcess
> + 		ifAbsent: [false]!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>stateInstallRefactoringTools (in category 'actions - packages') -----
> + stateInstallRefactoringTools
> + 
> + 	^ self
> + 		valueOfProperty: #InstallRefactoringTools
> + 		ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateReuseWindows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateReuseWindows (in category 'buttons') -----
>   stateReuseWindows
>   
>   	^ SystemWindow reuseWindows!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateRoundedButtonLook (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateRoundedButtonLook (in category 'buttons') -----
>   stateRoundedButtonLook
>   
>   	^ PluggableButtonMorph roundedButtonCorners!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateRoundedWindowLook (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateRoundedWindowLook (in category 'buttons') -----
>   stateRoundedWindowLook
>   
>   	^ SystemWindow roundedWindowCorners!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateScrollBarsNarrow (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateScrollBarsNarrow (in category 'buttons') -----
>   stateScrollBarsNarrow
>   
>   	^ Preferences valueOfPreference: #scrollBarsNarrow ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateScrollBarsOnRight (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateScrollBarsOnRight (in category 'buttons') -----
>   stateScrollBarsOnRight
>   
>   	^ Preferences valueOfFlag: #scrollBarsOnRight ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateScrollBarsWithoutArrowButtons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateScrollBarsWithoutArrowButtons (in category 'buttons') -----
>   stateScrollBarsWithoutArrowButtons
>   
>   	^ ScrollBar scrollBarsWithoutArrowButtons not!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateScrollBarsWithoutMenuButton (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateScrollBarsWithoutMenuButton (in category 'buttons') -----
>   stateScrollBarsWithoutMenuButton
>   
>   	^ ScrollBar scrollBarsWithoutMenuButton not!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSendMouseWheelToKeyboardFocus (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSendMouseWheelToKeyboardFocus (in category 'buttons') -----
>   stateSendMouseWheelToKeyboardFocus
>   
>   	^ HandMorph sendMouseWheelToKeyboardFocus!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateShowKeyboardFocus (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateShowKeyboardFocus (in category 'buttons') -----
>   stateShowKeyboardFocus
>   
>   	^ Morph indicateKeyboardFocus!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSimpleFrameAdornments (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSimpleFrameAdornments (in category 'buttons') -----
>   stateSimpleFrameAdornments
>   
>   	^ PluggableTextMorph simpleFrameAdornments!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSmartHorizontalSplitters (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSmartHorizontalSplitters (in category 'buttons') -----
>   stateSmartHorizontalSplitters
>   
>   	^ ProportionalSplitterMorph smartHorizontalSplitters!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSmartVerticalSplitters (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSmartVerticalSplitters (in category 'buttons') -----
>   stateSmartVerticalSplitters
>   
>   	^ ProportionalSplitterMorph smartVerticalSplitters!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSoftShadows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSoftShadows (in category 'buttons') -----
>   stateSoftShadows
>   
>   	^ (Preferences valueOfFlag: #menuAppearance3d ifAbsent: [false]) and: [Morph useSoftDropShadow]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateSwapMouseButtons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateSwapMouseButtons (in category 'buttons') -----
>   stateSwapMouseButtons
>   
>   	^ Preferences valueOfFlag: #swapMouseButtons ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateToolAndMenuIcons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateToolAndMenuIcons (in category 'buttons') -----
>   stateToolAndMenuIcons
>   
>   	^ Browser showClassIcons!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateTraceMessages (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateTraceMessages (in category 'buttons') -----
>   stateTraceMessages
>   
>   	^ Preferences valueOfFlag: #traceMessages ifAbsent: [false]!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateUseBiggerCursors (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateUseBiggerCursors (in category 'buttons') -----
>   stateUseBiggerCursors
>   
>   	^ Cursor useBiggerCursors!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateUseBiggerFonts (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateUseBiggerFonts (in category 'buttons') -----
>   stateUseBiggerFonts
>   
>   	^ UserInterfaceTheme current name beginsWith: 'Demo'!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateUseColorfulWindows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateUseColorfulWindows (in category 'buttons') -----
>   stateUseColorfulWindows
>   
>   	^ Model useColorfulWindows!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateUseRetractableScrollBars (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateUseRetractableScrollBars (in category 'buttons') -----
>   stateUseRetractableScrollBars
>   
>   	^ ScrollPane useRetractableScrollBars!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateWindowButtonsAlwaysActive (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateWindowButtonsAlwaysActive (in category 'buttons') -----
>   stateWindowButtonsAlwaysActive
>   
>   	^ SystemWindow windowTitleActiveOnFirstClick!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateWindowsAlwaysActive (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateWindowsAlwaysActive (in category 'buttons') -----
>   stateWindowsAlwaysActive
>   
>   	^ Model windowActiveOnFirstClick!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stateWindowsRaiseOnClick (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>stateWindowsRaiseOnClick (in category 'buttons') -----
>   stateWindowsRaiseOnClick
>   
>   	^ SystemWindow windowsRaiseOnClick!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>step (in category 'stepping') -----
> - ----- Method: PreferenceWizardMorph>>step (in category 'stepping and presenter') -----
>   step
>   
>   	| oldWidth 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]].!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>stepTime (in category 'stepping') -----
> - ----- Method: PreferenceWizardMorph>>stepTime (in category 'stepping and presenter') -----
>   stepTime
>   	^ 1000!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleAlternativeBrowseIt (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleAlternativeBrowseIt (in category 'buttons') -----
>   toggleAlternativeBrowseIt
>   
>   	Preferences toggle: #alternativeBrowseIt.
>   	self changed: #stateAlternativeBrowseIt.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleAttachToolsToMouse (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleAttachToolsToMouse (in category 'buttons') -----
>   toggleAttachToolsToMouse
>   
>   	Project uiManager openToolsAttachedToMouseCursor: Project uiManager openToolsAttachedToMouseCursor not.
>   	self changed: #stateAttachToolsToMouse.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleAutoEnclose (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleAutoEnclose (in category 'buttons') -----
>   toggleAutoEnclose
>   
>   	TextEditor autoEnclose: TextEditor autoEnclose not.	
>   	self changed: #stateAutoEnclose.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleAutoIndent (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleAutoIndent (in category 'buttons') -----
>   toggleAutoIndent
>   
>   	TextEditor autoIndent: TextEditor autoIndent not.	
>   	self changed: #stateAutoIndent.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleBlinkingCursor (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleBlinkingCursor (in category 'buttons') -----
>   toggleBlinkingCursor
>   
>   	TextEditor blinkingCursor: TextEditor blinkingCursor not.
>   	
>   	TextMorph allSubInstancesDo: [:ea |
>   		ea stopBlinking.
>   		ea hasFocus ifTrue: [
>   			Editor blinkingCursor
>   				ifTrue: [ea startBlinking]
>   				ifFalse: [ea resetBlinkCursor "ensure caret visible"]]].
>   	
>   	self changed: #stateBlinkingCursor.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleClearFilterAutomatically (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleClearFilterAutomatically (in category 'buttons') -----
>   toggleClearFilterAutomatically
>   
>   	PluggableListMorph clearFilterAutomatically: PluggableListMorph clearFilterAutomatically not.
>   	self changed: #stateClearFilterAutomatically.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleEncloseSelection (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleEncloseSelection (in category 'buttons') -----
>   toggleEncloseSelection
>   
>   	TextEditor encloseSelection: TextEditor encloseSelection not.	
>   	self changed: #stateEncloseSelection.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleFastDrag (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleFastDrag (in category 'buttons') -----
>   toggleFastDrag
>   
>   	Preferences toggle: #fastDragWindowForMorphic.
>   	self changed: #stateFastDrag.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleFilterableLists (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleFilterableLists (in category 'buttons') -----
>   toggleFilterableLists
>   
>   	PluggableListMorph filterableLists: PluggableListMorph filterableLists not.
>   	self changed: #stateFilterableLists.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleFocusFollowsMouse (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleFocusFollowsMouse (in category 'buttons') -----
>   toggleFocusFollowsMouse
>   
>   	Preferences toggle: #mouseOverForKeyboardFocus.
>   	self changed: #stateFocusFollowsMouse.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleGradients (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleGradients (in category 'buttons') -----
>   toggleGradients
>   
>   	| switch |
>   	switch := SystemWindow gradientWindow not.
>   	
>   	SystemWindow gradientWindow: switch.
>   	DialogWindow gradientDialog: switch.
>   	MenuMorph gradientMenu: switch.
>   	ScrollBar gradientScrollBar: switch.
>   	PluggableButtonMorph gradientButton: switch.
>   	
>   	self changed: #stateGradients.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleHardShadows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleHardShadows (in category 'buttons') -----
>   toggleHardShadows
>   
>   	self stateSoftShadows
>   		ifFalse: [Preferences toggle: #menuAppearance3d].
>   		
>   	Morph useSoftDropShadow: false.
>   	
>   	SystemWindow refreshAllWindows; reconfigureWindowsForFocus.
>   	SystemProgressMorph reset.
>   	TheWorldMainDockingBar updateInstances.
>   	
>   	self changed: #stateSoftShadows.
>   	self changed: #stateHardShadows.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallAutoComplete (in category 'actions - packages') -----
> + toggleInstallAutoComplete
> + 
> + 	self
> + 		setProperty: #InstallAutoComplete
> + 		toValue: self stateInstallAutoComplete not.
> + 	self changed: #stateInstallAutoComplete.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallFFI (in category 'actions - packages') -----
> + toggleInstallFFI
> + 
> + 	self
> + 		setProperty: #InstallFFI
> + 		toValue: self stateInstallFFI not.
> + 	self changed: #stateInstallFFI.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallGitInfrastructure (in category 'actions - packages') -----
> + toggleInstallGitInfrastructure
> + 
> + 	self
> + 		setProperty: #InstallGitInfrastructure
> + 		toValue: self stateInstallGitInfrastructure not.
> + 	self changed: #stateInstallGitInfrastructure.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallLatestUpdates (in category 'actions - packages') -----
> + toggleInstallLatestUpdates
> + 
> + 	self
> + 		setProperty: #InstallLatestUpdates
> + 		toValue: self stateInstallLatestUpdates not.
> + 	self changed: #stateInstallLatestUpdates.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallOSProcess (in category 'actions - packages') -----
> + toggleInstallOSProcess
> + 
> + 	self
> + 		setProperty: #InstallOSProcess
> + 		toValue: self stateInstallOSProcess not.
> + 	self changed: #stateInstallOSProcess.!
> 
> Item was added:
> + ----- Method: PreferenceWizardMorph>>toggleInstallRefactoringTools (in category 'actions - packages') -----
> + toggleInstallRefactoringTools
> + 
> + 	self
> + 		setProperty: #InstallRefactoringTools
> + 		toValue: self stateInstallRefactoringTools not.
> + 	self changed: #stateInstallRefactoringTools.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleReuseWindows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleReuseWindows (in category 'buttons') -----
>   toggleReuseWindows
>   
>   	SystemWindow reuseWindows: SystemWindow reuseWindows not.
>   	self changed: #stateReuseWindows.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleRoundedButtonLook (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleRoundedButtonLook (in category 'buttons') -----
>   toggleRoundedButtonLook
>   
>   	| switch |
>   	switch := PluggableButtonMorph roundedButtonCorners not.
>   	
>   	PluggableButtonMorph roundedButtonCorners: switch.
>   	ScrollBar roundedScrollBarLook: switch.
>   	
>   	self changed: #stateRoundedButtonLook.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleRoundedWindowLook (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleRoundedWindowLook (in category 'buttons') -----
>   toggleRoundedWindowLook
>   
>   	| switch |
>   	switch := SystemWindow roundedWindowCorners not.
>   	
>   	SystemWindow roundedWindowCorners: switch.
>   	DialogWindow roundedDialogCorners: switch.
>   	MenuMorph roundedMenuCorners: switch.
>   	
>   	self changed: #stateRoundedWindowLook.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleScrollBarsNarrow (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleScrollBarsNarrow (in category 'buttons') -----
>   toggleScrollBarsNarrow
>   
>   	Preferences toggle: #scrollBarsNarrow.
>   	ScrollPane allSubInstancesDo: [:ea | ea scrollBarThickness: ScrollPane scrollBarThickness].
>   	self changed: #stateScrollBarsNarrow.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleScrollBarsOnRight (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleScrollBarsOnRight (in category 'buttons') -----
>   toggleScrollBarsOnRight
>   
>   	Preferences toggle: #scrollBarsOnRight.
>   	ScrollPane allSubInstancesDo: [:ea | ea scrollBarOnLeft: self stateScrollBarsOnRight not].
>   	self changed: #stateScrollBarsOnRight.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleScrollBarsWithoutArrowButtons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleScrollBarsWithoutArrowButtons (in category 'buttons') -----
>   toggleScrollBarsWithoutArrowButtons
>   
>   	ScrollBar scrollBarsWithoutArrowButtons: ScrollBar scrollBarsWithoutArrowButtons not.
>   	self changed: #stateScrollBarsWithoutArrowButtons.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleScrollBarsWithoutMenuButton (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleScrollBarsWithoutMenuButton (in category 'buttons') -----
>   toggleScrollBarsWithoutMenuButton
>   
>   	ScrollBar scrollBarsWithoutMenuButton: ScrollBar scrollBarsWithoutMenuButton not.
>   	self changed: #stateScrollBarsWithoutMenuButton.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSendMouseWheelToKeyboardFocus (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSendMouseWheelToKeyboardFocus (in category 'buttons') -----
>   toggleSendMouseWheelToKeyboardFocus
>   
>   	HandMorph sendMouseWheelToKeyboardFocus: HandMorph sendMouseWheelToKeyboardFocus not.
>   	self changed: #stateSendMouseWheelToKeyboardFocus.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleShowKeyboardFocus (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleShowKeyboardFocus (in category 'buttons') -----
>   toggleShowKeyboardFocus
>   
>   	Morph indicateKeyboardFocus: Morph indicateKeyboardFocus not.
>   	self changed: #stateShowKeyboardFocus.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSimpleFrameAdornments (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSimpleFrameAdornments (in category 'buttons') -----
>   toggleSimpleFrameAdornments
>   
>   	PluggableTextMorph simpleFrameAdornments: PluggableTextMorph simpleFrameAdornments not.
>   	self changed: #stateSimpleFrameAdornments.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSmartHorizontalSplitters (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSmartHorizontalSplitters (in category 'buttons') -----
>   toggleSmartHorizontalSplitters
>   
>   	ProportionalSplitterMorph smartHorizontalSplitters: ProportionalSplitterMorph smartHorizontalSplitters not.
>   	self changed: #stateSmartHorizontalSplitters.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSmartVerticalSplitters (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSmartVerticalSplitters (in category 'buttons') -----
>   toggleSmartVerticalSplitters
>   
>   	ProportionalSplitterMorph smartVerticalSplitters: ProportionalSplitterMorph smartVerticalSplitters not.
>   	self changed: #stateSmartVerticalSplitters.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSoftShadows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSoftShadows (in category 'buttons') -----
>   toggleSoftShadows
>   
>   	self stateHardShadows
>   		ifFalse: [Preferences toggle: #menuAppearance3d].
>   		
>   	Morph useSoftDropShadow: true.
>   	
>   	SystemWindow refreshAllWindows; reconfigureWindowsForFocus.
>   	SystemProgressMorph reset.
>   	TheWorldMainDockingBar updateInstances.
>   	
>   	self changed: #stateSoftShadows.
>   	self changed: #stateHardShadows.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleSwapMouseButtons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleSwapMouseButtons (in category 'buttons') -----
>   toggleSwapMouseButtons
>   
>   	Preferences toggle: #swapMouseButtons.
>   	self changed: #stateSwapMouseButtons.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleToolAndMenuIcons (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleToolAndMenuIcons (in category 'buttons') -----
>   toggleToolAndMenuIcons
>   
>   	| switch |
>   	switch := Browser showClassIcons not.
>   	
>   	Browser showClassIcons: switch.
>   	Browser showMessageIcons: switch.
>   	Preferences setFlag: #menuWithIcons toValue: switch.
>   	Preferences setFlag: #visualExplorer toValue: switch.
>   	
>   	self changed: #stateToolAndMenuIcons.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleTraceMessages (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleTraceMessages (in category 'buttons') -----
>   toggleTraceMessages
>   
>   	Preferences toggle: #traceMessages.
>   	self changed: #stateTraceMessages.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleUseBiggerCursors (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleUseBiggerCursors (in category 'buttons') -----
>   toggleUseBiggerCursors
>   
>   	Cursor useBiggerCursors: self stateUseBiggerCursors not.
>   	Cursor currentCursor: Cursor currentCursor.
>   	
>   	self changed: #stateUseBiggerCursors.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleUseBiggerFonts (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleUseBiggerFonts (in category 'buttons') -----
>   toggleUseBiggerFonts
>   
>   	[
>   		self stateUseBiggerFonts
>   			ifFalse: [Preferences setDemoFonts]
>   			ifTrue: [Preferences restoreDefaultFonts].
>   	] valueSupplyingAnswer: true.
>   		
>   	self changed: #stateUseBiggerFonts.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleUseColorfulWindows (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleUseColorfulWindows (in category 'buttons') -----
>   toggleUseColorfulWindows
>   
>   	Model useColorfulWindows: Model useColorfulWindows not.
>   	self changed: #stateUseColorfulWindows.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleUseRetractableScrollBars (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleUseRetractableScrollBars (in category 'buttons') -----
>   toggleUseRetractableScrollBars
>   
>   	ScrollPane useRetractableScrollBars: ScrollPane useRetractableScrollBars not.
>   	self changed: #stateUseRetractableScrollBars.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleWindowButtonsAlwaysActive (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleWindowButtonsAlwaysActive (in category 'buttons') -----
>   toggleWindowButtonsAlwaysActive
>   
>   	SystemWindow windowTitleActiveOnFirstClick: SystemWindow windowTitleActiveOnFirstClick not.
>   	self changed: #stateWindowButtonsAlwaysActive.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleWindowsAlwaysActive (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleWindowsAlwaysActive (in category 'buttons') -----
>   toggleWindowsAlwaysActive
>   
>   	Model windowActiveOnFirstClick: Model windowActiveOnFirstClick not.
>   	self changed: #stateWindowsAlwaysActive.!
> 
> Item was changed:
> + ----- Method: PreferenceWizardMorph>>toggleWindowsRaiseOnClick (in category 'actions - buttons') -----
> - ----- Method: PreferenceWizardMorph>>toggleWindowsRaiseOnClick (in category 'buttons') -----
>   toggleWindowsRaiseOnClick
>   
>   	SystemWindow windowsRaiseOnClick: SystemWindow windowsRaiseOnClick not.
>   	self changed: #stateWindowsRaiseOnClick.!
> 
> Item was added:
> + SystemProgressMorph subclass: #PreferenceWizardProgressMorph
> + 	instanceVariableNames: ''
> + 	classVariableNames: ''
> + 	poolDictionaries: ''
> + 	category: 'PreferenceBrowser'!
> 
> Item was added:
> + ----- Method: PreferenceWizardProgressMorph class>>install (in category 'as yet unclassified') -----
> + install
> + 
> + 	self reset.
> + 	UniqueInstance := self basicNew initialize; yourself.!
> 
> Item was added:
> + ----- Method: PreferenceWizardProgressMorph>>createProgressBar (in category 'as yet unclassified') -----
> + createProgressBar
> + 	
> + 	^ SystemProgressBarMorph new 
> + 		extent: 500 at 20;
> + 		color: Color transparent;
> + 		barColor: Color white;
> + 		borderColor: Color white;
> + 		borderWidth: 2;
> + 		yourself
> + 		!
> 
> Item was added:
> + ----- Method: PreferenceWizardProgressMorph>>openInWorld (in category 'as yet unclassified') -----
> + openInWorld
> + 
> + 	"Ignore."!
> 
> Item was added:
> + ----- Method: PreferenceWizardProgressMorph>>reposition (in category 'as yet unclassified') -----
> + reposition
> + 
> + 	"Ignore."!
> 
> Item was added:
> + ----- Method: PreferenceWizardProgressMorph>>setDefaultParameters (in category 'as yet unclassified') -----
> + setDefaultParameters
> + 	"change the receiver's appareance parameters"
> + 
> + 	self
> + 		color: Color transparent;
> + 		borderWidth: 0;
> + 		font: (StrikeFont familyName: 'Darkmap DejaVu Sans' pointSize: 12);
> + 		textColor: Color white.!
> 
> 


More information about the Squeak-dev mailing list