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

commits at source.squeak.org commits at source.squeak.org
Thu Sep 12 14:25:06 UTC 2019


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