The Trunk: PreferenceBrowser-mt.92.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: PreferenceBrowser-mt.92.mcz

commits-2
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@10 corner: 20@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@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@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@20 corner: 10@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@0 corner: 10@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@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@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@0 corner: 10@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@20 corner: 0@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@0 corner: 20@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@40 corner: 150@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@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.!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: PreferenceBrowser-mt.92.mcz

marcel.taeumel



Am 12.09.2019 16:25:15 schrieb [hidden email] <[hidden email]>:

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@10 corner: 20@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@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@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@20 corner: 10@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@0 corner: 10@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@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@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@0 corner: 10@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@20 corner: 0@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@0 corner: 20@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="">
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@40 corner: 150@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@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.!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: PreferenceBrowser-mt.92.mcz

David T. Lewis
In reply to this post by commits-2
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, [hidden email] 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@10 corner: 20@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@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@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@20 corner: 10@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@0 corner: 10@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@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@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@0 corner: 10@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@20 corner: 0@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@0 corner: 20@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@40 corner: 150@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@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.!
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: PreferenceBrowser-mt.92.mcz

Chris Muller-3
In reply to this post by marcel.taeumel
Great idea to make these common developer tools more accessible to newcomers, well done.
The startup wizard has come of age for this release.  :)