--- a/AbstractLauncherApplication.st Fri Nov 15 15:27:04 2002 +0100
+++ b/AbstractLauncherApplication.st Fri Nov 15 17:23:26 2002 +0100
@@ -20,6 +20,35 @@
category:'Interface-Smalltalk'
!
+AbstractSettingsApplication subclass:#CompilerSettingsAppl
+ instanceVariableNames:'modifiedChannel stcCompilationSelection catchMethodRedefs
+ allowQualifiedNames warnDollar warnOldStyle stcCompilation
+ fullDebugSupport warnCommonMistakes warnUnderscore keepSource
+ constantFolding fullHistoryUpdate warnCompatibility
+ constantFoldingOptions historyLines warnings warnSTX allowDollar
+ allowReservedWordsAsSelectors immutableArrays
+ allowOldStyleAssignment compileLazy allowUnderscore
+ allowDolphinExtensions warnUnusedVars keepSourceSelection
+ allowSqueakExtensions loadBinaries justInTimeCompilation
+ canLoadBinaries constantFoldingSelection stcCompilationList
+ catchClassRedefs stcCompilerSettings enableUnderscore
+ enableDollar'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:AbstractLauncherApplication
+!
+
+AbstractSettingsApplication subclass:#FontSettingsAppl
+ instanceVariableNames:'modifiedChannel filter allOfThem labelDef buttonDef listDef
+ menuDef textDef allFontLabelHolder buttonsFontLabelHolder
+ textFontLabelHolder labelsFontLabelHolder listsFontLabelHolder
+ menusFontLabelHolder allLabel buttonsLabel textLabel labelLabel
+ listsLabel menuLabel'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:AbstractLauncherApplication
+!
+
AbstractSettingsApplication subclass:#KbdMappingSettingsAppl
instanceVariableNames:'modifiedChannel selectedRawKey macroTextHolder
selectedFunctionKey labelTextHolder functionKeyList rawKeyList
@@ -45,6 +74,20 @@
privateIn:AbstractLauncherApplication
!
+AbstractSettingsApplication subclass:#MemorySettingsAppl
+ instanceVariableNames:'modifiedChannel'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:AbstractLauncherApplication
+!
+
+AbstractSettingsApplication subclass:#PlainSettingsAppl
+ instanceVariableNames:'modifiedChannel'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:AbstractLauncherApplication
+!
+
ApplicationModel subclass:#SettingsDialog
instanceVariableNames:'canvasHolder appList selectionHolder selection requestor
colOfInstances'
@@ -61,6 +104,13 @@
privateIn:AbstractLauncherApplication
!
+AbstractSettingsApplication subclass:#SystemMessageSettingsAppl
+ instanceVariableNames:'modifiedChannel classInfos vmInfo vmErrors displayErrors'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:AbstractLauncherApplication
+!
+
AbstractSettingsApplication subclass:#ToolsSettingsAppl
instanceVariableNames:'useNewVersionDiffBrowser transcriptBufferSize useNewInspector
showClockInLauncher useNewChangesBrowser useNewFileBrowser
@@ -1692,6 +1742,2087 @@
]
! !
+!AbstractLauncherApplication::CompilerSettingsAppl class methodsFor:'defaults'!
+
+constantFoldingOptions
+
+ ^ #( nil #level1 #level2 #full )
+!
+
+constantFoldingStrings
+
+ ^ #('disabled' 'level1 (always safe)' 'level2 (usually safe)' 'full')
+!
+
+keepSourceOptions
+
+ ^ #( keep reference absReference sourceReference discard )
+!
+
+keepSourceStrings
+
+ ^ #('Keep as String' 'Reference to Filename' 'Reference to Full Path' 'Append and Ref in `st.src''' 'Discard' )
+!
+
+stcCompilationDemoStrings
+
+ ^ #('never')
+!
+
+stcCompilationFullVersionStrings
+
+ ^ #('always' 'primitive code only' 'never')
+!
+
+stcCompilationOptions
+
+ ^ #( always default never)
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::CompilerSettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::CompilerSettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::CompilerSettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Compiler Settings'
+ #name: 'Compiler Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 616 602)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#CheckBoxSpec
+ #label: 'Catch Method Redefinitions'
+ #name: 'CatchMethodRedefinitions'
+ #layout: #(#LayoutFrame 5 0 5 0 250 0 30 0)
+ #model: #catchMethodRedefs
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Catch Class Redefinitions'
+ #name: 'CatchClassRedefinitions'
+ #layout: #(#LayoutFrame 257 0 5 0 7 1 30 0)
+ #model: #catchClassRedefs
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Keep History Line in Methods'
+ #name: 'KeepHistoryLineinMethods'
+ #layout: #(#LayoutFrame 5 0 30 0 250 0 55 0)
+ #model: #historyLines
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Keep Full Class History'
+ #name: 'KeepFullClassHistory'
+ #layout: #(#LayoutFrame 257 0 30 0 7 1 55 0)
+ #enableChannel: #hasHistoryManager
+ #model: #fullHistoryUpdate
+ #translateLabel: true
+ )
+ #(#LabelSpec
+ #label: 'FileIn Source Mode:'
+ #name: 'FileInSourceModeLabel'
+ #layout: #(#LayoutFrame 239 0 60 0 425 0 82 0)
+ #translateLabel: true
+ #adjust: #right
+ )
+ #(#PopUpListSpec
+ #label: 'PopUp List'
+ #name: 'KeepSourceSelection'
+ #layout: #(#LayoutFrame 425 0 60 0 -5 1 82 0)
+ #tabable: true
+ #model: #keepSourceSelection
+ #menu: #keepSource
+ #useIndex: true
+ )
+ #(#DividerSpec
+ #name: 'Separator1'
+ #layout: #(#LayoutFrame 0 0.0 90 0 0 1 93 0)
+ )
+ #(#CheckBoxSpec
+ #label: 'Lazy Compilation when Autoloading'
+ #name: 'LazyCompilationWhenAutoloading'
+ #layout: #(#LayoutFrame 5 0 100 0 250 0 125 0)
+ #model: #compileLazy
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'If Present, Load Binary Objects when Autoloading'
+ #name: 'LoadBinaryObjectsWhenAutoloading'
+ #layout: #(#LayoutFrame 5 0 125 0 331 0 150 0)
+ #enableChannel: #canLoadBinaries
+ #model: #loadBinaries
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Just in Time Compilation to Machine Code'
+ #name: 'JustInTimeCompilation'
+ #layout: #(#LayoutFrame 5 0 150 0 289 0 175 0)
+ #model: #justInTimeCompilation
+ #translateLabel: true
+ )
+ #(#DividerSpec
+ #name: 'Separator2'
+ #layout: #(#LayoutFrame 0 0.0 180 0 0 1.0 183 0)
+ )
+ #(#ActionButtonSpec
+ #label: 'Stc Compilation Parameters...'
+ #name: 'StcCompilationParametersButton'
+ #layout: #(#LayoutFrame 5 0 195 0 217 0 217 0)
+ #translateLabel: true
+ #model: #stcCompilerSettings
+ )
+ #(#LabelSpec
+ #label: 'Stc Compilation to Machine Code'
+ #name: 'StcCompilationToMachineCodeLabel'
+ #layout: #(#LayoutFrame 220 0 195 0 425 0 217 0)
+ #translateLabel: true
+ #adjust: #right
+ )
+ #(#PopUpListSpec
+ #label: 'PopUp List'
+ #name: 'StcCompilation'
+ #layout: #(#LayoutFrame 425 0 195 0 -5 1 217 0)
+ #tabable: true
+ #model: #stcCompilationSelection
+ #enableChannel: #canLoadBinaries
+ #menu: #stcCompilationList
+ #useIndex: true
+ )
+ #(#DividerSpec
+ #name: 'Separator3'
+ #layout: #(#LayoutFrame 0 0.0 225 0 0 1.0 228 0)
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow Underscore in Identifiers'
+ #name: 'AllowUnderscoreInIdentifiers'
+ #layout: #(#LayoutFrame 5 0 240 0 249 0 262 0)
+ #model: #allowUnderscore
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow Dollar in Identifiers'
+ #name: 'AllowDollarInIdentifiers'
+ #layout: #(#LayoutFrame 5 0 265 0 249 0 287 0)
+ #model: #allowDollar
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow VW3 QualifiedNames'
+ #name: 'AllowVW3QualifiedNames'
+ #layout: #(#LayoutFrame 5 0 290 0 249 0 312 0)
+ #model: #allowQualifiedNames
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow Squeak Extensions'
+ #name: 'AllowSqueakExtensions'
+ #layout: #(#LayoutFrame 5 0 315 0 249 0 337 0)
+ #model: #allowSqueakExtensions
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow Dolphin Extensions'
+ #name: 'AllowDolphinExtensions'
+ #layout: #(#LayoutFrame 5 0 340 0 249 0 362 0)
+ #model: #allowDolphinExtensions
+ #translateLabel: true
+ )
+ #(#PopUpListSpec
+ #label: 'PopUp List'
+ #name: 'ConstantFolding'
+ #layout: #(#LayoutFrame 425 0 238 0 -5 1 260 0)
+ #tabable: true
+ #model: #constantFoldingSelection
+ #menu: #constantFolding
+ #useIndex: true
+ )
+ #(#LabelSpec
+ #label: 'Constant Folding:'
+ #name: 'ConstantFoldingLabel'
+ #layout: #(#LayoutFrame 250 0 240 0 425 0 262 0)
+ #translateLabel: true
+ #adjust: #right
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow OldStyle Assignment (_)'
+ #name: 'AllowOldStyleAssignment'
+ #layout: #(#LayoutFrame 257 0 265 0 501 0 287 0)
+ #model: #allowOldStyleAssignment
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Allow Reserved Words as Selector (self)'
+ #name: 'AllowReservedWordsAsSelector'
+ #layout: #(#LayoutFrame 257 0 290 0 -5 1 312 0)
+ #model: #allowReservedWordsAsSelectors
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Full Debug Info'
+ #name: 'FullDebugInfo'
+ #layout: #(#LayoutFrame 257 0 315 0 501 0 337 0)
+ #model: #fullDebugSupport
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Literal Arrays are Immutable'
+ #name: 'LiteralArraysAreImmutable'
+ #layout: #(#LayoutFrame 257 0 340 0 501 0 362 0)
+ #model: #immutableArrays
+ #translateLabel: true
+ )
+ #(#DividerSpec
+ #name: 'Separator4'
+ #layout: #(#LayoutFrame 0 0.0 365 0 0 1.0 368 0)
+ )
+ #(#CheckBoxSpec
+ #label: 'Warnings'
+ #name: 'Warnings'
+ #layout: #(#LayoutFrame 5 0 375 0 249 0 397 0)
+ #model: #warnings
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'ST/X Extensions'
+ #name: 'STXExtensions'
+ #layout: #(#LayoutFrame 25 0 400 0 245 0 422 0)
+ #enableChannel: #warnings
+ #model: #warnSTX
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Underscores in Identifiers'
+ #name: 'UnderscoresInIdentifiers'
+ #layout: #(#LayoutFrame 25 0 425 0 245 0 447 0)
+ #enableChannel: #enableUnderscore
+ #model: #warnUnderscore
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Dollars in Identifiers'
+ #name: 'DollarsInIdentifiers'
+ #layout: #(#LayoutFrame 25 0 450 0 245 0 472 0)
+ #enableChannel: #enableDollar
+ #model: #warnDollar
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Unused Method Variables'
+ #name: 'UnusedMethodVariables'
+ #layout: #(#LayoutFrame 25 0 475 0 245 0 497 0)
+ #enableChannel: #warnings
+ #model: #warnUnusedVars
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'OldStyle Assignment'
+ #name: 'OldStyleAssignment'
+ #layout: #(#LayoutFrame 257 0 400 0 475 0 422 0)
+ #enableChannel: #warnings
+ #model: #warnOldStyle
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Common Mistakes'
+ #name: 'CommonMistakes'
+ #layout: #(#LayoutFrame 257 0 425 0 475 0 447 0)
+ #enableChannel: #warnings
+ #model: #warnCommonMistakes
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Possible Incompatibilities'
+ #name: 'PossibleIncompatibilities'
+ #layout: #(#LayoutFrame 257 0 450 0 474 0 472 0)
+ #enableChannel: #warnings
+ #model: #warnCompatibility
+ #translateLabel: true
+ )
+ #(#DividerSpec
+ #name: 'Separator5'
+ #layout: #(#LayoutFrame 0 0.0 500 0 0 1.0 503 0)
+ )
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 125 22)
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl methodsFor:'actions'!
+
+doCancel
+
+ self isPartOfSettinsDialog ifTrue:[
+ self loadRequest.
+ ].
+ self closeRequest.
+!
+
+evaluateModified
+
+ self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/compilerSettings.html'].
+!
+
+loadRequest
+
+ self allowDollar value:(Compiler allowDollarInIdentifier ? false).
+ self allowDolphinExtensions value:(Compiler allowDolphinExtensions ? false).
+ self allowOldStyleAssignment value:(Compiler allowOldStyleAssignment ? false).
+ self allowQualifiedNames value:(Compiler allowQualifiedNames ? false).
+ self allowReservedWordsAsSelectors value:(Compiler allowReservedWordsAsSelectors ? false).
+ self allowSqueakExtensions value:(Compiler allowSqueakExtensions ? false).
+ self allowUnderscore value:(Compiler allowUnderscoreInIdentifier ? false).
+ self catchClassRedefs value:(Class catchClassRedefinitions ? false).
+ self catchMethodRedefs value:(Class catchMethodRedefinitions ? false).
+ self compileLazy value:(Autoload compileLazy ? false).
+ self constantFoldingSelection value:(self class constantFoldingOptions indexOf:Compiler foldConstants ifAbsent:3).
+ self supportsJustInTimeCompilation ifTrue:[
+ self fullDebugSupport value:(ObjectMemory fullSingleStepSupport ? false).
+ ] ifFalse:[
+ self fullDebugSupport value:(Compiler lineNumberInfo == #full).
+ ].
+ self hasHistoryManager ifTrue:[
+ self fullHistoryUpdate value:(HistoryManager fullHistoryUpdate ? false).
+ ] ifFalse:[
+ self fullHistoryUpdate value:false.
+ ].
+ self historyLines value:self hasHistoryManager.
+ self immutableArrays value:(Compiler arraysAreImmutable ? false).
+ self supportsJustInTimeCompilation ifTrue:[
+ self justInTimeCompilation value:(ObjectMemory justInTimeCompilation ? false).
+ ] ifFalse:[
+ self justInTimeCompilation value:false.
+ ].
+ self keepSourceSelection value:(self class keepSourceOptions indexOf:ClassCategoryReader sourceMode ifAbsent:1).
+ self canLoadBinaries ifTrue:[
+ self loadBinaries value:Smalltalk loadBinaries.
+ ] ifFalse:[
+ self loadBinaries value:false
+ ].
+ self thisIsADemoVersion ifTrue:[
+ self stcCompilationSelection value:(self class stcCompilationOptions indexOf:(Compiler stcCompilation) ifAbsent:2).
+ ] ifFalse:[
+ self stcCompilationSelection value:2.
+ ].
+ self warnCommonMistakes value:(Compiler warnCommonMistakes ? false).
+ self warnCompatibility value:(Compiler warnPossibleIncompatibilities ? false).
+ self warnDollar value:(Compiler warnDollarInIdentifier ? false).
+ self warnOldStyle value:(Compiler warnOldStyleAssignment ? false).
+ self warnSTX value:(Compiler warnSTXSpecials ? false).
+ self warnUnderscore value:(Compiler warnUnderscoreInIdentifier ? false).
+ self warnUnusedVars value:(Compiler warnUnusedVars ? false).
+ self warnings value:(Compiler warnings ? false).
+ self modifiedChannel value:false.
+!
+
+saveRequest
+ | result |
+
+ (self hasUnsavedChanges) ifTrue:[
+ result := self confirmWithCancel:(resources string:'Save changed Compiler Settings ?').
+ result isNil ifTrue:[ ^ false].
+ result ifTrue:[
+ self saveSettings.
+ ] ifFalse:[
+ self loadRequest.
+ ]
+ ].
+ ^ true
+!
+
+saveSettings
+
+ HistoryManager notNil ifTrue:[
+ HistoryManager fullHistoryUpdate:self fullHistoryUpdate value.
+ self historyLines value ifTrue:[
+ HistoryManager activate
+ ] ifFalse:[
+ HistoryManager deactivate
+ ].
+ ].
+ Class catchMethodRedefinitions:self catchMethodRedefs value.
+ Class catchClassRedefinitions:self catchClassRedefs value.
+ ClassCategoryReader sourceMode:(self class keepSourceOptions at:self keepSourceSelection value).
+ Compiler warnings:self warnings value.
+ Compiler warnSTXSpecials:self warnSTX value.
+ Compiler warnOldStyleAssignment:self warnOldStyle value.
+ Compiler warnUnderscoreInIdentifier:self warnUnderscore value.
+ Compiler warnDollarInIdentifier:self warnDollar value.
+ Compiler warnCommonMistakes:self warnCommonMistakes value.
+ Compiler warnPossibleIncompatibilities:self warnCompatibility value.
+ Compiler warnUnusedVars:self warnUnusedVars value.
+ Compiler allowUnderscoreInIdentifier:self allowUnderscore value.
+ Compiler allowDollarInIdentifier:self allowDollar value.
+ Compiler allowSqueakExtensions:self allowSqueakExtensions value.
+ Compiler allowDolphinExtensions:self allowDolphinExtensions value.
+ Compiler allowQualifiedNames:self allowQualifiedNames value.
+ Compiler allowOldStyleAssignment:self allowOldStyleAssignment value.
+ Compiler allowReservedWordsAsSelectors:self allowReservedWordsAsSelectors value.
+
+ Compiler arraysAreImmutable:self immutableArrays value.
+ self fullDebugSupport value ifTrue:[
+ Compiler lineNumberInfo:#full.
+ ] ifFalse:[
+ Compiler lineNumberInfo:true
+ ].
+
+ Compiler stcCompilation:(self class stcCompilationOptions at:self stcCompilationSelection value).
+ Compiler foldConstants:(self class constantFoldingOptions at:self constantFoldingSelection value).
+
+ self supportsJustInTimeCompilation ifTrue:[
+ | justInTime |
+ justInTime := self justInTimeCompilation value.
+ justInTime ifTrue:[
+ Method allInstancesDo:[:m | m checked:false].
+ ].
+ ObjectMemory justInTimeCompilation:justInTime.
+ ObjectMemory fullSingleStepSupport:self fullDebugSupport value.
+ ].
+ Autoload compileLazy:self compileLazy value.
+ Smalltalk loadBinaries:self loadBinaries value.
+ self modifiedChannel value:false.
+!
+
+stcCompilerSettings
+
+ AbstractLauncherApplication::LauncherDialogs stcCompilerSettings
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl methodsFor:'aspects'!
+
+allowDollar
+
+ allowDollar isNil ifTrue:[
+ allowDollar := (Compiler allowDollarInIdentifier ? false) asValue.
+ allowDollar onChangeSend:#evaluateModified to:self.
+ allowDollar addDependent:self.
+ ].
+ ^ allowDollar.
+!
+
+allowDolphinExtensions
+
+ allowDolphinExtensions isNil ifTrue:[
+ allowDolphinExtensions := (Compiler allowDolphinExtensions ? false) asValue.
+ allowDolphinExtensions onChangeSend:#evaluateModified to:self.
+ ].
+ ^ allowDolphinExtensions.
+!
+
+allowOldStyleAssignment
+
+ allowOldStyleAssignment isNil ifTrue:[
+ allowOldStyleAssignment := (Compiler allowOldStyleAssignment ? false) asValue.
+ allowOldStyleAssignment onChangeSend:#evaluateModified to:self.
+ ].
+ ^ allowOldStyleAssignment.
+!
+
+allowQualifiedNames
+
+ allowQualifiedNames isNil ifTrue:[
+ allowQualifiedNames := (Compiler allowQualifiedNames ? false) asValue.
+ allowQualifiedNames onChangeSend:#evaluateModified to:self.
+ ].
+ ^ allowQualifiedNames.
+!
+
+allowReservedWordsAsSelectors
+
+ allowReservedWordsAsSelectors isNil ifTrue:[
+ allowReservedWordsAsSelectors := (Compiler allowReservedWordsAsSelectors ? false) asValue.
+ allowReservedWordsAsSelectors onChangeSend:#evaluateModified to:self.
+ ].
+ ^ allowReservedWordsAsSelectors.
+!
+
+allowSqueakExtensions
+
+ allowSqueakExtensions isNil ifTrue:[
+ allowSqueakExtensions := (Compiler allowSqueakExtensions ? false) asValue.
+ allowSqueakExtensions onChangeSend:#evaluateModified to:self.
+ ].
+ ^ allowSqueakExtensions.
+!
+
+allowUnderscore
+
+ allowUnderscore isNil ifTrue:[
+ allowUnderscore := (Compiler allowUnderscoreInIdentifier ? false) asValue.
+ allowUnderscore onChangeSend:#evaluateModified to:self.
+ allowUnderscore addDependent:self.
+ ].
+ ^ allowUnderscore.
+!
+
+canLoadBinaries
+
+ canLoadBinaries isNil ifTrue:[
+ canLoadBinaries := ObjectFileLoader notNil and:[ObjectFileLoader canLoadObjectFiles].
+ ].
+ ^ canLoadBinaries.
+!
+
+catchClassRedefs
+
+ catchClassRedefs isNil ifTrue:[
+ catchClassRedefs := (Class catchClassRedefinitions ? false) asValue.
+ catchClassRedefs onChangeSend:#evaluateModified to:self.
+ ].
+ ^ catchClassRedefs.
+!
+
+catchMethodRedefs
+
+ catchMethodRedefs isNil ifTrue:[
+ catchMethodRedefs := (Class catchMethodRedefinitions ? false) asValue.
+ catchMethodRedefs onChangeSend:#evaluateModified to:self.
+ ].
+ ^ catchMethodRedefs.
+!
+
+compileLazy
+
+ compileLazy isNil ifTrue:[
+ compileLazy := (Autoload compileLazy ? false) asValue.
+ compileLazy onChangeSend:#evaluateModified to:self.
+ ].
+ ^ compileLazy.
+!
+
+constantFolding
+
+ constantFolding isNil ifTrue:[
+ constantFolding := (resources array:(self class constantFoldingStrings)) asList.
+ ].
+ ^ constantFolding.
+!
+
+constantFoldingOptions
+
+ constantFoldingOptions isNil ifTrue:[
+ constantFoldingOptions := self class constantFoldingOptions.
+ ].
+ ^ constantFoldingOptions.
+!
+
+constantFoldingSelection
+
+ constantFoldingSelection isNil ifTrue:[
+ | index |
+ index := self class constantFoldingOptions indexOf:Compiler foldConstants ifAbsent:3.
+ constantFoldingSelection := index asValue.
+ constantFoldingSelection onChangeSend:#evaluateModified to:self.
+ ].
+ ^ constantFoldingSelection.
+!
+
+enableDollar
+
+ enableDollar isNil ifTrue:[
+ enableDollar := true asValue.
+ enableDollar addDependent:self.
+ ].
+ ^ enableDollar.
+!
+
+enableUnderscore
+ "automatically generated by UIPainter ..."
+
+ "*** the code below creates a default model when invoked."
+ "*** (which may not be the one you wanted)"
+ "*** Please change as required and accept it in the browser."
+ "*** (and replace this comment by something more useful ;-)"
+
+ enableUnderscore isNil ifTrue:[
+ enableUnderscore := true asValue.
+"/ if your app needs to be notified of changes, uncomment one of the lines below:
+"/ enableUnderscore addDependent:self.
+"/ enableUnderscore onChangeSend:#enableUnderscoreChanged to:self.
+ ].
+ ^ enableUnderscore.
+!
+
+fullDebugSupport
+
+ fullDebugSupport isNil ifTrue:[
+ self supportsJustInTimeCompilation ifTrue:[
+ fullDebugSupport := (ObjectMemory fullSingleStepSupport ? false) asValue.
+ ] ifFalse:[
+ fullDebugSupport := (Compiler lineNumberInfo == #full) asValue.
+ ].
+ fullDebugSupport onChangeSend:#evaluateModified to:self.
+ ].
+ ^ fullDebugSupport.
+!
+
+fullHistoryUpdate
+
+ fullHistoryUpdate isNil ifTrue:[
+ self hasHistoryManager ifTrue:[
+ fullHistoryUpdate := (HistoryManager fullHistoryUpdate ? false) asValue.
+ ] ifFalse:[
+ fullHistoryUpdate := false asValue.
+ ].
+ fullHistoryUpdate onChangeSend:#evaluateModified to:self.
+ ].
+ ^ fullHistoryUpdate.
+!
+
+historyLines
+
+ historyLines isNil ifTrue:[
+ historyLines := self hasHistoryManager asValue.
+ historyLines onChangeSend:#evaluateModified to:self.
+ ].
+ ^ historyLines.
+!
+
+immutableArrays
+
+ immutableArrays isNil ifTrue:[
+ immutableArrays := (Compiler arraysAreImmutable ? false) asValue.
+ immutableArrays onChangeSend:#evaluateModified to:self.
+ ].
+ ^ immutableArrays.
+!
+
+justInTimeCompilation
+
+ justInTimeCompilation isNil ifTrue:[
+ self supportsJustInTimeCompilation ifTrue:[
+ justInTimeCompilation := (ObjectMemory justInTimeCompilation ? false) asValue.
+ ] ifFalse:[
+ justInTimeCompilation := false asValue.
+ ].
+ justInTimeCompilation onChangeSend:#evaluateModified to:self.
+ ].
+ ^ justInTimeCompilation.
+!
+
+keepSource
+
+ keepSource isNil ifTrue:[
+ keepSource := (resources array:(self class keepSourceStrings)) asList.
+ ].
+ ^ keepSource.
+!
+
+keepSourceSelection
+
+ keepSourceSelection isNil ifTrue:[
+ keepSourceSelection := (self class keepSourceOptions indexOf:ClassCategoryReader sourceMode ifAbsent:1) asValue.
+ keepSourceSelection onChangeSend:#evaluateModified to:self.
+ ].
+ ^ keepSourceSelection.
+!
+
+loadBinaries
+
+ loadBinaries isNil ifTrue:[
+ self canLoadBinaries ifTrue:[
+ loadBinaries:= Smalltalk loadBinaries asValue
+ ] ifFalse:[
+ loadBinaries:= false asValue
+ ].
+ loadBinaries onChangeSend:#evaluateModified to:self.
+ ].
+ ^ loadBinaries.
+!
+
+modifiedChannel
+
+ modifiedChannel isNil ifTrue:[
+ modifiedChannel := false asValue.
+ ].
+ ^ modifiedChannel
+!
+
+stcCompilationList
+
+ stcCompilationList isNil ifTrue:[
+ self thisIsADemoVersion ifTrue:[
+ stcCompilationList := (resources array:(self class stcCompilationDemoStrings)) asList.
+ ] ifFalse:[
+ stcCompilationList := (resources array:(self class stcCompilationFullVersionStrings)) asList.
+ ]
+ ].
+ ^ stcCompilationList.
+!
+
+stcCompilationSelection
+
+ stcCompilationSelection isNil ifTrue:[
+ self thisIsADemoVersion ifTrue:[
+ stcCompilationSelection := (self class stcCompilationOptions indexOf:(Compiler stcCompilation) ifAbsent:2) asValue.
+ ] ifFalse:[
+ stcCompilationSelection := 2 asValue.
+ ].
+ stcCompilationSelection onChangeSend:#evaluateModified to:self.
+ ].
+ ^ stcCompilationSelection.
+!
+
+warnCommonMistakes
+
+ warnCommonMistakes isNil ifTrue:[
+ warnCommonMistakes := (Compiler warnCommonMistakes ? false) asValue.
+ warnCommonMistakes onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnCommonMistakes.
+!
+
+warnCompatibility
+
+ warnCompatibility isNil ifTrue:[
+ warnCompatibility := (Compiler warnPossibleIncompatibilities ? false) asValue.
+ warnCompatibility onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnCompatibility.
+!
+
+warnDollar
+
+ warnDollar isNil ifTrue:[
+ warnDollar := (Compiler warnDollarInIdentifier ? false) asValue.
+ warnDollar onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnDollar.
+!
+
+warnOldStyle
+
+ warnOldStyle isNil ifTrue:[
+ warnOldStyle := (Compiler warnOldStyleAssignment ? false) asValue.
+ warnOldStyle onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnOldStyle.
+!
+
+warnSTX
+
+ warnSTX isNil ifTrue:[
+ warnSTX := (Compiler warnSTXSpecials ? false) asValue.
+ warnSTX onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnSTX.
+!
+
+warnUnderscore
+
+ warnUnderscore isNil ifTrue:[
+ warnUnderscore := (Compiler warnUnderscoreInIdentifier ? false) asValue.
+ warnUnderscore onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnUnderscore.
+!
+
+warnUnusedVars
+
+ warnUnusedVars isNil ifTrue:[
+ warnUnusedVars := (Compiler warnUnusedVars ? false) asValue.
+ warnUnusedVars onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnUnusedVars.
+!
+
+warnings
+
+ warnings isNil ifTrue:[
+ warnings := (Compiler warnings ? false) asValue.
+ warnings addDependent:self.
+ warnings changed.
+ warnings onChangeSend:#evaluateModified to:self.
+ ].
+ ^ warnings.
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ "stub code automatically generated - please change as required"
+
+ changedObject == self warnings ifTrue:[
+ self warnings value ifTrue:[
+ self enableUnderscore value:self allowUnderscore value.
+ self enableDollar value:self allowDollar value.
+ ] ifFalse:[
+ self enableUnderscore value:false.
+ self enableDollar value:false.
+ ].
+ ^ self
+ ].
+ (changedObject == self allowDollar or:[changedObject == self allowUnderscore]) ifTrue:[
+ self warnings changed.
+ ^ self
+ ].
+
+ super update:something with:aParameter from:changedObject
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl methodsFor:'initialization & release'!
+
+closeRequest
+
+ self saveRequest ifFalse:[
+ ^ self
+ ].
+
+ ^ super closeRequest.
+!
+
+initialize
+
+ resources := self class owningClass classResources.
+ super initialize
+! !
+
+!AbstractLauncherApplication::CompilerSettingsAppl methodsFor:'queries'!
+
+hasHistoryManager
+
+ ^ HistoryManager notNil and:[HistoryManager isLoaded and:[HistoryManager isActive]]
+!
+
+hasUnsavedChanges
+
+ ^
+ (
+ ((HistoryManager fullHistoryUpdate ? false) ~= self fullHistoryUpdate value) or:[
+ ((Class catchMethodRedefinitions ? false) ~= self catchMethodRedefs value) or:[
+ ((Class catchClassRedefinitions ? false) ~= self catchClassRedefs value) or:[
+ ((ClassCategoryReader sourceMode) ~= (self class keepSourceOptions at:self keepSourceSelection value)) or:[
+ ((Compiler warnings ? false) ~= self warnings value) or:[
+ ((Compiler warnSTXSpecials ? false) ~= self warnSTX value) or:[
+ ((Compiler warnOldStyleAssignment ? false) ~= self warnOldStyle value) or:[
+ ((Compiler warnUnderscoreInIdentifier ? false) ~= self warnUnderscore value) or:[
+ ((Compiler warnDollarInIdentifier ? false) ~= self warnDollar value) or:[
+ ((Compiler warnCommonMistakes ? false) ~= self warnCommonMistakes value) or:[
+ ((Compiler warnPossibleIncompatibilities ? false) ~= self warnCompatibility value) or:[
+ ((Compiler warnUnusedVars ? false) ~= self warnUnusedVars value) or:[
+ ((Compiler allowUnderscoreInIdentifier ? false) ~= self allowUnderscore value) or:[
+ ((Compiler allowDollarInIdentifier ? false) ~= self allowDollar value) or:[
+ ((Compiler allowSqueakExtensions ? false) ~= self allowSqueakExtensions value) or:[
+ ((Compiler allowDolphinExtensions ? false) ~= self allowDolphinExtensions value) or:[
+ ((Compiler allowQualifiedNames ? false) ~= self allowQualifiedNames value) or:[
+ ((Compiler allowOldStyleAssignment ? false) ~= self allowOldStyleAssignment value) or:[
+ ((Compiler allowReservedWordsAsSelectors ? false) ~= self allowReservedWordsAsSelectors value) or:[
+ ((Compiler arraysAreImmutable ? false) ~= self immutableArrays value) or:[
+ ((self supportsJustInTimeCompilation value ifTrue:[ObjectMemory fullSingleStepSupport ? false] ifFalse:[Compiler lineNumberInfo == #full]) ~= self fullDebugSupport value) or:[
+ ((Compiler stcCompilation) ~= (self class stcCompilationOptions at:self stcCompilationSelection value)) or:[
+ ((Compiler foldConstants) ~= (self class constantFoldingOptions at:self constantFoldingSelection value)) or:[
+ ((ObjectMemory justInTimeCompilation ? false) ~= self justInTimeCompilation value) or:[
+ ((Autoload compileLazy ? false) ~= self compileLazy value) or:[
+ ((Smalltalk loadBinaries ? false) ~= self loadBinaries value) or:[
+ ((self hasHistoryManager) ~= self historyLines value) ]]]]]]]]]]]]]]]]]]]]]]]]]])
+!
+
+supportsJustInTimeCompilation
+
+ ^ ObjectMemory supportsJustInTimeCompilation
+!
+
+thisIsADemoVersion
+
+ ^ Smalltalk releaseIdentification = 'ST/X_free_demo_vsn'
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl class methodsFor:'defaults'!
+
+widgetList
+
+ ^ #(
+ 'All'
+ 'Labels'
+ 'Buttons'
+ 'Lists'
+ 'Menus'
+ 'Edited Text'
+ )
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl class methodsFor:'instance creation'!
+
+fontForEncoding:encodingMatch
+
+ | inst |
+
+ inst := self new.
+ inst encodingMatch:encodingMatch.
+ self initialize.
+ self open.
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::FontSettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Font Settings'
+ #name: 'Font Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 490 353)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ViewSpec
+ #name: 'AllBox'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 50 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'All'
+ #name: 'All'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Label'
+ #name: 'AllFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #allFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildAllFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'ChangeAll'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeAllFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator1'
+ #layout: #(#LayoutFrame 0 0.0 50 0 0 1.0 54 0)
+ )
+ #(#ViewSpec
+ #name: 'LabelsBox'
+ #layout: #(#LayoutFrame 0 0.0 55 0 0 1.0 105 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Labels'
+ #name: 'Labels'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Labels'
+ #name: 'LabelsFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #labelsFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildLabelsFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'ChangeLabels'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeLabelsFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator2'
+ #layout: #(#LayoutFrame 0 0.0 105 0 0 1.0 109 0)
+ )
+ #(#ViewSpec
+ #name: 'ButtonsBox'
+ #layout: #(#LayoutFrame 0 0.0 110 0 0 1.0 160 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Buttons'
+ #name: 'Buttons'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Buttons Font'
+ #name: 'ButtonsFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #buttonsFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildButtonsFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'Change Buttons'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeButtonsFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator3'
+ #layout: #(#LayoutFrame 0 0.0 160 0 0 1.0 164 0)
+ )
+ #(#ViewSpec
+ #name: 'ListsBox'
+ #layout: #(#LayoutFrame 0 0.0 165 0 0 1.0 215 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Lists'
+ #name: 'Lists'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Lists Font'
+ #name: 'ListsFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #listsFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildListsFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'ChangeLists'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeListsFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator4'
+ #layout: #(#LayoutFrame 0 0.0 215 0 0 1.0 219 0)
+ )
+ #(#ViewSpec
+ #name: 'MenusBox'
+ #layout: #(#LayoutFrame 0 0.0 220 0 0 1.0 270 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Menus'
+ #name: 'Menus'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Menus Font'
+ #name: 'MenusFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #menusFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildMenuesFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'ChangeMenus'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeMenusFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator5'
+ #layout: #(#LayoutFrame 0 0.0 270 0 0 1.0 274 0)
+ )
+ #(#ViewSpec
+ #name: 'TextBox'
+ #layout: #(#LayoutFrame 0 0.0 280 0 0 1.0 340 0)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Text'
+ #name: 'Text'
+ #layout: #(#LayoutFrame 0 0.0 0 0 100 0 20 0)
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #translateLabel: true
+ #adjust: #left
+ )
+ #(#LabelSpec
+ #label: 'Text Font'
+ #name: 'TextFont'
+ #layout: #(#LayoutFrame 105 0 22 0 -5 1 44 0)
+ #translateLabel: true
+ #labelChannel: #textFontLabelHolder
+ #adjust: #left
+ #postBuildCallback: #postBuildTextFontLabel:
+ )
+ #(#ActionButtonSpec
+ #label: 'Change ...'
+ #name: 'ChangeText'
+ #layout: #(#LayoutFrame 0 0.0 22 0 105 0 44 0)
+ #translateLabel: true
+ #model: #changeTextFont
+ )
+ )
+
+ )
+ )
+ #(#DividerSpec
+ #name: 'Separator6'
+ #layout: #(#LayoutFrame 0 0.0 340 0 0 1.0 344 0)
+ )
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 0
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 100 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 100 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Defaults'
+ #name: 'Button1'
+ #translateLabel: true
+ #model: #loadRequest
+ #extent: #(#Point 100 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 100 22)
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+!
+
+windowSpec2
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::FontSettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Font Settings'
+ #name: 'Font Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 491 533)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 125 22)
+ )
+ )
+
+ )
+ )
+ #(#SequenceViewSpec
+ #name: 'WidgetList'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 105 0)
+ #model: #selectedWidget
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #useIndex: false
+ #sequenceList: #widgetList
+ )
+ #(#ViewSpec
+ #name: 'Box1'
+ #layout: #(#LayoutFrame 0 0.0 105 0 0 1.0 -34 1)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#NonScrollableArbitraryComponentSpec
+ #name: 'FontPanel'
+ #layout: #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
+ #component: #FontPanel
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+!
+
+windowSpecFirst
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::FontSettingsAppl andSelector:#windowSpecFirst
+ AbstractLauncherApplication::FontSettingsAppl new openInterface:#windowSpecFirst
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpecFirst
+ #window:
+ #(#WindowSpec
+ #label: 'Font Settings'
+ #name: 'Font Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 491 456)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 125 22)
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+!
+
+windowSpecx
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::FontSettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::FontSettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Font Settings'
+ #name: 'Font Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 491 533)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 125 22)
+ )
+ )
+
+ )
+ )
+ #(#SequenceViewSpec
+ #name: 'WidgetList'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 105 0)
+ #model: #selectedWidget
+ #style: #(#FontDescription #helvetica #bold #roman 12)
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #useIndex: false
+ #sequenceList: #widgetList
+ )
+ #(#ViewSpec
+ #name: 'Box1'
+ #layout: #(#LayoutFrame 0 0.0 105 0 0 1.0 -34 1)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#TextEditorSpec
+ #name: 'ExampleText'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 145 0)
+ #model: #exampleText
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ )
+ #(#VariableHorizontalPanelSpec
+ #name: 'VariableHorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 145 0 0 1.0 -20 1)
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ViewSpec
+ #name: 'FamilyBox'
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#SequenceViewSpec
+ #name: 'FamilyList'
+ #layout: #(#LayoutFrame 0 0.0 20 0.0 0 1.0 0 1.0)
+ #model: #selectedFamily
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #useIndex: false
+ #sequenceList: #familyList
+ )
+ #(#LabelSpec
+ #label: 'Family'
+ #name: 'FamilyLabel'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
+ #translateLabel: true
+ )
+ )
+
+ )
+ )
+ #(#ViewSpec
+ #name: 'TypeFaceBox'
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#SequenceViewSpec
+ #name: 'TypeFaceList'
+ #layout: #(#LayoutFrame 0 0.0 20 0.0 0 1.0 0 1.0)
+ #model: #selectedTypeFace
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #useIndex: false
+ #sequenceList: #typeFaceList
+ )
+ #(#LabelSpec
+ #label: 'TypeFace'
+ #name: 'TypeFaceLabel'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
+ #translateLabel: true
+ )
+ )
+
+ )
+ )
+ #(#ViewSpec
+ #name: 'SizeListBox'
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#LabelSpec
+ #label: 'Size'
+ #name: 'SizeLabel'
+ #layout: #(#LayoutFrame 0 0.0 0 0 0 1.0 20 0)
+ #translateLabel: true
+ )
+ #(#SequenceViewSpec
+ #name: 'SizeList'
+ #layout: #(#LayoutFrame 0 0.0 20 0.0 0 1.0 0 1.0)
+ #model: #selectedSize
+ #hasHorizontalScrollBar: true
+ #hasVerticalScrollBar: true
+ #useIndex: false
+ #sequenceList: #sizeList
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ #handles: #(#Any 0.333333 0.666667 1.0)
+ )
+ #(#LabelSpec
+ #label: 'CurrentFontLabel'
+ #name: 'CurrentFontLabel'
+ #layout: #(#LayoutFrame 0 0.0 -20 1 0 1.0 0 1)
+ #level: -1
+ #translateLabel: true
+ #labelChannel: #currentFontLabelHolder
+ #adjust: #left
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'accessing'!
+
+encodingMatch:aEncodingMatch
+
+ aEncodingMatch notNil ifTrue:[
+ filter := [:f | f encoding notNil
+ and:[aEncodingMatch match:f encoding]].
+ ].
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'actions'!
+
+changeAllFont
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self allOfThem value)
+ title:(resources string:'Font for %1' with:'All')
+ filter:filter.
+ f notNil ifTrue:[
+ self allOfThem value:f.
+ self labelDef value:f.
+ self buttonDef value:f.
+ self listDef value:f.
+ self menuDef value:f.
+ self textDef value:f.
+ ]
+!
+
+changeButtonsFont
+
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self allOfThem value)
+ title:(resources string:'Font for %1' with:'All')
+ filter:filter.
+ f notNil ifTrue:[
+ self allOfThem value:f.
+ ]
+!
+
+changeLabelsFont
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self labelDef value)
+ title:(resources string:'Font for %1' with:'Labels')
+ filter:filter.
+ f notNil ifTrue:[
+ self labelDef value:f.
+ ]
+!
+
+changeListsFont
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self listDef value)
+ title:(resources string:'Font for %1' with:'Lists')
+ filter:filter.
+ f notNil ifTrue:[
+ self listDef value:f.
+ ]
+!
+
+changeMenusFont
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self menuDef value)
+ title:(resources string:'Font for %1' with:'Menus')
+ filter:filter.
+ f notNil ifTrue:[
+ self menuDef value:f.
+ ]
+!
+
+changeTextFont
+ |f|
+
+ f := FontPanel
+ fontFromUserInitial:(self textDef value)
+ title:(resources string:'Font for %1' with:'Edited Text')
+ filter:filter.
+ f notNil ifTrue:[
+ self textDef value:f.
+ ]
+!
+
+doCancel
+
+ self isPartOfSettinsDialog ifTrue:[
+ self loadRequest.
+ ].
+ self closeRequest.
+!
+
+evaluateModified
+
+ self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+ self warn:'no help available here'.
+"/ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
+!
+
+loadRequest
+
+ View readStyleSheetAndUpdateAllStyleCaches.
+ self labelDef value:Label defaultFont.
+ self buttonDef value:Button defaultFont.
+ self listDef value:SelectionInListView defaultFont.
+ self menuDef value:MenuView defaultFont.
+ self textDef value:TextView defaultFont.
+ self allOfThem value:nil.
+ self modifiedChannel value:false.
+!
+
+saveRequest
+ | result |
+
+ (self hasUnsavedChanges) ifTrue:[
+ result := self confirmWithCancel:(resources string:'Save changed Font Settings ?').
+ result isNil ifTrue:[ ^ false].
+ result ifTrue:[
+ self saveSettings.
+ ]
+ ].
+ ^ true
+!
+
+saveSettings
+
+ | master requestor|
+
+ master := self masterApplication.
+ master notNil ifTrue:[
+ requestor := master requestor.
+ ].
+ self hasUnsavedChanges ifTrue:[
+ | launcher |
+ Label defaultFont:self labelDef value.
+ Button defaultFont:self buttonDef value.
+ Toggle defaultFont:self buttonDef value.
+ TextView withAllSubclasses do:[:cls | cls defaultFont:self textDef value].
+ SelectionInListView withAllSubclasses do:[:cls | cls defaultFont:self listDef value].
+ MenuView defaultFont:self menuDef value.
+ PullDownMenu defaultFont:self menuDef value.
+ self modifiedChannel value:false.
+ ].
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'aspects'!
+
+allFontLabelHolder
+
+ allFontLabelHolder isNil ifTrue:[
+ allFontLabelHolder := '' asValue.
+ ].
+ ^ allFontLabelHolder.
+!
+
+allOfThem
+ "return/create the 'allOfThem' value holder (automatically generated)"
+
+ allOfThem isNil ifTrue:[
+ allOfThem := ValueHolder new.
+ allOfThem addDependent:self.
+ ].
+ ^ allOfThem
+!
+
+buttonDef
+ "return/create the 'buttonDef' value holder (automatically generated)"
+
+ buttonDef isNil ifTrue:[
+ buttonDef := ValueHolder new.
+ buttonDef addDependent:self.
+ ].
+ ^ buttonDef
+!
+
+buttonsFontLabelHolder
+
+ buttonsFontLabelHolder isNil ifTrue:[
+ buttonsFontLabelHolder := Button defaultFont asValue.
+ ].
+ ^ buttonsFontLabelHolder.
+!
+
+labelDef
+ "return/create the 'labelDef' value holder (automatically generated)"
+
+ labelDef isNil ifTrue:[
+ labelDef := ValueHolder new.
+ labelDef addDependent:self.
+ ].
+ ^ labelDef
+!
+
+labelsFontLabelHolder
+
+ labelsFontLabelHolder isNil ifTrue:[
+ labelsFontLabelHolder := Label defaultFont asValue.
+ ].
+ ^ labelsFontLabelHolder.
+!
+
+listDef
+ "return/create the 'listDef' value holder (automatically generated)"
+
+ listDef isNil ifTrue:[
+ listDef := ValueHolder new.
+ listDef addDependent:self.
+ ].
+ ^ listDef
+!
+
+listsFontLabelHolder
+
+ listsFontLabelHolder isNil ifTrue:[
+ listsFontLabelHolder := SelectionInListView defaultFont asValue.
+ ].
+ ^ listsFontLabelHolder.
+!
+
+menuDef
+ "return/create the 'menuDef' value holder (automatically generated)"
+
+ menuDef isNil ifTrue:[
+ menuDef := ValueHolder new.
+ menuDef addDependent:self.
+ ].
+ ^ menuDef
+!
+
+menusFontLabelHolder
+
+ menusFontLabelHolder isNil ifTrue:[
+ menusFontLabelHolder := MenuView defaultFont asValue.
+ ].
+ ^ menusFontLabelHolder.
+!
+
+modifiedChannel
+
+ modifiedChannel isNil ifTrue:[
+ modifiedChannel := false asValue.
+ ].
+ ^ modifiedChannel
+!
+
+textDef
+ "return/create the 'textDef' value holder (automatically generated)"
+
+ textDef isNil ifTrue:[
+ textDef := ValueHolder new.
+ textDef addDependent:self.
+ ].
+ ^ textDef
+!
+
+textFontLabelHolder
+
+ textFontLabelHolder isNil ifTrue:[
+ textFontLabelHolder := TextView defaultFont asValue.
+ ].
+ ^ textFontLabelHolder.
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ "stub code automatically generated - please change as required"
+
+ changedObject == self allOfThem ifTrue:[
+ | f label|
+ f := self allOfThem value.
+ allLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self allFontLabelHolder value:f.
+ self evaluateModified.
+ ^ self.
+ ].
+ changedObject == self labelDef ifTrue:[
+ | f label|
+ f := self labelDef value.
+ labelLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self labelsFontLabelHolder value:f.
+ self evaluateModified.
+ ^ self.
+ ].
+ changedObject == self buttonDef ifTrue:[
+ | f label|
+ f := self buttonDef value.
+ buttonsLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self buttonsFontLabelHolder value:f.
+ self evaluateModified.
+ ^ self.
+ ].
+ changedObject == self listDef ifTrue:[
+ | f label|
+ f := self listDef value.
+ listsLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self listsFontLabelHolder value:f.
+ self evaluateModified.
+ ^ self.
+ ].
+ changedObject == self menuDef ifTrue:[
+ | f label|
+ f := self menuDef value.
+ menuLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self menusFontLabelHolder value:f.
+ self evaluateModified.
+ ^ self.
+ ].
+ changedObject == self textDef ifTrue:[
+ | f label|
+ f := self textDef value.
+ textLabel font:f.
+ label := f isNil ifTrue:[
+ ''
+ ] ifFalse:[
+ f userFriendlyName
+ ].
+ self evaluateModified.
+ self textFontLabelHolder value:f.
+ ^ self.
+ ].
+
+ super update:something with:aParameter from:changedObject
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'initialization & release'!
+
+closeRequest
+
+ self saveRequest ifFalse:[
+ ^ self
+ ].
+
+ ^ super closeRequest.
+!
+
+initialize
+
+ resources := self class owningClass classResources.
+ super initialize
+!
+
+postBuildAllFontLabel:aWidget
+
+ allLabel := aWidget.
+!
+
+postBuildButtonsFontLabel:aWidget
+
+ buttonsLabel := aWidget.
+!
+
+postBuildLabelsFontLabel:aWidget
+
+ labelLabel := aWidget.
+!
+
+postBuildListsFontLabel:aWidget
+
+ listsLabel := aWidget.
+!
+
+postBuildMenuesFontLabel:aWidget
+
+ menuLabel := aWidget.
+!
+
+postBuildTextFontLabel:aWidget
+
+ textLabel := aWidget.
+!
+
+postOpen
+
+ self allOfThem value:nil.
+ self labelDef value:Label defaultFont.
+ self buttonDef value:Button defaultFont.
+ self listDef value:SelectionInListView defaultFont.
+ self menuDef value:MenuView defaultFont.
+ self textDef value:TextView defaultFont.
+!
+
+postOpenAsSubcanvasWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenAsSubcanvasWith:aBuilder
+!
+
+postOpenWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenWith:aBuilder
+! !
+
+!AbstractLauncherApplication::FontSettingsAppl methodsFor:'queries'!
+
+hasUnsavedChanges
+
+ ^ (self labelDef value ~= Label defaultFont) or:[
+ self buttonDef value ~= Button defaultFont or:[
+ self listDef value ~= SelectionInListView defaultFont or:[
+ self menuDef value ~= MenuView defaultFont or:[
+ self textDef value ~= TextView defaultFont ]]]]
+! !
+
!AbstractLauncherApplication::KbdMappingSettingsAppl class methodsFor:'interface specs'!
windowSpec
@@ -7281,6 +9412,294 @@
)
! !
+!AbstractLauncherApplication::MemorySettingsAppl class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::MemorySettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::MemorySettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::MemorySettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Settings'
+ #name: 'Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 616 592)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #()
+ )
+ )
+! !
+
+!AbstractLauncherApplication::MemorySettingsAppl methodsFor:'actions'!
+
+doCancel
+
+ self isPartOfSettinsDialog ifTrue:[
+ self loadRequest.
+ ].
+ self closeRequest.
+!
+
+evaluateModified
+
+ self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+ self warn:'no help available here'.
+"/ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
+!
+
+loadRequest
+
+ self modifiedChannel value:false.
+!
+
+saveRequest
+ | result |
+
+ (self hasUnsavedChanges) ifTrue:[
+ result := self confirmWithCancel:(resources string:'Save changed Font Settings ?').
+ result isNil ifTrue:[ ^ false].
+ result ifTrue:[
+ self saveSettings.
+ ]
+ ].
+ ^ true
+!
+
+saveSettings
+
+ self hasUnsavedChanges ifTrue:[
+ self modifiedChannel value:false.
+ ].
+! !
+
+!AbstractLauncherApplication::MemorySettingsAppl methodsFor:'aspects'!
+
+modifiedChannel
+
+ modifiedChannel isNil ifTrue:[
+ modifiedChannel := false asValue.
+ ].
+ ^ modifiedChannel
+! !
+
+!AbstractLauncherApplication::MemorySettingsAppl methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ "stub code automatically generated - please change as required"
+
+"/ changedObject == self allOfThem ifTrue:[
+"/ ^ self.
+"/ ].
+
+ super update:something with:aParameter from:changedObject
+! !
+
+!AbstractLauncherApplication::MemorySettingsAppl methodsFor:'initialization & release'!
+
+closeRequest
+
+ self saveRequest ifFalse:[
+ ^ self
+ ].
+
+ ^ super closeRequest.
+!
+
+initialize
+
+ resources := self class owningClass classResources.
+ super initialize
+!
+
+postOpen
+!
+
+postOpenAsSubcanvasWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenAsSubcanvasWith:aBuilder
+!
+
+postOpenWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenWith:aBuilder
+! !
+
+!AbstractLauncherApplication::MemorySettingsAppl methodsFor:'queries'!
+
+hasUnsavedChanges
+
+ ^ true
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::MemorySettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::MemorySettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::MemorySettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Settings'
+ #name: 'Settings'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 16 42 616 592)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #()
+ )
+ )
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl methodsFor:'actions'!
+
+doCancel
+
+ self isPartOfSettinsDialog ifTrue:[
+ self loadRequest.
+ ].
+ self closeRequest.
+!
+
+evaluateModified
+
+ self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+ self warn:'no help available here'.
+"/ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/keyboardSetting.html'].
+!
+
+loadRequest
+
+ self modifiedChannel value:false.
+!
+
+saveRequest
+ | result |
+
+ (self hasUnsavedChanges) ifTrue:[
+ result := self confirmWithCancel:(resources string:'Save changed Font Settings ?').
+ result isNil ifTrue:[ ^ false].
+ result ifTrue:[
+ self saveSettings.
+ ]
+ ].
+ ^ true
+!
+
+saveSettings
+
+ self hasUnsavedChanges ifTrue:[
+ self modifiedChannel value:false.
+ ].
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl methodsFor:'aspects'!
+
+modifiedChannel
+
+ modifiedChannel isNil ifTrue:[
+ modifiedChannel := false asValue.
+ ].
+ ^ modifiedChannel
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl methodsFor:'change & update'!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+ "stub code automatically generated - please change as required"
+
+"/ changedObject == self allOfThem ifTrue:[
+"/ ^ self.
+"/ ].
+
+ super update:something with:aParameter from:changedObject
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl methodsFor:'initialization & release'!
+
+closeRequest
+
+ self saveRequest ifFalse:[
+ ^ self
+ ].
+
+ ^ super closeRequest.
+!
+
+initialize
+
+ resources := self class owningClass classResources.
+ super initialize
+!
+
+postOpen
+!
+
+postOpenAsSubcanvasWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenAsSubcanvasWith:aBuilder
+!
+
+postOpenWith:aBuilder
+
+ self postOpen.
+ ^ super postOpenWith:aBuilder
+! !
+
+!AbstractLauncherApplication::PlainSettingsAppl methodsFor:'queries'!
+
+hasUnsavedChanges
+
+ ^ true
+! !
+
!AbstractLauncherApplication::SettingsDialog class methodsFor:'applications'!
addApplClass:aClass withName:aName
@@ -7307,7 +9726,8 @@
#('Language' #'AbstractLauncherApplication::LanguageSettingsAppl')
#('Keyboard Mappings' #'AbstractLauncherApplication::KbdMappingSettingsAppl')
#('Style Selection' #'AbstractLauncherApplication::StyleSettingsAppl')
-
+ #('System Messages' #'AbstractLauncherApplication::SystemMessageSettingsAppl')
+ #('Compiler' #'AbstractLauncherApplication::CompilerSettingsAppl')
).
!
@@ -7373,7 +9793,7 @@
#name: 'Settings Dialog'
#min: #(#Point 10 10)
#max: #(#Point 1024 768)
- #bounds: #(#Rectangle 16 42 516 562)
+ #bounds: #(#Rectangle 16 42 616 662)
#menu: #mainMenu
)
#component:
@@ -7470,11 +9890,14 @@
sendSaveRequest
- |oldClient|
-
- oldClient := self canvasHolder value application.
- oldClient notNil ifTrue:[
- oldClient saveRequest ifFalse:[^ false].
+ |oldClient canvas|
+
+ canvas := self canvasHolder value.
+ canvas notNil ifTrue:[
+ oldClient := canvas application.
+ oldClient notNil ifTrue:[
+ oldClient saveRequest ifFalse:[^ false].
+ ].
].
^ true
! !
@@ -7552,6 +9975,7 @@
initialize
+ resources := self class owningClass resources.
selectionHolder := AspectAdaptor new subject:self; forAspect:#selection.
super initialize.
!
@@ -8053,7 +10477,7 @@
| result |
(self hasUnsavedChanges) ifTrue:[
- result := self confirmWithCancel:(resources string:'Save changed Tool Settings ?').
+ result := self confirmWithCancel:(resources string:'Save changed Style Settings ?').
result isNil ifTrue:[ ^ false].
result ifTrue:[
self saveSettings.
@@ -8199,7 +10623,7 @@
listOfStyles := listOfStyles collect:[:aStyleName | aStyleName asLowercase].
].
listOfStyles remove:'generic' ifAbsent:nil; remove:'mswindows3' ifAbsent:nil.
- showStandardStylesOnly value ifTrue:[
+ self showStandardStylesOnly value ifTrue:[
listOfStyles := listOfStyles select:[:aStyleName | self class standardStyles includes:aStyleName].
].
@@ -8261,7 +10685,7 @@
styleDirectoryContents := resourceDir asFilename directoryContents.
self updateList.
(self class standardStyles includes:View defaultStyle) ifFalse:[
- showStandardStylesOnly value:false
+ self showStandardStylesOnly value:false
].
self selectedStyle value:(View defaultStyle).
self noticeLabelHolder value:(resources at:'STYLE_MSG' default:'Select a Style') withCRs.
@@ -8275,6 +10699,239 @@
^ (self selectedStyle value ~= View defaultStyle)
! !
+!AbstractLauncherApplication::SystemMessageSettingsAppl class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:AbstractLauncherApplication::SystemMessageSettingsAppl andSelector:#windowSpec
+ AbstractLauncherApplication::SystemMessageSettingsAppl new openInterface:#windowSpec
+ AbstractLauncherApplication::SystemMessageSettingsAppl open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(#FullSpec
+ #name: #windowSpec
+ #window:
+ #(#WindowSpec
+ #label: 'Messages'
+ #name: 'Messages'
+ #min: #(#Point 10 10)
+ #max: #(#Point 1024 768)
+ #bounds: #(#Rectangle 24 22 499 293)
+ )
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#CheckBoxSpec
+ #label: 'VM Info Messages'
+ #name: 'VMInfoMessages'
+ #layout: #(#LayoutFrame 5 0 5 0 -5 1 30 0)
+ #model: #vmInfo
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'VM Error Messages'
+ #name: 'VMErrorMessages'
+ #layout: #(#LayoutFrame 5 0 40 0 -5 1 65 0)
+ #model: #vmErrors
+ #translateLabel: true
+ )
+ #(#DividerSpec
+ #name: 'Separator2'
+ #layout: #(#LayoutFrame 0 0.0 70 0 0 1 73 0)
+ )
+ #(#CheckBoxSpec
+ #label: 'Display Error Messages (Xlib, Xtlib, WinAPI ...)'
+ #name: 'DisplayErrorMessages'
+ #layout: #(#LayoutFrame 5 0 80 0 -5 1 105 0)
+ #model: #displayErrors
+ #translateLabel: true
+ )
+ #(#CheckBoxSpec
+ #label: 'Other Info Messages'
+ #name: 'OtherInfoMessages'
+ #layout: #(#LayoutFrame 4 0 115 0 -5 1 135 0)
+ #model: #classInfos
+ #translateLabel: true
+ )
+ #(#DividerSpec
+ #name: 'Separator3'
+ #layout: #(#LayoutFrame 2 0.0 144 0 2 1 147 0)
+ )
+ #(#HorizontalPanelViewSpec
+ #name: 'HorizontalPanel1'
+ #layout: #(#LayoutFrame 0 0.0 -34 1 0 1.0 0 1)
+ #horizontalLayout: #center
+ #verticalLayout: #center
+ #horizontalSpace: 3
+ #verticalSpace: 3
+ #component:
+ #(#SpecCollection
+ #collection: #(
+ #(#ActionButtonSpec
+ #label: 'OK'
+ #name: 'OK'
+ #translateLabel: true
+ #model: #saveSettings
+ #enableChannel: #modifiedChannel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Cancel'
+ #name: 'Cancel'
+ #translateLabel: true
+ #model: #doCancel
+ #extent: #(#Point 125 22)
+ )
+ #(#ActionButtonSpec
+ #label: 'Help'
+ #name: 'Help'
+ #translateLabel: true
+ #model: #help
+ #extent: #(#Point 125 22)
+ )
+ )
+
+ )
+ )
+ )
+
+ )
+ )
+! !
+
+!AbstractLauncherApplication::SystemMessageSettingsAppl methodsFor:'actions'!
+
+doCancel
+
+ self isPartOfSettinsDialog ifTrue:[
+ self loadRequest.
+ ].
+ self closeRequest.
+!
+
+evaluateModified
+
+ self modifiedChannel value:(self hasUnsavedChanges).
+!
+
+help
+
+ self withWaitCursorDo:[HTMLDocumentView openFullOnHelpFile:'Launcher/messageSettings.html'].
+!
+
+loadRequest
+
+ self vmInfo value:ObjectMemory infoPrinting.
+ self vmErrors value:ObjectMemory debugPrinting.
+ self classInfos value:Object infoPrinting.
+ self displayErrors value:DeviceWorkstation errorPrinting.
+ self modifiedChannel value:false.
+!
+
+saveRequest
+ | result |
+
+ (self hasUnsavedChanges) ifTrue:[
+ result := self confirmWithCancel:(resources string:'Save changed System Massage Settings ?').
+ result isNil ifTrue:[ ^ false].
+ result ifTrue:[
+ self saveSettings.
+ ]
+ ].
+ ^ true
+!
+
+saveSettings
+
+ ObjectMemory infoPrinting:self vmInfo value.
+ ObjectMemory debugPrinting:self vmErrors value.
+ Object infoPrinting:self classInfos value.
+ DeviceWorkstation errorPrinting:self displayErrors value.
+ self modifiedChannel value:false.
+! !
+
+!AbstractLauncherApplication::SystemMessageSettingsAppl methodsFor:'aspects'!
+
+classInfos
+
+ classInfos isNil ifTrue:[
+ classInfos := Object infoPrinting asValue.
+ classInfos onChangeSend:#evaluateModified to:self
+ ].
+ ^ classInfos.
+!
+
+displayErrors
+
+ displayErrors isNil ifTrue:[
+ displayErrors := DeviceWorkstation errorPrinting asValue.
+ displayErrors onChangeSend:#evaluateModified to:self
+ ].
+ ^ displayErrors.
+!
+
+modifiedChannel
+
+ modifiedChannel isNil ifTrue:[
+ modifiedChannel := false asValue.
+ ].
+ ^ modifiedChannel
+!
+
+vmErrors
+
+ vmErrors isNil ifTrue:[
+ vmErrors := ObjectMemory debugPrinting asValue.
+ vmErrors onChangeSend:#evaluateModified to:self
+ ].
+ ^ vmErrors.
+!
+
+vmInfo
+
+ vmInfo isNil ifTrue:[
+ vmInfo := ObjectMemory infoPrinting asValue.
+ vmInfo onChangeSend:#evaluateModified to:self
+ ].
+ ^ vmInfo.
+! !
+
+!AbstractLauncherApplication::SystemMessageSettingsAppl methodsFor:'initialization & release'!
+
+closeRequest
+
+ self saveRequest ifFalse:[
+ ^ self
+ ].
+
+ ^ super closeRequest.
+!
+
+initialize
+
+ resources := self class owningClass classResources.
+ super initialize
+! !
+
+!AbstractLauncherApplication::SystemMessageSettingsAppl methodsFor:'queries'!
+
+hasUnsavedChanges
+
+ ^(self vmInfo value ~= ObjectMemory infoPrinting or:[
+ self vmErrors value ~= ObjectMemory debugPrinting or:[
+ self classInfos value ~= Object infoPrinting or:[
+ self displayErrors value ~= DeviceWorkstation errorPrinting ]]])
+! !
+
!AbstractLauncherApplication::ToolsSettingsAppl class methodsFor:'interface specs'!
windowSpec
@@ -8497,6 +11154,7 @@
].
Inspector := currentUserPrefs inspectorClassSetting.
Transcript current lineLimit:self transcriptBufferSize value.
+ self modifiedChannel value:false.
! !
!AbstractLauncherApplication::ToolsSettingsAppl methodsFor:'aspects'!
@@ -8574,23 +11232,6 @@
!AbstractLauncherApplication::ToolsSettingsAppl methodsFor:'initialization & release'!
-closeDownViews
- "This is a hook method generated by the Browser.
- It will be invoked when your app/dialog-window is really closed.
- See also #closeDownViews, which is invoked before and may suppress the close
- or ask the user for confirmation."
-
- "/ change the code below as required ...
- "/ This should cleanup any leftover resources
- "/ (for example, temporary files)
- "/ super closeRequest will initiate the closeDown
-
- "/ add your code here
-
- "/ do not remove the one below ...
- ^ super closeDownViews
-!
-
closeRequest
self saveRequest ifFalse:[
@@ -8602,66 +11243,11 @@
initialize
+ resources := self class owningClass classResources.
currentUserPrefs := UserPreferences current.
super initialize
! !
-!AbstractLauncherApplication::ToolsSettingsAppl methodsFor:'menu actions'!
-
-menuNew
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'new' is selected."
-
- "/ change below and add any actions as required here ...
- self warn:'no action for ''new'' available.'.
-!
-
-menuOpen
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'open' is selected."
-
- "/ change below and add any actions as required here ...
- self warn:'no action for ''open'' available.'.
-!
-
-menuSave
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'save' is selected."
-
- "/ change below and add any actions as required here ...
- self warn:'no action for ''save'' available.'.
-!
-
-menuSaveAs
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'saveAs' is selected."
-
- "/ change below and add any actions as required here ...
- self warn:'no action for ''saveAs'' available.'.
-!
-
-openAboutThisApplication
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'help-about' is selected."
-
- "/ could open a customized aboutBox here ...
- super openAboutThisApplication
-!
-
-openDocumentation
- "This method was generated by the Browser.
- It will be invoked when the menu-item 'help-documentation' is selected."
-
- "/ change below as required ...
-
- "/ to open an HTML viewer on some document (under 'doc/online/<language>/' ):
- HTMLDocumentView openFullOnDocumentationFile:'TOP.html'.
-
- "/ add application-specific help files under the 'doc/online/<language>/help/appName'
- "/ directory, and open a viewer with:
- "/ HTMLDocumentView openFullOnDocumentationFile:'help/<MyApplication>/TOP.html'.
-! !
-
!AbstractLauncherApplication::ToolsSettingsAppl methodsFor:'queries'!
hasUnsavedChanges
@@ -8678,7 +11264,7 @@
!AbstractLauncherApplication class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.231 2002-11-12 11:29:34 penk Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/AbstractLauncherApplication.st,v 1.232 2002-11-15 16:23:26 penk Exp $'
! !
AbstractLauncherApplication::SettingsDialog initialize!