From VisualWorks®, 7.6 of February 8, 2008 on March 3, 2008 at 9:42:49 pm (Dialog confirm: 'You are filing-in a Parcel source file!\\While this is possible it will not have\the same effect as loading the parcel.\None of the Parcel''s prerequisites will\be loaded and none of its load actions\will be performed.\\Are you sure you want to file-in?' withCRs) ifFalse: [self error: 'Parcel file-in abandoned. Choose terminate or close.'] <class> <name>VisualWorksMemoryPolicyPage</name> <environment>Tools</environment> <super>Tools.SettingsManagerPage</super> <private>false</private> none settings localTriggerChannel defaultGrowthRegimeHolder defaultMemoryHolder defaultFreeMemoryHolder currentGrowthRegimeHolder currentMemoryHolder currentFreeMemoryHolder <imports></imports> <category>Tools-Settings-VW</category> <attributes> <package>Tools-Settings-VW</package> </attributes> </class> <comment> Tools.VisualWorksMemoryPolicyPage
VisualWorksMemoryPolicyPage is the implementation of the MemoryPolicy page of the settings tool. This page exposes the three most commonly tuned settings (growth regime, memory upper bound and free memory upper bound) for the memory policy of the system. Users are encouraged to read the class comment of MemoryPolicy and ObjectMemory to understand how these settings (and other tunable settings on MemoryPolicy) effect the system and their application. This page shows the current values being used by the system, along with maintaing a list of default values for the settings. BufferedValueHolders are used to to accept the edit values. Instance Variables: currentFreeMemoryHolder <ValueModel on: Integer> See above currentGrowthRegimeHolder <ValueModel on: Integer> See above currentMemoryHolder <ValueModel on: Integer> See above defaultFreeMemoryHolder <BufferedValueHolder on: Integer> See above defaultGrowthRegimeHolder <BufferedValueHolder on: Integer> See above defaultMemoryHolder <BufferedValueHolder on: Integer> See above localTriggerChannel <ValueModel on: Boolean> When true, then trigger the BufferedValueHolders to accept their edit value settings <(Collection of: SettingModel)> The SettingModels for the memory policy parameters that this SettingsPage exposes
</comment> <class> <name>VisualWorksHomePage</name> <environment>Tools</environment> <super>Tools.SettingsManagerPage</super> <private>false</private> none directoryModule pathHolder setting helpTextHolder hasChanges localTriggerChannel <imports></imports> <category>Tools-Settings-VW</category> <attributes> <package>Tools-Settings-VW</package> </attributes> </class> <comment> Tools.VisualWorksHomePage
VisualWorksHomePage is the implementation of the System page of the settings tool. It is an example of a settings tool page that has a unique interface and behavior and displays information not managed by the settings framework. Instance Variables: directoryModule <DirectorySettingModule> The module for the directory setting. hasChanges <Boolean> Set to true whenever there are unaccepted changes; determines whether changes should indeed be applied when the manager says so. helpTextHolder <ValueHolder with: String> The holder of the blurb text (read-only). pathHolder <ValueHolder with: String> The holder of the path string; the aspect of the path input field. localTriggerChannel <ValueHolder with: Boolean> The trigger channel used by controls of this page, required to ensure they are all accepted before the page tries to accept.
</comment> <class> <name>VisualWorksSettings</name> <environment>Tools</environment> <super>Tools.SettingsDomain</super> <private>false</private> none <imports></imports> <category>Tools-Settings-VW</category> <attributes> <package>Tools-Settings-VW</package> </attributes> </class> <comment> Tools.VisualWorksSettings
VisualWorksSettings contains definitions of pages and settings controlling the VisualWorks environment. If you need to add your own settings that will control VisualWorks environments or your extensions of it, this is the place to add them. If you need to add settings to your application that has nothing to do with VisualWorks IDE, you need to create a subclass of SettingsDomain specifically for your application.
</comment> <methods> Tools.VisualWorksMemoryPolicyPage <category>aspects</category>
currentFreeMemoryHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^currentFreeMemoryHolder isNil ifTrue: [currentFreeMemoryHolder := 0 asValue] ifFalse: [currentFreeMemoryHolder]
currentGrowthRegimeHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^currentGrowthRegimeHolder isNil ifTrue: [currentGrowthRegimeHolder := 0 asValue] ifFalse: [currentGrowthRegimeHolder]
currentMemoryHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^currentMemoryHolder isNil ifTrue: [currentMemoryHolder := 0 asValue] ifFalse: [currentMemoryHolder]
defaultFreeMemoryHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^defaultFreeMemoryHolder isNil ifTrue: [defaultFreeMemoryHolder := 0 asValue] ifFalse: [defaultFreeMemoryHolder]
defaultGrowthRegimeHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^defaultGrowthRegimeHolder isNil ifTrue: [defaultGrowthRegimeHolder := 0 asValue] ifFalse: [defaultGrowthRegimeHolder]
defaultMemoryHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^defaultMemoryHolder isNil ifTrue: [defaultMemoryHolder := 0 asValue] ifFalse: [defaultMemoryHolder]
</methods> <methods> Tools.VisualWorksMemoryPolicyPage <category>accessing</category>
helpText ^#MemorySettingsHelp << #dialogs >> 'These options determine the parameters used by the default memory policy. The "Growth Regime" option specifies an upper bound for unrestricted growth of the VisualWorks heap. Above this bound, the garbage collector is invoked to reclaim memory. The "Memory" option specifies the hard upper limit for heap growth. Attempts to grow the heap beyond this limit signal a low-space condition. When this occurrs, the currently active process is interrupted to signal a low-space condition. The "Free Memory" option specifies the upper bound for memory that is permanently allocated to VisualWorks. After garbage collections, the default memory policy attempts to return any free memory above this limit to the host operating system.'
interestingMethods | interestingMethods | interestingMethods := super interestingMethods asOrderedCollection. settings do: [:each | interestingMethods addAll: each interestingMethods]. ^interestingMethods
settings ^settings
</methods> <methods> Tools.VisualWorksMemoryPolicyPage <category>initialize-release</category>
growthRegime: growthRegimeSetting memory: memorySetting freeMemory: freeMemorySetting "The setting should be the memory policy group setting." settings := Array with: growthRegimeSetting with: memorySetting with: freeMemorySetting. localTriggerChannel := false asValue. defaultGrowthRegimeHolder := self modelFor: growthRegimeSetting. defaultMemoryHolder := self modelFor: memorySetting. defaultFreeMemoryHolder := self modelFor: freeMemorySetting. currentGrowthRegimeHolder := nil asValue. currentMemoryHolder := nil asValue. currentFreeMemoryHolder := nil asValue. self loadCurrentValues
manager: aSettingsManager super manager: aSettingsManager. manager triggerChannel onChangeSend: #triggered to: self
modelFor: aSetting | holder | holder := BufferedValueHolder subject: aSetting triggerChannel: localTriggerChannel. holder onChangeSend: #tickle to: self. ^holder
release super release. manager triggerChannel retractInterestsFor: self
</methods> <methods> Tools.VisualWorksMemoryPolicyPage <category>actions</category>
accept localTriggerChannel value: true
importSnapshots: aCollection "Here we are cheating and applying the saved setting outright instead of just pushing the values into the widgets. Might want to work on this part more." | policySnapshot | settings do: [:each | policySnapshot := aCollection detect: [:some | some id = each id] ifNone: [nil]. policySnapshot ifNotNil: [each restoreFrom: policySnapshot]]
reset localTriggerChannel value: false
resetUIStateToDefault defaultGrowthRegimeHolder value: defaultGrowthRegimeHolder subject default. defaultMemoryHolder value: defaultMemoryHolder subject default. defaultFreeMemoryHolder value: defaultFreeMemoryHolder subject default.
setDefaultsNow self accept. ObjectMemory currentMemoryPolicy setDefaults; updateAfterGC. self loadCurrentValues
</methods> <methods> Tools.VisualWorksMemoryPolicyPage <category>notifications</category>
triggered manager triggerChannel value ifTrue: [self accept] ifFalse: [self reset]
</methods> <methods> Tools.VisualWorksMemoryPolicyPage <category>private</category>
loadCurrentValues | currentPolicy | currentPolicy := ObjectMemory currentMemoryPolicy. currentGrowthRegimeHolder value: currentPolicy growthRegimeUpperBound. currentMemoryHolder value: currentPolicy memoryUpperBound. currentFreeMemoryHolder value: currentPolicy freeMemoryUpperBound.
</methods> <methods> Tools.VisualWorksHomePage <category>private</category>
accept | dir | localTriggerChannel value: true. dir := [pathHolder value asFilename] on: OsError do: [:ex | ex return: nil]. (dir notNil and: [dir definitelyExists and: [dir isDirectory]]) ifFalse: [AbortAcceptRequest from: self message: (#errVWHome << #dialogs >> 'This path is not a directory. Please try again')]. "Close-down all managed files so that the new variable can take effect." SourceFileManager default close. SystemUtils setEnvironmentVariable: 'VISUALWORKS' value: pathHolder value. (pathHolder value = (SystemUtils getEnvironmentVariable: 'VISUALWORKS' ifAbsent: [nil])) ifFalse: [AbortAcceptRequest from: self message: ((#errVWHomeNoSet << #dialogs >> 'Unable to set the VISUALWORKS enviornment variable.<n>If you are running on Windows 95, 98, NT or 2000 you may<n>not have the proper permissions to write to the system registry.<n>Please contact your system administrator.') expandMacros)]. hasChanges := false
baseDirectoryNameFrom: aFilename ^aFilename tail = 'image' ifTrue: [aFilename directory] ifFalse: [aFilename]
helpText ^#VisualWorksHomeExplanation << #dialogs >> 'This is the default location of the VisualWorks home directory, $(VISUALWORKS), which is used to find many of the system files, such as parcels that can be loaded or system source code. Supply the name of the main directory, of which "image", "parcels", and "bin" are sub-directories. On Windows, this value is stored in the system registry, and you should not need to set it again. On all other platforms, the location is stored in an environment variable. On UNIX, the value is set only for the current session in VisualWorks.'
reset self pathHolder value: (SystemUtils getEnvironmentVariable: 'VISUALWORKS' ifAbsent: [String new]). hasChanges := false
</methods> <methods> Tools.VisualWorksHomePage <category>aspects</category>
helpTextHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^helpTextHolder isNil ifTrue: [helpTextHolder := String new asValue] ifFalse: [helpTextHolder]
pathHolder "This method was generated by UIDefiner. Any edits made here may be lost whenever methods are automatically defined. The initialization provided below may have been preempted by an initialize method." ^pathHolder isNil ifTrue: [pathHolder := String new asValue] ifFalse: [pathHolder]
</methods> <methods> Tools.VisualWorksHomePage <category>initialize-release</category>
initialize super initialize. self helpTextHolder value: self helpText asString. setting := (StringSetting forNameOfDirectory on: self pathHolder) id: #(directory); label: (#VisualWorksHomeDirectory << #dialogs >> 'VisualWorks home directory'). self reset
manager: aManager super manager: aManager. localTriggerChannel := manager triggerChannel value asValue. manager triggerChannel onChangeSend: #triggered to: self
</methods> <methods> Tools.VisualWorksHomePage <category>notifications</category>
tickle hasChanges := true. super tickle
triggered localTriggerChannel value: manager triggerChannel value. manager triggerChannel value ifTrue: [hasChanges ifTrue: [self accept]] ifFalse: [self reset]
</methods> <methods> Tools.VisualWorksHomePage <category>accessing</category>
directoryModule ^directoryModule ifNil: [directoryModule := (DirectorySettingModule on: setting) page: self; yourself]
triggerChannel ^localTriggerChannel
</methods> <methods> Tools.VisualWorksHomePage <category>actions</category>
detectAndPasteDirectory self directoryModule valueHolder value: (self baseDirectoryNameFrom: Filename defaultDirectory) asString
</methods> <methods> Tools.VisualWorksSettings <category>accessing</category>
label ^(#VisualWorksSettings << #labels >> 'VisualWorks Settings') asString
</methods> <methods> Tools.VisualWorksSettings class <category>private</category>
sourceAssociationsModel "Note that this is intended to work in concert with the old framework." ^BlockValue with: [ | manager list | manager := SourceFileManager default. list := (UISettings preferenceModelFor: #sources) value. list removeAllSuchThat: [:any | true]. manager fileIndicesDo: [:index | list addLast: index -> (manager nameStringAt: index)]. list]
sourceAssociationToStringBlock ^[:association | association value]
sourceDirectoriesModel "Note that this is intended to work in concert with the old framework." ^BlockValue with: [ | list | list := (UISettings preferenceModelFor: #sourceDirs) value. list removeAllSuchThat: [:ign| true]. list addAll: (SourceFileManager default sourceFileDirectories collect: [:ea| ea asString]) asSortedStrings. list]
stringToSourceAssociationBlock ^ [:oldAssociation :newName | | index manager | index := oldAssociation key. manager := SourceFileManager default. manager file: index name: (SystemUtils makeFilenamePortable: newName) writable: (manager isReadOnly: index) not]
stringToSourceDirectoryBlock ^ [:oldName :newName | SourceFileManager default changeSourceDirectoryFrom: oldName to: newName]
timeZonesTextModel ^'"UTC" ''TimeZone setDefaultTimeZone: (TimeZone null).'' "San Francisco--Pacific Standard:" ''TimeZone setDefaultTimeZone: TimeZone pacific'' "or" ''TimeZone setDefaultTimeZone: (CompositeTimeZone forUSWithOffsetFromGMT: -8)'' "New York--Eastern Standard:" ''TimeZone setDefaultTimeZone: TimeZone eastern.'' "UK--GMT/BST:" ''TimeZone setDefaultTimeZone: (TimeZone timeDifference: 0 DST: 1 start: 1 end: 2 from: 90 "on March 31" to: 304 "until October 31" startDay: #Sunday).'' "Germany--CET/CEST:" ''TimeZone setDefaultTimeZone: (TimeZone timeDifference: 1 DST: 1 start: 2 end: 3 from: 90 "on March 31" to: 304 "until October 31" startDay: #Sunday).'' "Japan:" ''TimeZone setDefaultTimeZone: (TimeZone timeDifference: 9 DST: 0 at: 0 from: 0 to: 0 startDay: #Sunday).'' ' asValue
</methods> <methods> Tools.VisualLauncher class <category>generated resources</category>
properties ^ToolbarIconLibrary visualFor: #properties
</methods> <methods> Tools.VisualWorksMemoryPolicyPage class <category>interface specs</category>
windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #labels) #bounds: #(#{Graphics.Rectangle} 512 384 840 728 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0 30 0 0 1 ) #name: #Label6 #label: #(#{Kernel.UserMessage} #key: #UpperBounds #defaultString: 'Upper Bounds' #catalogID: #labels) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.332317 30 0 0 1 ) #name: #Label4 #label: #(#{Kernel.UserMessage} #key: #Default #defaultString: 'Default' #catalogID: #labels) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0.667683 30 0 0 1 ) #name: #Label5 #label: #(#{Kernel.UserMessage} #key: #Current #defaultString: 'Current' #catalogID: #labels) ) #(#{UI.DividerSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 35 0 -10 0.333333 38 0 ) #name: #Divider1 ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0 60 0 0 1 ) #name: #Label1 #label: #(#{Kernel.UserMessage} #key: #GrowthRegimeC #defaultString: 'Growth Regime:' #catalogID: #labels) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0 87 0 0 1 ) #name: #Label2 #label: #(#{Kernel.UserMessage} #key: #MemoryC #defaultString: 'Memory:' #catalogID: #labels) ) #(#{UI.LabelSpec} #layout: #(#{UI.AlignmentOrigin} 0 0 114 0 0 1 ) #name: #Label3 #label: #(#{Kernel.UserMessage} #key: #FreeMemoryC #defaultString: 'Free Memory:' #catalogID: #labels) ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.332317 35 0 0 0.667683 60 0 ) #name: #defaultGrowthRegimeField #model: #defaultGrowthRegimeHolder #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.667683 35 0 0 1.0 60 0 ) #name: #currentGrowthRegimeField #model: #currentGrowthRegimeHolder #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.332317 62 0 0 0.667683 87 0 ) #name: #defaultMemoryField #model: #defaultMemoryHolder #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.667683 62 0 0 1.0 87 0 ) #name: #currentMemoryField #model: #currentMemoryHolder #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.332317 89 0 0 0.667683 114 0 ) #name: #defaultFreeMemoryField #model: #defaultFreeMemoryHolder #type: #number #formatString: '#,##0' ) #(#{UI.InputFieldSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.667683 89 0 0 1.0 114 0 ) #name: #currentFreeMemoryField #model: #currentFreeMemoryHolder #isReadOnly: true #type: #number #formatString: '#,##0' ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.LayoutFrame} 0 0.333333 116 0 0 0.666666 141 0 ) #name: #setNowButton #model: #setDefaultsNow #label: #(#{Kernel.UserMessage} #key: #MakeCurrent #defaultString: 'Make Current' #catalogID: #labels) #defaultable: true ) ) ) )
</methods> <methods> Tools.VisualWorksHomePage class <category>interface specs</category>
windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: #(#{Kernel.UserMessage} #key: #UnlabeledCanvas #defaultString: 'Unlabeled Canvas' #catalogID: #labels ) #bounds: #(#{Graphics.Rectangle} 512 384 768 628 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.SubCanvasSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1 50 0 ) #name: #ModuleSubcanvas #flags: 0 #majorKey: #{DirectorySettingModule} #minorKey: #windowSpec #clientKey: #directoryModule ) #(#{UI.ActionButtonSpec} #layout: #(#{Graphics.Rectangle} 0 55 160 80 ) #name: #pasteButton #model: #detectAndPasteDirectory #label: #(#{Kernel.UserMessage} #key: #PasteCurrent #defaultString: 'Paste Current' #catalogID: #dialogs ) ) #(#{UI.TextEditorSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 95 0 0 1 0 1 ) #name: #HelpTextEditor #flags: 4 #model: #helpTextHolder #style: #small #isReadOnly: true #tabRequiresControl: true ) ) ) )
</methods> <methods> Tools.VisualWorksSettings class <category>pages</category>
browserPage <settingsPage: #(tools browser)> ^ModularSettingsPage new label: #Browser << #labels >> 'Browser'; icon: (ListIconLibrary visualFor: #specs); settings: (self settingsWithPrefix: #(tools browser))
loadingOptionsPage <settingsPage: #(system loading)> ^ModularSettingsPage new label: #Loading << #labels >> 'Loading'; icon: (ListIconLibrary visualFor: #loadOptions); settings: (self settingsWithPrefix: #(loading))
lookAndFeelPage <settingsPage: #(lookAndFeel) position: -30> ^ModularSettingsPage new label: #LookAndFeel << #labels >> 'Look and Feel'; icon: (ListIconLibrary visualFor: #window); addAllSettings: (self settingsWithPrefix: #(lookAndFeel) except: #(windowPlacement mouseButtonOrder)); useRadioButtonsForEnumerations; addSetting: (self settingWithId: #(lookAndFeel windowPlacement)); addSetting: (self settingWithId: #(lookAndFeel mouseButtonOrder))
memoryPolicyPage <settingsPage: #(system memoryPolicy)> ^VisualWorksMemoryPolicyPage new label: #MemoryPolicy << #labels >> 'Memory Policy'; icon: (ListIconLibrary visualFor: #chip); growthRegime: (self settingWithId: #(base memoryPolicy growthRegimeUpperBound)) memory: (self settingWithId: #(base memoryPolicy memoryUpperBound)) freeMemory: (self settingWithId: #(base memoryPolicy freeMemoryUpperBound))
messageCatalogsPage <settingsPage: #(system messageCatalogs)> ^SequenceSettingPage new label: #MessageCatalogs << #labels >> 'Message Catalogs'; icon: (ListIconLibrary visualFor: #bubble); setting: (self settingWithId: #(files messageDirectories))
parcelDirectoriesPage <settingsPage: #(system parcelDirectories)> ^SequenceSettingPage new label: #ParcelPath << #labels >> 'Parcel Path'; icon: (ListIconLibrary visualFor: #loadedParcel); setting: (self settingWithId: #(files parcelDirectories))
printingPage <settingsPage: #(system printing)> ^ModularSettingsPage new label: #Printing << #labels >> 'Printing'; icon: (ListIconLibrary visualFor: #printer); useRadioButtonsForEnumerations; settings: (self settingsWithPrefix: #(printing))
printingPSOptionsPage <settingsPage: #(system printing psOptions)> ^ModularSettingsPage new label: #PostScriptOptions << #labels >> 'PostScript Options'; icon: (ListIconLibrary visualFor: #psPrinter); settings: (self settingsWithPrefix: #(system printing psOptions))
sourceDirectoriesPage "Note that this page does not work with the lower-level settings framework, it works with the source file manager itself--in other words, this page contains no Setting." <settingsPage: #(system source sourceDirectories)> | sourceDirectoriesModel | sourceDirectoriesModel := self sourceDirectoriesModel. ^(SequenceSettingPage new) label: #SourceDirectories << #labels >> 'Source Directories'; icon: (ListIconLibrary visualFor: #folder); listHolder: sourceDirectoriesModel displayBlock: [:string | string] acceptBlock: self stringToSourceDirectoryBlock validationBlock: self filenameMustExistValidationBlock; postAcceptBlock: [sourceDirectoriesModel resetValue]; helpText: #sourceDirectoriesHelpText << #dialogs >> 'This page displays the names of directories containing the source files of classes in the image. Directories in the list can be renamed, which is necessary if you rename directories on the disk. When a directory in this list is renamed, the new name is used to access any source files contained in that directory. See the help text of the "Source Files" page for more information on the source files.'
sourceFilesPage "Note that this page does not work with the lower-level settings framework, it works with the source file manager itself." <settingsPage: #(system source sourceFiles)> | sourceAssociationsModel | sourceAssociationsModel := self sourceAssociationsModel. ^(SequenceSettingPage new) label: #SourceFiles << #labels >> 'Source Files'; icon: (ListIconLibrary visualFor: #twoPages); listHolder: sourceAssociationsModel displayBlock: self sourceAssociationToStringBlock acceptBlock: self stringToSourceAssociationBlock validationBlock: self filenameMustExistValidationBlock; postAcceptBlock: [sourceAssociationsModel resetValue]; helpText: #sourceFilesHelpText << #dialogs >> 'The source code of classes in the image is stored in a number of files on the disk. The system (the Smalltalk image) holds onto the names of those files. The list on this page displays those names. For example, the first entry in this list is always the name of the main sources file, the one that contains the source of all the base classes such as Collections and Streams. If one of the files on the disk is moved or renamed, the system still tries to use the old file name to access the code it contains. When this happens, you get a message notifying you that a file could not be opened. This page allows you to restore such broken source references. To do that, select the name of the file that has been renamed or moved, and change it to the correct name.'
sourcePage <settingsPage: #(system source)> ^ModularSettingsPage new label: #Source << #labels >> 'Source'; icon: (ListIconLibrary visualFor: #twoPages); useRadioButtonsForEnumerations; settings: (self settingsWithPrefix: #(files))
systemPage <settingsPage: #(system) position: -20> ^VisualWorksHomePage new label: #System << #labels >> 'System'; icon: (ListIconLibrary visualFor: #balloon)
timeZonesPage <settingsPage: #(system timeZones)> ^TextSettingPage new label: #TimeZones << #labels >> 'Time Zones'; icon: (ListIconLibrary visualFor: #clock); textHolder: self timeZonesTextModel; helpText: #timeZonesHelpText << #dialogs >> 'This page contains executable expressions to set up the image for various time zones. Select the appropriate expression, and execute it using the "do it" command of the <operate> menu.'
toolsPage <settingsPage: #(tools) position: -10> ^ModularSettingsPage new label: #Tools << #labels >> 'Tools'; icon: (ListIconLibrary visualFor: #tools); settings: (self settingsWithPrefix: #(tools))
transcriptPage <settingsPage: #(system transcript)> ^ModularSettingsPage new label: #Transcript << #labels >> 'Transcript'; icon: (ListIconLibrary visualFor: #printer); settings: (self settingsWithPrefix: #(system transcript))
uriPage <settingsPage: #(uri)> ^ModularSettingsPage new label: #URI << #net >> 'URI'; icon: (ListIconLibrary visualFor: #net); settings: (self settingsWithPrefix: #(uri ))
warningsPage <settingsPage: #(tools warnings)> ^ModularSettingsPage new label: #Warnings << #labels >> 'Warnings'; icon: (ListIconLibrary visualFor: #warning); settings: (self settingsWithPrefix: #(tools warnings))
workspacePage <settingsPage: #(tools workspaces)> ^ModularSettingsPage new label: #Workspace << #labels >> 'Workspace'; icon: (ListIconLibrary visualFor: #notepad); settings: (self settingsWithPrefix: #(tools workspaces))
</methods> <methods> Tools.VisualWorksSettings class <category>settings-tools</category>
lookAndFeel70OpenDialogsAtCursor <setting: #(lookAndFeel openDialogsAtCursor)> ^(BooleanSetting on: #{UIBuilder.OpenDialogsAtCursor}) default: false; label: #OpenDialogsAtCursor << #labels >> 'Open dialog boxes centered at mouse cursor'; helpText: #OpenDialogsAtCursorHelp << #dialogs >> 'When this option is off (default), dialog boxes open centered inside the current window, or inside the screen if there is no current window. When on, dialog boxes open centered at the mouse cursor.'
tools10iconLabelLength <setting: #(tools iconLabelLength)> | list keys | list := UISettings iconLengthList. keys := list collect: [:each | each key]. ^((EnumerationSetting keys: (keys collect: [:each | each asSymbol]) choices: keys labels: (list collect: [:each | each value asString])) onUISetting: #iconLabelLength) label: #IconLabelLength1 << #labels >> 'Icon label length'; helpText: #IconLabelLengthHelpText << #dialogs >> 'The number of characters that are displayed in an icon''s label varies depending on the window manager. Window managers also differ as to how they display icon labels that are longer than the maximum. Some window managers display only the beginning of such a label, which is usually readable. Others, however, display the middle of the label, often making a long label unreadable. To make such long labels more readable, you can suggest a maximum icon label length. Any icon label longer than the maximum is compressed by dropping the middle characters. The specified maximum size is only a hint, which the window manager is free to ignore.'
tools20textSize <setting: #(tools textSize)> | adaptor | adaptor := PluggableAdaptor on: (UISettings preferenceModelFor: #textSize). adaptor getBlock: [:m | m value] putBlock: [:m :v | m value: v. TextAttributes setDefaultTo: v; resetViews] updateBlock: [:m :a :p | true]. ^((EnumerationSetting keys: #(small default large fixed) choices: #(small default large fixed) labels: (Array with: (#Small << #dialogs >> 'Small') with: (#Medium << #dialogs >> 'Medium') with: (#Large << #dialogs >> 'Large') with: (#Fixed << #dialogs >> 'Fixed'))) on: adaptor) default: #default; label: #TextSizeSetting << #labels >> 'Text size'; helpText: #TestSizeSettingHelpText << #dialogs >> 'The default TextAttributes describes how text will be rendered in VisualWorks. As delivered, the default is set to "default". It can be set to: small slightly smaller than "default", useful for small displays on the order of 640x480 pixels default the usual style, suitable for 1024x768 displays large slightly larger style, for 1600x1280 hi-res displays fixed similar to "default", but all characters are the same size--this is useful for presenting table-oriented data or in a terminal emulator.'
tools24UseNativeDialogs <setting: #(tools useNativeDialogs)> ^(BooleanSetting on: #{Dialog.UseNativeDialogs}) default: true; label: #UseNativeFileDialogs << #labels >> 'Use native file dialogs (Windows only)'; helpText: #UseNativeFileDialogsHelpText << #dialogs >> 'When this option is enabled, platform file dialogs are used to get the names of files to save or open. When turned off, portable VisualWorks dialogs are used. Currently this option has effect only on Windows.'
tools25WarnOnExitWithoutSaving <setting: #(tools warnOnExitWithoutSaving)> ^(BooleanSetting on: #{ObjectMemory.WarnOnExitWithoutSaving}) default: false; label: #WarnOnExitWithoutSavingImage << #labels >> 'Warn on exit without saving the image'; helpText: #WarnOnExitWithoutSavingImageHelp << #dialogs >> 'When this option is enabled, exiting without saving the image shows a dialog warning about the potential of losing changes in workspaces and unaccepted changes in code views.'
tools30showUIForGlobalization <setting: #(tools showUIForGlobalization)> ^(BooleanSetting onUISetting: #showInternationalization) default: false; label: #EnableUIForInternationalization << #labels >> 'Enable UI for internationalization'; helpText: #ShowUIForInternationalizationHelpText << #dialogs >> 'When this option is enabled, certain tools the VisualWorks toolset (e.g. the UI Painter''s Properties Tool) enable fields for working will message catalogs. These UI options in the tools are used when localizing applications. You may wish to leave this option disabled if you are not developing localized applications.'
tools40DebugSettingsErrors <setting: #(tools debugSettingsErrors)> ^(BooleanSetting on: #{SettingsDomain.DebugSettingsErrors}) default: false; label: #DebugSettingsManagerErrors << #labels >> 'Debug Settings Manager errors'; helpText: #DebugSettingsManagerErrorsHelpText << #dialogs >> 'When this option is enabled, if a setting or a page definition method cause an error, they are replaced in the final UI with a widget saying that an error has occurred and allowing to rerun the offending method to debug its cause.'
workspaceAutoDeclare <setting: #(tools workspaces workspaceAutoDeclare)> ^(BooleanSetting on: WorkspaceCompilerErrorHandler aspect: #silentlyDeclareVariables) default: true; label: #silentlyDeclareWorkspaceVariables << #labels >> 'Silently declare workspace variables'; helpText: #silentlyDeclareWorkspaceVariablesHelp << #dialogs >> 'This modifies how the compiler treats assignments to undeclared variables when evaluating an expression. If checked, the compiler will automatically assume that the variable should be a workspace local variable. If not checked, the compiler will ask you what kind of variable you intended, or allow you to check the spelling. This applies only to assignments--reading an undeclared variable always brings up the dialog.'
workspaceStatusBar <setting: #(tools workspaces workspaceStatusBar)> ^(BooleanSetting on: AbstractWorkspace aspect: #showStatusBar) default: true; label: #showStatusBarByDefault << #labels >> 'Show status bar by default'; helpText: #workspaceStatusBar << #dialogs >> 'If checked, all new workspaces come up with the status bar visible. If unchecked, all new workspaces come up with the status bar hidden. Changing this setting does not affect existing workspaces.'
workspaceToolbar <setting: #(tools workspaces workspaceToolbar)> ^(BooleanSetting on: AbstractWorkspace aspect: #showToolBar) default: true; label: #showToolbarByDefault << #labels >> 'Show toolbar by default'; helpText: #workspaceShowToolbarByDefault << #dialogs >> 'If checked, all new workspaces come up with the toolbar visible. If unchecked, all new workspaces come up with the toolbar hidden. Changing this setting does not affect existing workspaces.'
workspaceUseMultiPage <setting: #(tools workspaces useMultiPageWorkspaces)> ^(BooleanSetting on: AbstractWorkspace aspect: #useMultiPageWorkspaces) default: true; label: #useMultiPageWorkspaces << #labels >> 'Use multi-page workspaces'; helpText: #workspaceUseMultiPage << #dialogs >> 'Chooses whether the "New Workspace" button of the Launcher opens a new-style workspace containing multiple pages with text, or a more traditional workspace which leaves a little more window real estate to use for the text.'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-files</category>
files10fileOutType <setting: #(files fileOutType)> ^((EnumerationSetting choices: #(ChunkSourceFileFormat XMLSourceFileFormat) labels: (Array with: (#ChunkFormat << #dialogs >> 'Chunk Format') with: (#XMLFormat << #dialogs >> 'XML Format'))) onUISetting: #fileOutType) default: #XMLSourceFileFormat; label: #DefaultFileOutType << #labels >> 'Default file-out type'; helpText: #DefaultFileOutTypeHelpText << #dialogs >> 'There are two possible formats to use for file-outs. The setting on this page controls which of these formats is used by programming tools, if they do not have a way to control this feature themselves. Smalltalk chunk format saves Smalltalk programs in a form similar to that used in previous versions of VisualWorks, with Smalltalk expressions separated by exclamation marks. It is not completely compatible with VisualWorks releases prior to version 5, since in version 5 it has been extended substantially to support name spaces. XML format saves Smalltalk programs using an XML markup set designed to capture as much as possible of the VisualWorks system changes. It is a new technology, but offers the possibility of capturing much more detailed meta-information about the program than Smalltalk chunk format, and hence allows much more powerful tools for manipulating source files.'
files20MessageDirectories <setting: #(files messageDirectories)> ^((SequenceSetting of: FilenameSetting mustExist) onUISetting: #messagesList) label: #UserMessageDirectories << #labels >> 'User Message Directories'; helpText: #UserMessageDirectoriesHelpText << #dialogs >> 'Message Catalog settings The list view specifies which directories contain message catalog files. You can add, remove, or change directories in the list. Note that these directories are top level directories--the message catalog files are in subdirectories, where each subdirectory is given a name that identifies the language group for which it is intended. To add a directory, type the directory''s name into the input field, and press the Add button. To delete a directory, select it in the list and press Delete. To change a directory, select it in the list, change the name which appears in the input field, and then press Change. '
files30ParcelDirectories <setting: #(files parcelDirectories)> ^((SequenceSetting of: FilenameSetting) onUISetting: #parcelPath) label: #ParcelDirectories << #labels >> 'Parcel Directories'; helpText: #parcelPathHelp << #dialogs >> 'Parcel Search Path Settings Use this page to set the sequence of directories that are searched when loading Parcels. Parcels are typically loaded from files, and so the loading mechanism searches through files in directories on the search path to locate a suitable parcel file. If a Parcel has prerequisite parcels, they are also searched for in the directories and in the order specified in this list. Note that ''.'' is used in this list to indicate the directory in which the current parcel is being loaded from, not the directory in which the system is running. Thus, ''.'' can be used to search for a parcel''s prerequisites in the same directory as the parcel. To add a directory to the search path, enter the directory name into the input field, and press the Add button. To delete a directory, select it in the list and press Delete. To change a directory, select it in the list, change the name which appears in the input field, and then press Change.'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-printing</category>
printing10documentPrinting <setting: #(printing documentPrinting)> ^((EnumerationSetting keys: #(hostPrinting postScriptPrinting) choices: #(false true) labels: (Array with: (#Host << #dialogs >> 'Host') with: (#PostScript << #dialogs >> 'PostScript'))) on: #{Printer.UsePostscriptPrinting}) default: true; label: #DocumentPrinting1 <<#labels >> 'Document printing'; helpText: #DocumentPrintingHelpText << #dialogs >> 'Allows you to choose whether Document based printing will be via PostScript or (on MS Windows platforms only) Host printer drivers. If Host Printing is selected on a non-Windows platform, the system will default back to PostScript at print time.'
printing10textPrinting <setting: #(printing textPrinting)> ^((EnumerationSetting keys: #(documentPrinting plainTextPrinting) choices: #(false true) labels: (Array with: (#Document << #dialogs >> 'Document') with: (#PlainText << #dialogs >> 'Plain Text'))) on: #{ComposedText.UsePlainTextPrinting}) default: true; label: #TextPrinting1 << #labels >> 'Text printing'; helpText: #TextPrintingHelpText << #dialogs >> 'Use this option to choose how text view hardcopy is processed -- either by the Document system or simply written in plain text to a file ''temp.prt'' (located in the home directory).'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-look and feel</category>
lookAndFeel10lookSelection <setting: #(lookAndFeel defaultLook)> | choices names keys | names := OrderedCollection new. choices := OrderedCollection new. names add: #AutoSelect << #labels >> 'Auto Select'. choices add: #AutoSelect. UILookPolicy allSubclasses do: [:look | | lookName | (lookName := look settingsMenuName) notNil ifTrue: [names add: lookName. choices add: look fullyQualifiedReference]]. keys := choices collect: [:each | each printString asSymbol]. ^((EnumerationSetting keys: keys choices: choices labels: names) onUISetting: #defaultLookSelector) default: #'#AutoSelect'; label: #UserInterfaceLook << #labels >> 'User interface look'; helpText: #UserInterfaceLookHelpText << #dialogs >> 'Selects the default appearance and behavior of buttons, scroll bars, etc. The new look will apply to any canvas or tool window that you open subsequently. Use "Auto Select" to let VisualWorks adopt the look that is most appropriate for your operating environment. To affect the look of a single canvas while you''re editing it, use the "Look" menu of the GUI Painter Tool.'
lookAndFeel15feelSelection <setting: #(lookAndFeel defaultFeel)> | choices names keys | names := OrderedCollection new. choices := OrderedCollection new. names add: #AutoSelect << #labels >> 'Auto Select'. choices add: #AutoSelect. UIFeelPolicy allSubclasses do: [:look | | lookName | (lookName := look settingsMenuName) notNil ifTrue: [names add: lookName. choices add: look fullyQualifiedReference]]. keys := choices collect: [:each | each printString asSymbol]. ^((EnumerationSetting keys: keys choices: choices labels: names) onUISetting: #feelSelection) default: #'#AutoSelect'; label: #UserInterfaceFeel << #labels >> 'User interface feel'; helpText: #UserInterfaceFeelHelpText << #dialogs >> 'Select the platform feel that you want text editors (including browsers) to have. You may add your own Feels by subclassing from UIFeelPolicy and providing your own keyboard bindings in the class. On the class side of the custom UIFeelPolicy class, one must provide a method called "menuName" that returns a string that names the custom feel policy, e.g., ''Windows 4.0''.'
lookAndFeel20hostWindowSystem <setting: #(lookAndFeel hostWindowSystem)> | choices names | choices := #(#AutoSelect #Default #Macintosh #MSWindows5 #MSWindows4 #OSFMotif). names := (OrderedCollection new add: (#AutoSelect << #dialogs >> 'Auto Select'); add: (#DefaultLook << #dialogs >> 'Default Look'); add: (#MacintoshOS8 << #dialogs >> 'Macintosh (OS-8)'); add: (#MSWindows5 << #dialogs >> 'MS Windows 5'); add: (#MSWindows4 << #dialogs >> 'MS Windows 4'); add: (#OSFMotif << #dialogs >> 'OSF Motif'); asArray). ^((EnumerationSetting choices: choices labels: names) onUISetting: #hostWindowManagerSelector) default: #AutoSelect; label: #HostWindowManager << #labels >> 'Host window manager'; helpText: #HostWindowManagerHelpText << #dialogs >> 'This setting is a companion to the Look Selection setting. It tells VisualWorks which window manager you are using, so windows can be placed correctly when they are opened automatically.'
lookAndFeel40windowPlacement <setting: #(lookAndFeel windowPlacement)> ^((EnumerationSetting keys: #(auto user) choices: #(false true) labels: (Array with: (#Automatic << #dialogs >> 'Automatic') with: (#ByUser << #dialogs >> 'By User'))) onUISetting: #windowPlacement) default: #auto; label: #WindowPlacement1 << #labels >> 'Window placement'; helpText: #WindowPlacementHelpText << #dialogs >> 'This option determines whether newly created windows are positioned on the screen by the user or are automatically positioned under the current mouse position with the default size.'
lookAndFeel50mouseButtonOrder <setting: #(lookAndFeel mouseButtonOrder)> ^((EnumerationSetting keys: #(#swo #sow) choices: #(false true) labels: (Array with: (#selectWindowOperate << #dialogs >> '<select> <window> <operate>') with: (#selectOperateWindow << #dialogs >> '<select> <operate> <window>'))) onUISetting: #mouseButtons) default: #swo; label: #MouseButtonOrder1 << #labels >> 'Mouse button order'; helpText: #MouseButtonOrderHelpText << #dialogs >> 'This setting selects what mouse buttons perform what functions. The first option binds the right mouse button to the <operate> menu of the current view, while the middle button opens the <window> menu. The second option swaps the roles of the middle and the right buttons. The second option is the traditional Smalltalk-80 button configuration (also known as red, yellow, blue). The first option, however, is the default because it works better with two-button mice. For those, the <window> function becomes unassigned while the right button remains bound to the more frequently used <operate> menu.'
lookAndFeel60IgnoreButtonDoubleClick <setting: #(lookAndFeel ignoreButtonDoubleClick)> ^(BooleanSetting on: #{BasicButtonController.IgnoreDoubleClick}) default: false; label: #IgnoreActionButtonDoubleClicks << #labels >> 'Ignore action button double clicks'; helpText: #IgnoreActionButtonDoubleClicksHelp << #dialogs >> 'When this option is off (default), rapid clicks on action buttons are recognized as separate clicks no matter how quickly the button is clicked. When the option is on, they are considered to be double clicks and in effect ignored.'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-memory policy</category>
freeMemoryUpperBoundSetting <setting: #(base memoryPolicy freeMemoryUpperBound)> ^((IntegerSetting min: 100000) on: #{MemoryPolicy.DefaultFreeMemoryUpperBound}) id: #(memoryPolicy defaultFreeMemoryUpperBound); default: 8388608
growthRegimeUpperBoundSetting <setting: #(base memoryPolicy growthRegimeUpperBound)> ^((IntegerSetting min: 100000) on: #{MemoryPolicy.DefaultGrowthRegimeUpperBound}) id: #(memoryPolicy defaultGrowthRegimeUpperBound); default: 32000000
memoryUpperBoundSetting <setting: #(base memoryPolicy memoryUpperBound)> ^((IntegerSetting min: 100000) on: #{MemoryPolicy.DefaultMemoryUpperBound}) id: #(memoryPolicy defaultMemoryUpperBound); default: 512000000
</methods> <methods> Tools.VisualWorksSettings class <category>settings-PS options</category>
psOptions05Level <setting: #(system printing psOptions level)> ^((EnumerationSetting keys: #(#'1' #'2' #'3') choices: #(1 2 3)) on: PostScriptPrinter aspect: #languageLevel) label: #LanguageLevel << #labels >> 'Language level'; default: #'3'; helpText: #LanguageLevelHelpText << #dialogs >> 'PostScript printer language implementation level. Choose the implementation version supported by your printer.'
psOptions10Color <setting: #(system printing psOptions printsColor)> ^(BooleanSetting on: PostScriptPrinter aspect: #printsColor) default: false; label: #ColorPrinting << #labels >> 'Color printing'; helpText: #ColorPrintingHelpText << #dialogs >> 'Enable color printing to PostScript printers that implement PostScript Level 2. If you attempt to print PostScript generated for such a printer on a Level 1 printer, you will not get any output.'
psOptions20InvertLandscape <setting: #(system printing psOptions invertLandscape)> ^(BooleanSetting on: PostScriptPrinter aspect: #invertLandscape) default: false; label: #InvertLandscape << #labels >> 'Invert landscape position'; helpText: #InvertLandscapeHelpText << #dialogs >> 'Rotate landscape orientation 180 degrees.'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-netClient</category>
uriFtpAutoloadDefault <setting: #(uri ftpAutoload )> ^(BooleanSetting on: URI aspect: #autoloadFtp) label: #FtpAutoload<< #net >> 'FTP parcel autoload'; helpText: #FtpAutoloadHelpText << #net >> 'Specifies whether or not autoload the FTP parcel when the ftp url is created'
uriHttpAutoloadDefault <setting: #(uri httpAutoload )> ^(BooleanSetting on: URI aspect: #autoloadHttp) label: #HttpAutoload<< #net >> 'HTTP parcel autoload'; helpText: #HttpAutoloadHelpText << #net >> 'Specifies whether or not autoload the HTTP parcel when the http url is created'
uriHttpsAutoloadDefault <setting: #(uri httpsAutoload )> ^(BooleanSetting on: URI aspect: #autoloadHttps) label: #HttpsAutoload<< #net >> 'HTTPS parcel autoload'; helpText: #HttpsAutoloadHelpText << #net >> 'Specifies whether or not autoload the HTTPS parcel when the https url is created'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-loading</category>
loading10allowLoadingParcels <setting: #(loading allowLoadingParcels)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #allowParcelLoading) default: true; label: #AllowParcelLoading << #labels >> 'Allow Command-Line Parcel Loading (-pcl,-cnf)'; helpText: #AllowParcelLoadingHelpText << #dialogs >> 'When this option is enabled, it will be possible to load parcels from the command-line using the -pcl and -cnf options. Note that this is a potential security risk for packaged applications, and you may want to disable it for those uses.'
loading12useDefaultConfigFile <setting: #(loading useDefaultConfigFile)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #useDefaultConfigFile) default: true; label: #UseDefaultConfigFile << #labels >> 'Look for Default Config File (imagename.cnf)'; helpText: #UseDefaultConfigFileHelpText << #dialogs >> 'When this option is enabled, on startup the image will look for a file named "<imagename>.cnf". If it is found, this will be treated as a config file (see the -cnf flag) and loaded. Note that this is a potential security risk for packaged applications, and you may want to disable it for those uses.'
loading15allowFilein <setting: #(loading allowFilein)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #allowFilein) default: true; label: #AllowFileIn << #labels >> 'Allow Command-Line File-ins (-filein, headless-startup.st)'; helpText: #AllowFileinHelpText << #dialogs >> 'When this option is enabled, it will be possible to run arbitrary code from a Smalltalk file specified on the command line, using the -filein option. Note that this is a potential security risk for packaged applications, and you may want to disable it for those uses. This setting also controls whether the headless image startup file is read or not.'
loading20allowExpressions <setting: #(loading allowExpressions)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #allowExpressions) default: true; label: #AllowExpressions << #labels >> 'Allow Command-Line Expressions(-doit,-evaluate)'; helpText: #AllowExpressionsHelpText << #dialogs >> 'When this option is enabled, it will be possible to run arbitrary code on the command line, using the -doit and -evaluate options. Note that this is a potential security risk for packaged applications, and you may want to disable it for those uses.'
loading25allowSettings <setting: #(loading allowSettings)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #allowSettings) default: true; label: #AllowSettings << #labels >> 'Allow Command-Line Settings (-settings)'; helpText: #AllowSettingsHelpText << #dialogs >> 'When this option is enabled, it will be possible to load settings on the command line using the -settings option. Note that this is a potential (although small) security risk for packaged applications, and you may want to disable it for those uses.'
loading30allowDevelopment <setting: #(loading allowDevelopment)> ^(BooleanSetting on: ImageConfigurationSystem aspect: #allowDevelopment) default: true; label: #AllowDevelopment << #labels >> 'Allow Command-Line Runtime Mode (-development,-runtime)'; helpText: #AllowDevelopmentHelpText << #dialogs >> 'When this option is enabled, it will be possible to set whether the image is in runtime or development mode from the command line. Note that this is a possible security risk for packaged applications, and you may want to disable it for those uses.'
</methods> <methods> Tools.VisualWorksSettings class <category>settings-transcript</category>
transcriptFileName <setting: #(system transcript transcriptFileName) position: 30> ^(StringSetting on: HeadlessImage current aspect: #transcriptFilename) default: HeadlessImage current defaultTranscriptFilename; label: #TranscriptFileName << #labels >> 'Transcript File Name'; helpText: #TranscriptToFileNameHelp << #dialogs >> 'If logging the transcript to a file, which file should we use. Note that this setting will not take effect until the image restarts, or until HeadlessImage>>setUpTranscript is run.'
transcriptToFile <setting: #(system transcript transcriptToFile) position: 10> ^(BooleanSetting on: HeadlessImage current aspect: #transcriptToFile) default: false; label: #TranscriptToFile << #labels >> 'Send Transcript writes to a file'; helpText: #TranscriptToFileHelp << #dialogs >> 'When running with a GUI, should writes to the Transcript also be sent to a file. Note that this setting will not take effect until the image restarts, or until HeadlessImage>>setUpTranscript is run.'
transcriptToFileHeadless <setting: #(system transcript transcriptToFileHeadless) position: 20> ^(BooleanSetting on: HeadlessImage current aspect: #transcriptToFileHeadless) default: true; label: #TranscriptToFileHeadless << #labels >> 'Send headless Transcript writes to a file'; helpText: #TranscriptToFileHeadlessHelp << #dialogs >> 'When the system is headless, should writes to the Transcript also be sent to a file. Note that this setting will not take effect until the image restarts, or until HeadlessImage>>setUpTranscript is run.'
transcriptToStandardOut <setting: #(system transcript transcriptToStandardOut) position: 40> ^(BooleanSetting on: HeadlessImage current aspect: #transcriptToStandardOut) default: false; label: #TranscriptToStandardOut << #labels >> 'Send Transcript writes to standard out (if available)'; helpText: #TranscriptToStandardOutHelp << #dialogs >> 'Should writes to the Transcript also be sent to the standard output stream. Note that standard out may not be available on all platforms, or with all VMs. If it is not available, this will be ignored. Also note that this setting will not take effect until the image restarts, or until HeadlessImage>>setUpTranscript is run.'
transcriptToStandardOutHeadless <setting: #(system transcript transcriptToStandardOutHeadless) position: 50> ^(BooleanSetting on: HeadlessImage current aspect: #transcriptToStandardOutHeadless) default: true; label: #TranscriptToStandardOutHeadless << #labels >> 'Send headless Transcript writes to standard out (if available)'; helpText: #TranscriptToStandardOutHeadlessHelp << #dialogs >> 'When the system is running headless, should writes to the Transcript also be sent to the standard output stream. Note that standard out may not be available on all platforms, or with all VMs. If it is not available, this will be ignored. Also note that this setting will not take effect until the image restarts, or until HeadlessImage>>setUpTranscript is run.'
</methods> <methods> Tools.VisualLauncher <category>actions</category>
setVisualWorksHome "VisualLauncher someInstance setVisualWorksHome" <menuItem: #(#_SetVisualWorksHome #menus '&Set VisualWorks Home...' ) nameKey: nil menu: #(#menuBar file) position: 19.1> VisualWorksSettings openManagerPage: #(system)
visualWorksSettings "Open a new Settings control panel." <menuItem: #(#Settings #menus 'Settings') icon: #properties nameKey: #visualWorksSettings menu: #(#launcherToolBar) position: 10.02 helpText: #(#EditTheSystemOptions #menus 'Edit the system options')> <menuItem: #(#settings #menus '&Settings') icon: #properties nameKey: #visualWorksSettings menu: #(#menuBar #system) position: 1000.01> SettingsManager openOrRaise: VisualWorksSettings
</methods> <methods> Tools.ListIconLibrary class <category>resources</category>
loadOptions16x16 "UIMaskEditor new openOnClass: self andSelector: #loadOptions16x16" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 2 bitsPerPixel: 2 palette: (Graphics.MappedPalette withColors: (#(#(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(0 0 0)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(1735 2666 3630)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(8191 8191 8191)) #(#{Graphics.ColorValue} #scaledRed:scaledGreen:scaledBlue: #(3790 5075 6456)) ) collect: [:each | (each at: 1) value perform: (each at: 2) withArguments: (each at: 3)])) usingBits: #[170 170 170 170 170 170 234 170 170 171 90 170 170 173 66 170 170 170 106 170 171 170 106 186 173 170 106 182 181 90 105 84 164 166 102 146 168 166 102 138 170 166 102 170 170 166 102 170 170 166 102 170 170 166 102 170 170 170 170 170 170 170 170 170])
loadOptions16x16mask "UIMaskEditor new openOnClass: self andSelector: #loadOptions16x16mask" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 0 128 0 0 1 192 0 0 3 224 0 0 0 128 0 0 16 132 0 0 48 134 0 0 124 159 0 0 50 166 0 0 18 164 0 0 2 160 0 0 2 160 0 0 2 160 0 0 2 160 0 0 0 0 0 0 0 0 0 0])
psPrinter16x16 "Tools.UIMaskEditor new openOnClass: self andSelector: #psPrinter16x16" <resource: #image> ^CachedImage on: (Image extent: 16@16 depth: 4 bitsPerPixel: 4 palette: (Graphics.MappedPalette withColors: ((Core.Array new: 9) at: 1 put: Graphics.ColorValue black; at: 2 put: (Graphics.ColorValue scaledRed: 5548 scaledGreen: 5548 scaledBlue: 5548); at: 3 put: (Graphics.ColorValue scaledRed: 6869 scaledGreen: 6869 scaledBlue: 6869); at: 4 put: (Graphics.ColorValue scaledRed: 3170 scaledGreen: 3170 scaledBlue: 3170); at: 5 put: Graphics.ColorValue white; at: 6 put: Graphics.ColorValue yellow; at: 7 put: Graphics.ColorValue red; at: 8 put: (Graphics.ColorValue scaledRed: 2113 scaledGreen: 2113 scaledBlue: 2113); at: 9 put: (Graphics.ColorValue scaledRed: 4227 scaledGreen: 4227 scaledBlue: 4227); yourself)) usingBits: #[68 68 68 68 68 68 68 68 68 68 71 119 112 68 68 68 68 68 71 102 4 4 68 68 68 68 71 102 4 64 68 68 68 68 71 102 0 0 68 68 68 68 71 102 102 96 68 68 68 68 135 102 102 103 34 4 68 72 40 136 136 136 40 4 68 130 34 34 34 34 136 4 68 129 17 17 17 17 136 4 68 129 17 17 21 81 136 4 68 129 17 17 17 17 128 68 68 129 17 17 17 17 4 68 68 67 51 51 51 48 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68 68])
psPrinter16x16mask "UIMaskEditor new openOnClass: self andSelector: #printer16x16mask" <resource: #image> ^CachedImage on: ((Image extent: 16@16 depth: 1 bitsPerPixel: 1 palette: CoveragePalette monoMaskPalette usingBits: #[0 0 0 0 7 240 0 0 7 240 0 0 7 240 0 0 7 240 0 0 7 252 0 0 15 254 0 0 31 254 0 0 63 254 0 0 63 254 0 0 63 254 0 0 63 252 0 0 63 248 0 0 31 240 0 0 0 0 0 0 0 0 0 0]))
</methods> "Imported Classes:" self error: 'Attempting to file-in parcel imports. Choose terminate or close' <class> <name>VisualLauncher</name> <environment>Tools</environment> <super>UI.ApplicationModel</super> <private>false</private> none menuBar toolBar textCollector toolDock <imports></imports> <category>Tools-Misc</category> <attributes> <package>Tools-Misc</package> </attributes> </class> <class> <name>SettingsDomain</name> <environment>Tools</environment> <super>Core.Object</super> <private>false</private> none cachedSettings cachedPages unappliedSnapshots current <imports></imports> <category>Tools-Settings</category> <attributes> <package>Tools-Settings</package> </attributes> </class> <class> <name>SettingsManagerPage</name> <environment>Tools</environment> <super>UI.ApplicationModel</super> <private>false</private> none manager id position label icon children definingMethod <imports></imports> <category>Tools-Settings-UI</category> <attributes> <package>Tools-Settings</package> </attributes> </class>