Tim Felgentreff uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-tfel.214.mcz ==================== Summary ==================== Name: EToys-tfel.214 Author: tfel Time: 30 August 2016, 4:11:08.66265 pm UUID: 82953579-44cf-1e48-8d45-aebe7863dc63 Ancestors: EToys-tfel.213 update release builder and theme to use Squeak hierarchy =============== Diff against EToys-tfel.213 =============== Item was changed: SystemOrganization addCategory: #'Etoys-Buttons'! SystemOrganization addCategory: #'Etoys-CustomEvents'! SystemOrganization addCategory: #'Etoys-Experimental'! SystemOrganization addCategory: #'Etoys-Outliner'! SystemOrganization addCategory: #'Etoys-Protocols'! SystemOrganization addCategory: #'Etoys-Protocols-Type Vocabularies'! SystemOrganization addCategory: #'Etoys-Scripting'! SystemOrganization addCategory: #'Etoys-Scripting Support'! SystemOrganization addCategory: #'Etoys-Scripting Tiles'! SystemOrganization addCategory: #'Etoys-Squeakland-BroomMorphs-Base'! SystemOrganization addCategory: #'Etoys-Squeakland-BroomMorphs-Connectors'! SystemOrganization addCategory: #'Etoys-Squeakland-EToys-Kedama'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Buttons'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Calendar'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Debugger'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Help'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Input'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Scripting'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Scripting Support'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Scripting Tiles'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-SpeechBubbles'! SystemOrganization addCategory: #'Etoys-Squeakland-Etoys-Tile Scriptors'! SystemOrganization addCategory: #'Etoys-Squeakland-Graphics-External'! SystemOrganization addCategory: #'Etoys-Squeakland-Graphics-Text'! SystemOrganization addCategory: #'Etoys-Squeakland-Graphics-Tools-Intersection'! SystemOrganization addCategory: #'Etoys-Squeakland-Graphics-Tools-Simplification'! SystemOrganization addCategory: #'Etoys-Squeakland-Graphics-Tools-Triangulation'! SystemOrganization addCategory: #'Etoys-Squeakland-MorphicExtras-AdditionalMorphs'! SystemOrganization addCategory: #'Etoys-Squeakland-MorphicExtras-Charts'! SystemOrganization addCategory: #'Etoys-Squeakland-MorphicExtras-Postscript Filters'! SystemOrganization addCategory: #'Etoys-Squeakland-MorphicExtras-WebCam'! SystemOrganization addCategory: #'Etoys-Squeakland-MorphicExtras-Widgets'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Basic'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Books'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Components'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Demo'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Experimental'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Games'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Games-Chess'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-GeeMail'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Kernel'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Mentoring'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Navigators'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-PartsBin'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-PDA'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Support'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Widgets'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Windows'! SystemOrganization addCategory: #'Etoys-Squeakland-Morphic-Worlds'! SystemOrganization addCategory: #'Etoys-Squeakland-Multilingual-Languages'! SystemOrganization addCategory: #'Etoys-Squeakland-Multilingual-Scanning'! SystemOrganization addCategory: #'Etoys-Squeakland-Multilingual-TextConversion'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-HTML-Formatter'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-HTML-Forms'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-HTML-Parser'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-HTML-Parser Entities'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-HTML-Tokenizer'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-MIME'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-TelNet WordNet'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-UI'! SystemOrganization addCategory: #'Etoys-Squeakland-Network-Url'! SystemOrganization addCategory: #'Etoys-Squeakland-Protocols-Type Vocabularies'! SystemOrganization addCategory: #'Etoys-Squeakland-Sound-Interface'! SystemOrganization addCategory: #'Etoys-Squeakland-Sound-Ogg'! SystemOrganization addCategory: #'Etoys-Squeakland-Sound-Scores'! SystemOrganization addCategory: #'Etoys-Squeakland-ST80-Morphic'! SystemOrganization addCategory: #'Etoys-Squeakland-SUnit'! SystemOrganization addCategory: #'Etoys-Squeakland-Sugar'! SystemOrganization addCategory: #'Etoys-Squeakland-System-Applications'! SystemOrganization addCategory: #'Etoys-Squeakland-System-Clipboard-Extended'! SystemOrganization addCategory: #'Etoys-Squeakland-System-Compiler'! SystemOrganization addCategory: #'Etoys-Squeakland-System-Exceptions Kernel'! SystemOrganization addCategory: #'Etoys-Squeakland-System-Support'! SystemOrganization addCategory: #'Etoys-Squeakland-Tools-Changes'! SystemOrganization addCategory: #'Etoys-Squeakland-Tools-Explorer'! SystemOrganization addCategory: #'Etoys-Squeakland-Tools-File Contents Browser'! SystemOrganization addCategory: #'Etoys-Squeakland-Tools-Process Browser'! SystemOrganization addCategory: #'Etoys-Squeakland-Tweak-Kedama-ObjectVectors'! SystemOrganization addCategory: #'Etoys-Squeakland-Tweak-Kedama-ParseTreeTransformer'! SystemOrganization addCategory: #'Etoys-Squeakland-Tweak-Kedama-ParseTree-AttributeDefinition'! SystemOrganization addCategory: #'Etoys-Stacks'! SystemOrganization addCategory: #'Etoys-StarSqueak'! SystemOrganization addCategory: #'Etoys-Support'! SystemOrganization addCategory: #'Etoys-Tests'! SystemOrganization addCategory: #'Etoys-Tile Scriptors'! SystemOrganization addCategory: #'Etoys-Widgets'! SystemOrganization addCategory: #'Etoys-Squeakland-Support'! SystemOrganization addCategory: #'Etoys-Squeakland-SISS-Serialization'! SystemOrganization addCategory: #'Etoys-OLPC-Display'! SystemOrganization addCategory: #'Etoys-ReleaseBuilder'! + SystemOrganization addCategory: #'Etoys-UserInterfaceTheme'! Item was changed: ----- Method: Debugger>>buttonRowForPreDebugWindow: (in category '*Etoys-Squeakland-initialize') ----- buttonRowForPreDebugWindow: aDebugWindow "Answer a morph that will serve as the button row in a pre-debug window." | aRow aButton quads aFont | aRow := AlignmentMorph newRow hResizing: #spaceFill. aRow beSticky. aRow on: #mouseDown send: #yourself to: self. "Avoid dragging window." aRow addMorphBack: AlignmentMorph newVariableTransparentSpacer. quads := OrderedCollection withAll: self preDebugButtonQuads. ((self interruptedContext selector == #doesNotUnderstand:) and: [Preferences eToyFriendly not]) ifTrue: [quads add: { 'Create'. #createMethod. #magenta. 'create the missing method' }]. aFont := Preferences eToyFriendly ifFalse: [Preferences standardButtonFont] ifTrue: [Preferences standardEToysButtonFont]. quads do: [:quad | aButton := SimpleButtonMorph new target: aDebugWindow. aButton color: Color transparent; borderWidth: 1. aButton actionSelector: quad second. aButton label: quad first font: aFont. aButton submorphs first color: (Color colorFrom: quad third). aButton setBalloonText: quad fourth. - Preferences alternativeWindowLook - ifTrue:[aButton borderWidth: 2; borderColor: #raised]. aRow addMorphBack: aButton. aRow addMorphBack: AlignmentMorph newVariableTransparentSpacer]. ^ aRow! Item was added: + UserInterfaceTheme subclass: #EtoysTheme + instanceVariableNames: '' + classVariableNames: '' + poolDictionaries: '' + category: 'Etoys-UserInterfaceTheme'! Item was added: + ----- Method: EtoysTheme class>>create (in category 'instance creation') ----- + create + "doIt: [self createDark apply.]" + + | themeName | + themeName := 'Etoys'. + ^ (self named: themeName) in: [:theme | + theme merge: (self named: 'Squeak') overwrite: true. + theme name: themeName. + + theme set: #background for: #MorphicProject to: (SolidFillStyle color: (Color r: 0.9 g: 0.9 b: 1)). + + + theme + set: #standardListFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #standardFlapFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: TextEmphasis bold emphasisCode); + + set: #eToysButtonFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #eToysFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: TextEmphasis bold emphasisCode); + set: #eToysCodeFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #eToysTitleFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 32 emphasis: 0); + set: #paintBoxButtonFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 9 emphasis: 0); + set: #standardMenuFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #windowTitleFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #balloonHelpFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #connectorsLabelFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #standardCodeFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0); + set: #standardSystemFont to: (TTCFont familyName: 'BitstreamVeraSans' pointSize: 15 emphasis: 0). + theme]! Item was changed: ----- Method: PDA>>openAsMorphIn: (in category 'initialization') ----- openAsMorphIn: window "PDA new openAsMorph openInWorld" "Create a pluggable version of all the morphs for a Browser in Morphic" | dragNDropFlag paneColor chooser | window color: Color black. paneColor := (Color r: 0.6 g: 1.0 b: 0.0). window model: self. - Preferences alternativeWindowLook ifTrue:[ - window color: Color white. - window paneColor: paneColor]. dragNDropFlag := Preferences browseWithDragNDrop. window addMorph: ((PluggableListMorph on: self list: #peopleListItems selected: #peopleListIndex changeSelected: #peopleListIndex: menu: #peopleMenu: keystroke: #peopleListKey:from:) enableDragNDrop: dragNDropFlag) frame: (0@0 corner: 0.3@0.25). window addMorph: ((chooser := PDAChoiceMorph new color: paneColor) contentsClipped: 'all'; target: self; actionSelector: #chooseFrom:categoryItem:; arguments: {chooser}; getItemsSelector: #categoryChoices) frame: (0@0.25 corner: 0.3@0.3). window addMorph: ((MonthMorph newWithModel: self) color: paneColor; extent: 148@109) frame: (0.3@0 corner: 0.7@0.3). window addMorph: (PDAClockMorph new color: paneColor; faceColor: (Color r: 0.4 g: 0.8 b: 0.6)) "To match monthMorph" frame: (0.7@0 corner: 1.0@0.3). window addMorph: ((PluggableListMorph on: self list: #toDoListItems selected: #toDoListIndex changeSelected: #toDoListIndex: menu: #toDoMenu: keystroke: #toDoListKey:from:) enableDragNDrop: dragNDropFlag) frame: (0@0.3 corner: 0.3@0.7). window addMorph: ((PluggableListMorph on: self list: #scheduleListItems selected: #scheduleListIndex changeSelected: #scheduleListIndex: menu: #scheduleMenu: keystroke: #scheduleListKey:from:) enableDragNDrop: dragNDropFlag) frame: (0.3@0.3 corner: 0.7@0.7). window addMorph: ((PluggableListMorph on: self list: #notesListItems selected: #notesListIndex changeSelected: #notesListIndex: menu: #notesMenu: keystroke: #notesListKey:from:) enableDragNDrop: dragNDropFlag) frame: (0.7@0.3 corner: 1@0.7). window addMorph: (PluggableTextMorph on: self text: #currentItemText accept: #acceptCurrentItemText: readSelection: #currentItemSelection menu: #currentItemMenu:) frame: (0@0.7 corner: 1@1). + window firstSubmorph color: paneColor. - Preferences alternativeWindowLook ifFalse:[ - window firstSubmorph color: paneColor. - ]. window updatePaneColors. window step. ^ window! Item was added: + ----- Method: Preferences class>>chooseConnectorsLabelFont (in category '*Etoys-Squeakland-fonts') ----- + chooseConnectorsLabelFont + "present a menu with the possible fonts for etoy textual code" + + self + chooseFontWithPrompt: 'Choose the connectors label font' translated + andSendTo: self + withSelector: #setConnectorsLabelFont: + highlight: self connectorsLabelFont! Item was added: + ----- Method: Preferences class>>connectorsLabelFont (in category '*Etoys-Squeakland-fonts') ----- + connectorsLabelFont + "Answer the font to use in the etoy environment to view textual code." + + ^ (UserInterfaceTheme current get: #connectorsLabelFont) + ifNil: [TextStyle defaultFont]! Item was changed: ----- Method: Preferences class>>eToysCodeFont (in category '*Etoys-Squeakland-fonts') ----- eToysCodeFont "Answer the font to use in the etoy environment to view textual code." + ^ (UserInterfaceTheme current get: #eToysCodeFont) + ifNil: [TextStyle defaultFont]! - ^ Parameters at: #eToysCodeFont ifAbsentPut: self standardEToysFont! Item was changed: ----- Method: Preferences class>>initializePreferencePanel:in: (in category '*Etoys-Squeakland-preferences panel') ----- initializePreferencePanel: aPanel in: aPasteUpMorph "Initialize the given Preferences panel. in the given pasteup, which is the top-level panel installed in the container window. Also used to reset it after some change requires reformulation" + | tabbedPalette controlPage aColor aFont maxEntriesPerCategory tabsMorph anExtent prefObjects | - | tabbedPalette controlPage aColor aFont maxEntriesPerCategory tabsMorph anExtent prefObjects cc | aPasteUpMorph removeAllMorphs. aFont := Preferences standardListFont. aColor := aPanel defaultBackgroundColor. tabbedPalette := TabbedPalette newSticky. tabbedPalette dropEnabled: false. (tabsMorph := tabbedPalette tabsMorph) color: aColor darker; highlightColor: Color red regularColor: Color brown darker darker. tabbedPalette on: #mouseDown send: #yourself to: #(). maxEntriesPerCategory := 0. self listOfCategories do: [:aCat | controlPage := AlignmentMorph newColumn beSticky color: aColor. controlPage on: #mouseDown send: #yourself to: #(). controlPage dropEnabled: false. - Preferences alternativeWindowLook ifTrue: - [cc := Color transparent. - controlPage color: cc]. controlPage borderColor: aColor; layoutInset: 4. (prefObjects := self preferenceObjectsInCategory: aCat) do: [:aPreference | | button | + button := aPreference representativeButtonWithColor: Color white inPanel: aPanel. - button := aPreference representativeButtonWithColor: cc inPanel: aPanel. button ifNotNil: [controlPage addMorphBack: button]]. controlPage setNameTo: aCat asString. aCat = #? ifTrue: [aPanel addHelpItemsTo: controlPage]. tabbedPalette addTabFor: controlPage font: aFont. aCat = 'search results' ifTrue: [(tabbedPalette tabNamed: aCat) setBalloonText: 'Use the ? category to find preferences by keyword; the results of your search will show up here' translated]. maxEntriesPerCategory := maxEntriesPerCategory max: prefObjects size]. tabbedPalette selectTabNamed: '?'. tabsMorph rowsNoWiderThan: aPasteUpMorph width. aPasteUpMorph on: #mouseDown send: #yourself to: #(). anExtent := aPasteUpMorph width @ (490 max: (25 + tabsMorph height + (24 * maxEntriesPerCategory))). aPasteUpMorph extent: anExtent. aPasteUpMorph color: aColor. aPasteUpMorph addMorphBack: tabbedPalette.! Item was added: + ----- Method: Preferences class>>setConnectorsLabelFont: (in category '*Etoys-Squeakland-fonts') ----- + setConnectorsLabelFont: aFont + "change the font used on buttons in the eToys environment" + + UserInterfaceTheme current + set: #connectorsLabelFont + to: aFont; + apply.! Item was changed: ----- Method: Preferences class>>setEToysButtonFontTo: (in category '*Etoys-Squeakland-fonts') ----- setEToysButtonFontTo: aFont "change the font used on buttons in the eToys environment" + UserInterfaceTheme current + set: #eToysButtonFont + to: aFont; + apply.! - Parameters at: #eToysButtonFont put: aFont! Item was changed: ----- Method: Preferences class>>setEToysCodeFontTo: (in category '*Etoys-Squeakland-fonts') ----- setEToysCodeFontTo: aFont "change the code font used in eToys environment" + UserInterfaceTheme current + set: #eToysCodeFont + to: aFont; + apply.! - Parameters at: #eToysCodeFont put: aFont! Item was changed: ----- Method: Preferences class>>standardEToysButtonFont (in category '*Etoys-Squeakland-fonts') ----- standardEToysButtonFont "Answer the font to be used on buttons in the eToys environment" + ^ (UserInterfaceTheme current get: #eToysButtonFont) + ifNil: [TextStyle defaultFont]! - ^ Parameters at: #eToysButtonFont ifAbsentPut: [self standardButtonFont]! Item was changed: ----- Method: Preferences class>>standardEToysCodeFont (in category '*Etoys-Squeakland-fonts') ----- standardEToysCodeFont "Answer the font to be used for textual code in the eToys environment" + ^ (UserInterfaceTheme current get: #eToysCodeFont) + ifNil: [TextStyle defaultFont]! - ^ Parameters at: #eToysCodeFont ifAbsentPut: [self standardEToysFont]! Item was changed: ----- Method: PreferencesPanel>>findPreferencesMatching: (in category 'initialization') ----- findPreferencesMatching: incomingTextOrString "find all preferences matching incomingTextOrString" + | result aList aPalette controlPage | - | result aList aPalette controlPage cc | result := incomingTextOrString asString asLowercase. result := result asLowercase withBlanksTrimmed. result isEmptyOrNil ifTrue: [^ self]. aList := Preferences allPreferenceObjects select: [:aPreference | (aPreference name includesSubstring: result caseSensitive: false) or: [aPreference helpString includesSubstring: result caseSensitive: false]]. aPalette := (self containingWindow ifNil: [^ self]) findDeeplyA: TabbedPalette. aPalette ifNil: [^ self]. aPalette selectTabNamed: 'search results'. aPalette currentPage ifNil: [^ self]. "bkwd compat" controlPage := aPalette currentPage. controlPage removeAllMorphs. controlPage addMorph: (StringMorph contents: ('Preferences matching "', self searchString, '"') font: Preferences standardEToysButtonFont). - Preferences alternativeWindowLook ifTrue:[ - cc := Color transparent. - controlPage color: cc]. aList := aList asSortedCollection: [:a :b | a name < b name]. aList do: [:aPreference | | button | + button := aPreference representativeButtonWithColor: Color white inPanel: self. - button := aPreference representativeButtonWithColor: cc inPanel: self. button ifNotNil: [controlPage addMorphBack: button]]. aPalette world startSteppingSubmorphsOf: aPalette! Item was added: + ----- Method: QuickGuideMorph class>>cleanUp (in category 'as yet unclassified') ----- + cleanUp + + self indexPage: nil.! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>clearCaches (in category 'scripts') ----- + clearCaches + + ObjectScanner new. "clear ObjectScanner's class pool" + ExternalSettings registerClient: ServerDirectory. + #('Morphic-UserObjects' 'EToy-UserObjects' 'Morphic-Imported' 'UserObjects') + do: [:each | SystemOrganization removeSystemCategory: each]. + super clearCaches.! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>configureDesktop (in category 'scripts') ----- + configureDesktop + + super configureDesktop. + self loadDefaultForms. + self setDisplayExtent: 1200@900. + EtoysTheme create apply.! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>prepareEnvironment (in category 'preparing') ----- + prepareEnvironment + | directory entries projectNames | + super prepareEnvironment. + projectNames := #('Gallery' 'Tutorials' 'Home'). + directory := FileDirectory on: Smalltalk imagePath. + entries := FileList2 projectOnlySelectionMethod: directory entries. + projectNames + do: [:projectName | (entries + anySatisfy: [:each | (Project parseProjectFileName: each first) first = projectName]) + ifFalse: [^ self error: projectName , ' is not found']]. + DeferredTask := [ProjectLoading openFromImagePath: 'Home'].! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>releaseRepository (in category 'accessing') ----- + releaseRepository + + ^ super releaseRepository! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>setPreferences (in category 'scripts') ----- + setPreferences + + super setPreferences. + Preferences cambridge. + Preferences allPreferenceObjects do: [:each | + each defaultValue: each preferenceValue]. + + Preferences + disable: #alternativeWindowBoxesLook; + enable: #magicHalos; + enable: #mouseOverHalos; + enable: #roundedScrollBarLook; + enable: #roundedWindowCorners; + enable: #showAdvancedNavigatorButtons; + disable: #honorDesktopCmdKeys; + disable: #warnIfNoChangesFile; + disable: #warnIfNoSourcesFile; + enable: #unlimitedPaintArea; + enable: #fastDragWindowForMorphic; + enable: #noviceMode; + disable: #generalizedYellowButtonMenu; + disable: #showAdvancedNavigatorButtons; + disable: #signProjectFiles; + disable: #warnIfNoChangesFile; + disable: #warnIfChangesFileReadOnly; + disable: #warnIfNoSourcesFile. + Morph preferredCornerRadius: 8. + PluggableButtonMorph roundedButtonCorners: true. + FillInTheBlankMorph roundedDialogCorners: true. + SystemWindow roundedWindowCorners: true. + Preferences restoreDefaultFontsForSqueakland. + Cursor useBiggerCursors: true. + TrashCanMorph + slideDismissalsToTrash: true; + preserveTrash: true. + SugarNavigatorBar + showHideButton: false; + showSugarNavigator: true.! Item was added: + ----- Method: ReleaseBuilderSqueakland class>>versionString (in category 'accessing') ----- + versionString + "Result format is specified in SystemVersion." + ^ 'Etoys{1}.{2}' format: {self releaseVersionMajor. self releaseVersionMinor}! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>buildInitialScreen (in category 'squeakland') ----- - buildInitialScreen - "ReleaseBuilderSqueakland new buildInitialScreen" - - QuickGuideMorph preloadIndexPage. - - World - submorphsDo: [:m | m delete]. - Flaps disableGlobalFlaps: false. - Flaps enableEToyFlaps. - - ProjectLoading loadFromImagePath: 'Tutorials'. - ProjectLoading loadFromImagePath: 'Gallery'. - ProjectLoading loadFromImagePath: 'Home'. - - (World submorphs select: [:e | e isMemberOf: ProjectViewMorph]) do: [:e | e delete]. - Project current - setThumbnail: (Project home ifNotNilDo: [:p | p thumbnail]).! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>checkCopyright (in category 'utilities') ----- - checkCopyright - | inNotice inImage inFile dir | - dir := FileDirectory on: Smalltalk imagePath. - [inFile := (dir readOnlyFileNamed: 'NOTICE') wantsLineEndConversion: true; contentsOfEntireFile] - on: FileDoesNotExistException do: [:ex | - dir = FileDirectory default - ifTrue: [dir := dir containingDirectory. ex retry] - ifFalse: [self error: 'NOTICE file not found']]. - inFile = Utilities copyrightNotice ifFalse: [self error: 'NOTICE file does not match image']. - inNotice := ((Utilities copyrightNotice findTokens: Character cr) - select: [:s | s includesSubString: '(c)']) - collect: [:s | s withBlanksTrimmed]. - inNotice := inNotice atAll: #(1 4 5). - inImage := Smalltalk copyright findTokens: Character cr. - inNotice = inImage ifFalse: [self error: 'Copyright declarations do not match'].! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>cleanUpChanges (in category 'utilities') ----- - cleanUpChanges - "Clean up the change sets" - - "ReleaseBuilder new cleanUpChanges" - - | projectChangeSetNames | - - "Delete all changesets except those currently used by existing projects." - projectChangeSetNames := Project allSubInstances collect: [:proj | proj changeSet name]. - ChangeSorter removeChangeSetsNamedSuchThat: - [:cs | (projectChangeSetNames includes: cs) not]. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>cleanUpEtoys (in category 'utilities') ----- - cleanUpEtoys - "ReleaseBuilder new cleanUpEtoys" - - - StandardScriptingSystem removeUnreferencedPlayers. - self class loadDefaultForms. - Project removeAllButCurrent. - - #('Morphic-UserObjects' 'EToy-UserObjects' 'Morphic-Imported' 'UserObjects') - do: [:each | SystemOrganization removeSystemCategory: each]! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>cleanupForSqueakland (in category 'squeakland') ----- - cleanupForSqueakland - "Perform various image cleanups in preparation for making a Squeakland OLPC image." - "ReleaseBuilderSqueakland new cleanupForSqueakland" - - self - initialCleanup; - installPreferences; - finalStripping; - installReleaseSpecifics; - finalCleanup. - OLPCVirtualScreen virtualScreenExtent: nil. - Display isVirtualScreen ifFalse: [ - OLPCVirtualScreen install - ]. - Display newDepth: 32. - Project current displayDepth: 32. - Vocabulary initialize. - PartsBin rebuildIconsWithProgress. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>finalCleanup (in category 'utilities') ----- - finalCleanup - "ReleaseBuilderSqueakland new finalCleanup" - - self class deleteAllWindows. - self class setDisplayExtent: 1200@900. - - "Smalltalk condenseChanges." - Preferences disable: #warnIfNoChangesFile. - Preferences disable: #warnIfChangesFileReadOnly. - Preferences disable: #warnIfNoSourcesFile. - Smalltalk zapAllOtherProjects. - Smalltalk forgetDoIts. - - DataStream initialize. - Behavior flushObsoleteSubclasses. - - "The pointer to currentMethod is not realy needed (anybody care to fix this) and often holds on to obsolete bindings" - MethodChangeRecord allInstancesDo: [:each | each noteNewMethod: nil]. - - self cleanUpEtoys. - SmalltalkImage current fixObsoleteReferences. - - self cleanUpChanges. - ChangeSet current clear. - ChangeSet current name: 'Unnamed1'. - - Smalltalk flushClassNameCache. - 3 timesRepeat: [ - Smalltalk garbageCollect. - Symbol condenseNewSymbols. - ].! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>finalStripping (in category 'utilities') ----- - finalStripping - "ReleaseBuilderSqueakland new finalStripping" - - #(#Helvetica #Palatino #Courier #ComicSansMS ) - do: [:n | TextConstants - removeKey: n - ifAbsent: []]. - QuickGuideMorph indexPage: nil. - Smalltalk - at: #Player - ifPresent: [:superCls | superCls - allSubclassesDo: [:cls | - cls isSystemDefined - ifFalse: [cls removeFromSystem]. - cls := nil]]. - Smalltalk garbageCollect. - SystemOrganization removeEmptyCategories. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>fixObsoleteReferences (in category 'utilities') ----- - fixObsoleteReferences - "ReleaseBuilder new fixObsoleteReferences" - - | informee obsoleteBindings obsName realName realClass | - Preference allInstances do: [:each | - informee := each instVarNamed: #changeInformee. - ((informee isKindOf: Behavior) - and: [informee isObsolete]) - ifTrue: [ - Transcript show: each name; cr. - each instVarNamed: #changeInformee put: (Smalltalk at: (informee name copyReplaceAll: 'AnObsolete' with: '') asSymbol)]]. - - CompiledMethod allInstances do: [:method | - obsoleteBindings := method literals select: [:literal | - literal isVariableBinding - and: [literal value isBehavior] - and: [literal value isObsolete]]. - obsoleteBindings do: [:binding | - obsName := binding value name. - Transcript show: obsName; cr. - realName := obsName copyReplaceAll: 'AnObsolete' with: ''. - realClass := Smalltalk at: realName asSymbol ifAbsent: [UndefinedObject]. - binding isSpecialWriteBinding - ifTrue: [binding privateSetKey: binding key value: realClass] - ifFalse: [binding key: binding key value: realClass]]]. - - - Behavior flushObsoleteSubclasses. - Smalltalk garbageCollect; garbageCollect. - SystemNavigation default obsoleteBehaviors size > 0 - ifTrue: [SystemNavigation default inspect]! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>initialCleanup (in category 'utilities') ----- - initialCleanup - "ReleaseBuilder new initialCleanup" - - Browser initialize. - ChangeSorter removeChangeSetsNamedSuchThat: - [:cs| cs name ~= ChangeSet current name]. - - "Perform various image cleanups in preparation for making a Squeak gamma release candidate image." - - Undeclared removeUnreferencedKeys. - StandardScriptingSystem initialize. - Object reInitializeDependentsFields. - - "(Object classPool at: #DependentsFields) size > 1 ifTrue: [self error:'Still have dependents']." - "Undeclared isEmpty ifFalse: [self error:'Please clean out Undeclared']." - - Browser initialize. - ObjectScanner new. "clear ObjectScanner's class pool" - - self cleanUpChanges. - ChangeSet current clear. - ChangeSet current name: 'Unnamed1'. - Smalltalk garbageCollect. - - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - - Smalltalk garbageCollect. - ScheduledControllers := nil. - Smalltalk garbageCollect. - - SMSqueakMap default purge.! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>installPreferences (in category 'utilities') ----- - installPreferences - "Install desired preferences for the release." - "self new installPreferences" - | th | - Preferences cambridge. - Preferences allPreferenceObjects do: [:each | - each defaultValue: each preferenceValue]. - th := UserInterfaceTheme named: 'Squeak'. - MorphicProject defaultFill: (SolidFillStyle color: (Color r: 0.9 g: 0.9 b: 1)). - th set: #background for: #MorphicProject to: MorphicProject defaultFill. - UserInterfaceTheme current: th. - ActiveWorld fillStyle: MorphicProject defaultFill. - "ActiveWorld removeProperty: #hasCustomBackground." - - Preferences - disable: #alternativeWindowBoxesLook; - enable: #magicHalos; - enable: #mouseOverHalos; - enable: #roundedScrollBarLook; - enable: #roundedWindowCorners; - enable: #showAdvancedNavigatorButtons; - disable: #honorDesktopCmdKeys; - disable: #warnIfNoChangesFile; - disable: #warnIfNoSourcesFile; - enable: #unlimitedPaintArea; - enable: #fastDragWindowForMorphic; - enable: #noviceMode; - disable: #generalizedYellowButtonMenu; - disable: #showAdvancedNavigatorButtons; - disable: #signProjectFiles. - Morph preferredCornerRadius: 8. - PluggableButtonMorph roundedButtonCorners: true. - FillInTheBlankMorph roundedDialogCorners: true. - SystemWindow roundedWindowCorners: true. - Preferences restoreDefaultFontsForSqueakland. - Cursor useBiggerCursors: true. - TrashCanMorph - slideDismissalsToTrash: true; - preserveTrash: true. - SugarNavigatorBar - showHideButton: false; - showSugarNavigator: true. - - "Make fonts larger and the image thus more friendly" - "Preferences restoreDefaultFonts. - #(BalloonHelp Button Code HaloLabel List Menu System) do: [:fnt | - | standardFont | - standardFont := Preferences perform: ('standard', fnt, 'Font') asSymbol. - Preferences - perform: ('set', fnt, 'FontTo:') asSymbol - with: (standardFont textStyle fontOfPointSize: standardFont pointSize + 3)]. - Preferences setWindowTitleFontTo: (Preferences standardSystemFont textStyle fontOfPointSize: Preferences standardSystemFont pointSize)."! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>installReleaseSpecifics (in category 'utilities') ----- - installReleaseSpecifics - "ReleaseBuilderSqueakland new installReleaseSpecifics" - - ExternalSettings registerClient: ServerDirectory.! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>installVersionInfo (in category 'utilities') ----- - installVersionInfo - "ReleaseBuilderSqueakland new installVersionInfo" - - | newVersion | - " highestUpdate := SystemVersion current highestUpdate. - (self confirm: 'Reset highest update (' , highestUpdate printString , ')?') - ifTrue: [SystemVersion current highestUpdate: 0]. - " - newVersion := SystemVersion current version copyReplaceAll: 'Squeak' with: 'Etoys'. - (newVersion includesSubString: '5.1') ifTrue: ["this can go away if we release 6.0" - newVersion := newVersion copyReplaceAll: '5.1' with: '6.0'. - (newVersion includesSubString: 'beta') ifFalse: [ - newVersion := newVersion copyReplaceAll: '6.0' with: '6.0beta']]. - SystemVersion newVersion: newVersion. - "self inform: 'System version is now:', String cr, SystemVersion current asString"! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>makeSqueaklandRelease (in category 'squeakland') ----- - makeSqueaklandRelease - "self new makeSqueaklandRelease" - - self - makeSqueaklandReleasePhasePrepare; makeSqueaklandReleasePhaseStripping; makeSqueaklandReleasePhaseFinalSettings; makeSqueaklandReleasePhaseCleanup! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>makeSqueaklandReleasePhaseCleanup (in category 'squeakland') ----- - makeSqueaklandReleasePhaseCleanup - "ReleaseBuilder new makeSqueaklandReleasePhaseCleanup" - - Browser initialize. - ChangeSorter - removeChangeSetsNamedSuchThat: [:cs | cs name ~= ChangeSet current name]. - ChangeSet current clear. - ChangeSet current name: 'Unnamed1'. - Smalltalk garbageCollect. - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - "Remove existing player references" - References keys do: [:k | References removeKey: k]. - Smalltalk garbageCollect. - ScheduledControllers := nil. - Behavior flushObsoleteSubclasses. - Smalltalk - garbageCollect; - garbageCollect. - SystemNavigation default obsoleteBehaviors isEmpty - ifFalse: [self inform: 'Still have obsolete behaviors!!']. - - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - Smalltalk fixObsoleteReferences. - "Smalltalk abandonTempNames." - Smalltalk zapAllOtherProjects. - Smalltalk forgetDoIts. - Smalltalk flushClassNameCache. - 3 timesRepeat: - [Smalltalk garbageCollect. - Symbol compactSymbolTable]! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>makeSqueaklandReleasePhaseFinalSettings (in category 'squeakland') ----- - makeSqueaklandReleasePhaseFinalSettings - "ReleaseBuilder new makeSqueaklandReleasePhaseFinalSettings" - - | serverName serverURL serverDir updateServer highestUpdate newVersion | - - "ProjectLauncher splashMorph: (FileDirectory default readOnlyFileNamed: 'scripts\SqueaklandSplash.morph') fileInObjectAndCode." - - "Dump all morphs so we don't hold onto anything" - "World submorphsDo:[:m| m delete]." - - #( - (honorDesktopCmdKeys false) - (warnIfNoChangesFile false) - (warnIfNoSourcesFile false) - (showDirectionForSketches true) - (menuColorFromWorld false) - (unlimitedPaintArea true) - (useGlobalFlaps false) - (mvcProjectsAllowed false) - (projectViewsInWindows false) - (automaticKeyGeneration true) - (securityChecksEnabled true) - (showSecurityStatus false) - (startInUntrustedDirectory true) - (warnAboutInsecureContent false) - (promptForUpdateServer false) - (fastDragWindowForMorphic false) - - (externalServerDefsOnly true) - (expandedFormat false) - (allowCelesteTell false) - (eToyFriendly true) - (eToyLoginEnabled true) - (magicHalos true) - (mouseOverHalos true) - (biggerHandles false) - (selectiveHalos true) - (includeSoundControlInNavigator true) - (readDocumentAtStartup true) - (preserveTrash true) - (slideDismissalsToTrash true) - - ) do:[:spec| - Preferences setPreference: spec first toValue: spec last]. - "Workaround for bug" - Preferences enable: #readDocumentAtStartup. - - World color: (Color r: 0.9 g: 0.9 b: 1.0). - - "Clear all server entries" - ServerDirectory serverNames do: [:each | ServerDirectory removeServerNamed: each]. - SystemVersion current resetHighestUpdate. - - "Add the squeakalpha update stream" - serverName := 'Squeakalpha'. - serverURL := 'squeakalpha.org'. - serverDir := serverURL , '/'. - - updateServer := ServerDirectory new. - updateServer - server: serverURL; - directory: 'updates/'; - altUrl: serverDir; - user: 'sqland'; - password: nil. - Utilities updateUrlLists addFirst: {serverName. {serverDir. }.}. - - "Add the squeakland update stream" - serverName := 'Squeakland'. - serverURL := 'squeakland.org'. - serverDir := serverURL , '/'. - - updateServer := ServerDirectory new. - updateServer - server: serverURL; - directory: 'public_html/updates/'; - altUrl: serverDir. - Utilities updateUrlLists addFirst: {serverName. {serverDir. }.}. - - highestUpdate := SystemVersion current highestUpdate. - (self confirm: 'Reset highest update (' , highestUpdate printString , ')?') - ifTrue: [SystemVersion current highestUpdate: 0]. - - newVersion := FillInTheBlank request: 'New version designation:' initialAnswer: 'Squeakland 3.8.' , highestUpdate printString. - SystemVersion newVersion: newVersion. - (self confirm: SystemVersion current asString, ' - Is this the correct version designation? - If not, choose no, and fix it.') ifFalse: [^ self]. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>makeSqueaklandReleasePhasePrepare (in category 'squeakland') ----- - makeSqueaklandReleasePhasePrepare - "ReleaseBuilder new makeSqueaklandReleasePhasePrepare" - - Undeclared removeUnreferencedKeys. - StandardScriptingSystem initialize. - Preferences initialize. - "(Object classPool at: #DependentsFields) size > 1 ifTrue: [self error:'Still have dependents']." - "Undeclared isEmpty ifFalse: [self error:'Please clean out Undeclared']." - - "Dump all projects" - Project allSubInstancesDo:[:prj| prj == Project current ifFalse:[Project deletingProject: prj]]. - - "Set new look so we don't need older fonts later" - "StandardScriptingSystem applyNewEToyLook." - - Browser initialize. - ScriptingSystem deletePrivateGraphics. - ChangeSorter removeChangeSetsNamedSuchThat: - [:cs| cs name ~= ChangeSet current name]. - ChangeSet current clear. - ChangeSet current name: 'Unnamed1'. - Smalltalk garbageCollect. - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - "Remove existing player references" - References keys do:[:k| References removeKey: k]. - - Smalltalk garbageCollect. - ScheduledControllers := nil. - Smalltalk garbageCollect. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>makeSqueaklandReleasePhaseStripping (in category 'squeakland') ----- - makeSqueaklandReleasePhaseStripping - "ReleaseBuilder new makeSqueaklandReleasePhaseStripping" - - #(#Helvetica #Palatino #Courier #ComicSansMS ) - do: [:n | TextConstants - removeKey: n - ifAbsent: []]. - Smalltalk - at: #Player - ifPresent: [:superCls | superCls - allSubclassesDo: [:cls | - cls isSystemDefined - ifFalse: [cls removeFromSystem]. - cls := nil]]. - Smalltalk garbageCollect. - "Smalltalk discardFFI; discardSUnit; discardSpeech; yourself." - "discardMVC;" - SystemOrganization removeEmptyCategories. - Smalltalk garbageCollect. - ScheduledControllers := nil. - Behavior flushObsoleteSubclasses. - Smalltalk garbageCollect; garbageCollect. - DataStream initialize. - Smalltalk fixObsoleteReferences! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>prepareReleaseImage (in category 'utilities') ----- - prepareReleaseImage - "Perform various image cleanups in preparation for making a Squeak gamma release candidate image." - "ReleaseBuilder new prepareReleaseImage" - - Utilities authorInitialsPerSe ifNotEmpty: [ - (self confirm: 'Are you sure you want to prepare a release image? - This will perform several irreversible cleanups on this image.') - ifFalse: [^ self]]. - - self - initialCleanup; - installPreferences; - finalStripping; - installReleaseSpecifics; - finalCleanup; - installVersionInfo. - - DeferredTask := [ProjectLoading openFromImagePath: 'Home'].! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>setupServerDirectoryForSqueakland (in category 'squeakland') ----- - setupServerDirectoryForSqueakland - - | d | - " - ReleaseBuilderSqueakland new setupServerDirectoryForSqueakland - " - Utilities authorName: nil. - - d := (Smalltalk classNamed: 'DAVMultiUserServerDirectory') on: 'http://content.squeakland.org/showcase/'. - d altUrl: 'http://content.squeakland.org/showcase/'. - d moniker: 'My Squeakland'. - d acceptsUploads: true. - d useDefaultAccount: true. - d origDirectory: '/showcase'. - d setupSelector: #setupPersonalDirectory:. - ServerDirectory inImageServers at: 'My Squeakland' put: d. - - d := (Smalltalk classNamed: 'DAVMultiUserServerDirectory') on: 'http://content.squeakland.org/showcase/'. - d altUrl: 'http://content.squeakland.org/showcase/'. - d moniker: 'Squeakland Showcase'. - d user: 'etoys'. - d useDefaultAccount: true. - d acceptsUploads: false. - d instVarNamed: 'passwordHolder' put: 'kaeuqs'. - ServerDirectory inImageServers at: 'Squeakland Showcase' put: d. - EtoysUtilities loggedIn: false. - - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>setupUpdateStreamForSqueakland (in category 'squeakland') ----- - setupUpdateStreamForSqueakland - - | base url d | - base := 'etoys.squeak.org/'. - url := 'http://', base, 'updates'. - d := (Smalltalk classNamed: 'DAVMultiUserServerDirectory') on: url. - d altUrl: url. - d moniker: 'Etoys Updates'. - d groupName: 'etoys'. - Utilities classPool at: #UpdateUrlLists put: nil. - ServerDirectory inImageServers keysDo: [:k | ServerDirectory inImageServers removeKey: k]. - ServerDirectory inImageServers at: d moniker put: d. - Utilities updateUrlLists add: {d moniker. {base}}. - - "SystemVersion newVersion: 'etoys4.1'." - "SystemVersion current resetHighestUpdate." - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>testPrerequired (in category 'squeakland') ----- - testPrerequired - | directory entries projectNames | - projectNames := #('Gallery' 'Tutorials' 'Home'). - directory := FileDirectory on: Smalltalk imagePath. - entries := FileList2 projectOnlySelectionMethod: directory entries. - projectNames - do: [:projectName | (entries - anySatisfy: [:each | (Project parseProjectFileName: each first) first = projectName]) - ifFalse: [^ self error: projectName , ' is not found']]. - self checkCopyright. - "Test if the screen resolution is correct" - DisplayScreen actualScreenSize = (800 @ 600) - ifFalse: [^ self error: 'The Etoys window be 800 @ 600']. - Display extent = (1200 @ 900) - ifFalse: [^ self error: 'The virtual screen extent should be 1200 @ 900']. - ! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>updateAll (in category 'utilities') ----- - updateAll - | logFile logWindow | - logWindow := Transcript openLabel: self name. - Utilities updateFromServer. - Transcript cr; show: '-----'. - Transcript cr; show: SmalltalkImage current systemInformationString. - logFile := FileDirectory default forceNewFileNamed: self name , '.log'. - [logFile nextPutAll: logWindow contents text] - ensure: [logFile close]! Item was removed: - ----- Method: ReleaseBuilderSqueakland>>updateGettext (in category 'squeakland') ----- - updateGettext - "ReleaseBuilderSqueakland new updateGettext" - "Export gettext template and import all translation in po/" - GetTextExporter exportTemplate. - GetTextImporter importAll.! Item was removed: - ----- Method: SystemDictionary>>makeSqueaklandReleasePhaseCleanup (in category '*Etoys-Squeakland-squeakland') ----- - makeSqueaklandReleasePhaseCleanup - "Smalltalk makeSqueaklandReleasePhaseCleanup" - - Browser initialize. - ChangeSorter removeChangeSetsNamedSuchThat: - [:cs| cs name ~= ChangeSet current name]. - ChangeSet current clear. - ChangeSet current name: 'Unnamed' translated , '1'. - Smalltalk garbageCollect. - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - "Remove existing player references" - References keys do:[:k| References removeKey: k]. - - Smalltalk garbageCollect. - ScheduledControllers := nil. - Behavior flushObsoleteSubclasses. - Smalltalk garbageCollect; garbageCollect. - Smalltalk obsoleteBehaviors isEmpty ifFalse:[self error:'Still have obsolete behaviors']. - - "Reinitialize DataStream; it may hold on to some zapped entitities" - DataStream initialize. - Smalltalk fixObsoleteReferences. - Smalltalk abandonTempNames. - Smalltalk zapAllOtherProjects. - Smalltalk forgetDoIts. - Smalltalk flushClassNameCache. - 3 timesRepeat: [ - Smalltalk garbageCollect. - Symbol compactSymbolTable. - ]. - ! |
Free forum by Nabble | Edit this page |