SystemOrganization addCategory: #'Helvetia-Loader'! Object subclass: #CHHelvetiaLoader instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Helvetia-Loader'! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 10/16/2009 11:53'! defineDesign UIThemeStandardSqueak beCurrent. World submorphs do: [ :each | (each isKindOf: SketchMorph) ifTrue: [ each delete ] ]! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 10/16/2009 11:53'! defineFonts | tinyFont codeFont baseFont boldFont | tinyFont := LogicalFont familyName: 'DejaVu Sans' fallbackFamilyNames: nil pointSize: 8 stretchValue: 0 weightValue: 400 slantValue: 0. codeFont := LogicalFont familyName: 'DejaVu Sans Mono' fallbackFamilyNames: nil pointSize: 9 stretchValue: 0 weightValue: 400 slantValue: 0. baseFont := LogicalFont familyName: 'DejaVu Sans' fallbackFamilyNames: nil pointSize: 10 stretchValue: 0 weightValue: 400 slantValue: 0. boldFont := LogicalFont familyName: 'DejaVu Sans' fallbackFamilyNames: nil pointSize: 11 stretchValue: 0 weightValue: 600 slantValue: 0. Preferences setBalloonHelpFontTo: tinyFont. Preferences setButtonFontTo: baseFont. Preferences setCodeFontTo: codeFont. Preferences setHaloLabelFontTo: baseFont. Preferences setListFontTo: baseFont. Preferences setMenuFontTo: baseFont. Preferences setSystemFontTo: baseFont. Preferences setWindowTitleFontTo: boldFont! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 10/16/2009 11:53'! defineSettings Preferences enable: #scrollBarsNarrow. Preferences disable: #scrollBarsWithoutMenuButton. Preferences disable: #useNewDiffToolsForMC. Preferences disable: #duplicateAllControlAndAltKeys. Preferences disable: #fadedBackgroundWindows. Preferences disable: #windowAnimation! ! !CHHelvetiaLoader class methodsFor: 'initialization' stamp: 'lr 5/19/2009 10:23'! initialize self validateInstallation. self packages do: [ :each | each size = 1 ifTrue: [ self compilerClass evaluate: each first for: self logged: false ] ifFalse: [ each first isSymbol ifFalse: [ self load: each first version: each second ] ifTrue: [ (Preferences preferenceAt: each first) preferenceValue: each second ] ] ] displayingProgress: 'Loading Helvetia'! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 5/18/2009 15:35'! load: anUrlString version: aString | repository group version versions | ProgressNotification signal: '' extra: aString. repository := MCHttpRepository location: anUrlString user: '' password: ''. group := MCRepositoryGroup default. (group includes: repository) ifFalse: [ group addRepository: repository ] ifTrue: [ repository := group repositories detect: [ :each | each = repository] ]. repository cacheAllFileNamesDuring: [ versions := repository allVersionNames asArray select: [ :each | each beginsWith: aString ]. versions sort: [ :a :b | (a copyAfterLast: $.) asNumber < (b copyAfterLast: $.) asNumber ]. repository versionReaderForFileNamed: versions last , '.mcz' do: [ :reader | version := reader version. version isNil ifTrue: [ self error: 'Unable to load ' , aString printString ]. [ [ version load ] on: UndeclaredVariableWarning do: [ :err | err resume: true ] ] on: Notification do: [ :err | err resume ]. version workingCopy repositoryGroup addRepository: repository ] ]! ! !CHHelvetiaLoader class methodsFor: 'initialization' stamp: 'lr 10/16/2009 12:02'! packages ^ #( " refactoring tools " ('http://www.squeaksource.com/AST' 'AST-lr.173') ('http://www.squeaksource.com/RefactoringEngine' 'Refactoring-Core-lr.59') ('http://www.squeaksource.com/RefactoringEngine' 'Refactoring-Spelling-lr.7') ('http://source.lukas-renggli.ch/omnibrowser/' 'VB-Regex-sd.9') " smacc " ('http://www.squeaksource.com/SmaccDevelopment' 'SmaCC-lr.13') ('http://www.squeaksource.com/SmaccDevelopment' 'SmaCCDev-lr.21') " new compiler " ('http://www.squeaksource.com/AST/' 'NewParser-marcus.denker.7') ('http://www.squeaksource.com/NewCompiler/' 'NewCompiler-marcusdenker.305') (#compileUseNewCompiler false) " omnibrowser " ('http://source.lukas-renggli.ch/omnibrowser/' 'OmniBrowser') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Standard') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Morphic') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Refactory') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Regex') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Tools') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-Shout') ('http://source.lukas-renggli.ch/omnibrowser/' 'OB-SUnitIntegration') ('ToolSet default: StandardToolSet') " shout and ecompletion" ('http://source.lukas-renggli.ch/unsorted/' 'RoelTyper') ('http://source.lukas-renggli.ch/unsorted/' 'Shout') ('http://source.lukas-renggli.ch/unsorted/' 'ECompletion') ('http://source.lukas-renggli.ch/unsorted/' 'ECompletionOmniBrowser') " actual tools " ('http://source.lukas-renggli.ch/petit' 'PetitParser') ('http://source.lukas-renggli.ch/helvetia' 'QuasiQuote') ('http://source.lukas-renggli.ch/helvetia' 'Helvetia-Core') (#compileUseNewCompiler true) ('http://source.lukas-renggli.ch/helvetia' 'Cutie-Helvetia') ('http://source.lukas-renggli.ch/helvetia' 'LanguageBoxes') ('2 timesRepeat: [ LBSmalltalkGrammar recompileAll ]') (#compileUseLanguageBoxes true) ('http://source.lukas-renggli.ch/helvetia' 'Cutie-LanguageBoxes') " settings " ('self defineDesign') ('self defineSettings') ('self defineFonts'))! ! !CHHelvetiaLoader class methodsFor: 'public' stamp: 'lr 10/16/2009 11:54'! validateInstallation (SystemVersion current version beginsWith: 'Pharo') ifFalse: [ self notify: 'Helvetia might not work with this image: ' , SystemVersion current version , '. Please consider using a Pharo image.' ]. (SystemVersion current highestUpdate <= 10471) ifFalse: [ self notify: 'Helvetia might not work with this image: ' , SystemVersion current version , '. Please consider using a Pharo 1.0beta image.' ]! ! CHHelvetiaLoader initialize!