System-Support

AbstractLauncher
The class AutoStart in combination with the Launcher classes provides a mechanism for starting Squeak from the command line or a web page. Parameters on the command line or in the embed tag in the web page a parsed and stored in the lauchner's parameter dictionary.
Subclasses can access these parameters to determine what to do.
CommandLineLauncherExample provides an example for a command line application. if you start squeak with a command line 'class Integer' it will launch a class browser on class Integer.
To enable this execute
CommandLineLauncherExample activate
before you save the image.
To disable execute
CommandLineLauncherExample deactivate
The PluginLauchner is an example how to use this framework to start Squeak as a browser plugin. It looks for a parameter 'src' which should point to a file containing a squeak script.
activate
autoStarter
commandLine:
Start up this launcher from within Squeak as if it Squeak been launched the given command line.
deactivate
determineParameterNameFrom:
Determine which of the given alternate parameter names is actually used.
extractParameters
includesParameter:
Return if the parameter named parName exists.
numericParameterAtOneOf:ifAbsent:
Return the parameter named using one of the alternate names or an empty string
parameterAt:
Return the parameter named parName or an empty string
parameterAt:ifAbsent:
Return the parameter named parName.
Evaluate the block if parameter does not exist.
parameterAtOneOf:
Return the parameter named using one of the alternate names or an empty string
parameters
parameters:
startUp
A backstop for subclasses. Note that this is not a class message (most startUps are class messages).
AbstractSoundSystem
This is the abstract base class for a sound system. A sound system offers a small protocol for playing sounds and making beeps and works like a facade towards the rest of Squeak. A sound system is registered in the application registry SoundService and can be accessed by "SoundService default" like for example:
SoundService default playSoundNamed: 'croak'
The idea is that as much sound playing as possible should go through this facade. This way we decouple the sound system from the rest of Squeak and make it pluggable. It also is a perfect spot to check for the Preference class>>soundsEnabled.
Two basic subclasses exist at the time of this writing, the BaseSoundSystem which represents the standard Squeak sound system, and the DummySoundSystem which is a dummy implementation that can be used when there is no sound card available, or when the base sound system isn't in the image, or when you simply don't want to use the available sound card.
beep
Make a primitive beep.
playSampledSound:rate:
playSoundNamed:
playSoundNamed:ifAbsentReadFrom:
playSoundNamedOrBeep:
randomBitsFromSoundInput:
sampledSoundChoices
shutDown
Default is to do nothing.
soundNamed:
Author
I am responsible for the full name used to identify the current code author.
fullName
Answer the full name to be used to identify the current code author.
fullName:
fullNamePerSe
Answer the currently-prevailing author full name, such as it is, empty or not
ifUnknownAuthorUse:during:
If no author is set use the name aString while executing aBlock.
initialize
Subclasses should redefine this method to perform initializations on instance creation
initials
initials:
initialsPerSe
messagePrompt
new
requestFullName
requestInitials
requestName
reset
uniqueInstance
uniqueInstance:
AutoStart
An AutoStart is xxxxxxxxx.
Instance Variables
parameters: <Object>
parameters
- xxxxx
active
active:
addLauncher:
addLauncherFirst:
checkForPluginUpdate
checkForUpdates
deinstall
initialize
Subclasses should redefine this method to perform initializations on instance creation
installedLaunchers
processUpdates
removeLauncher:
shutDown:
startUp:
Beeper
Beeper provides simple audio (or in some other way) feedback to the user.
The recommended use is "Beeper beep" to give the user the equivalence of a beep. If you want to force the beep to use the primitive in the VM for beeping, then use "Beeper beepPrimitive". In either case, if sounds are disabled there will be no beep.
The actual beeping, when you use "Beeper beep", is done by sending a #play message to a registered playable object. You can register your own playable object by invoking the class side method #setDefault: passing in an object that responds to the #play message.
The default playable object is an instance of Beeper itself which implements #play on the instance side. That implementation delegates the playing of the beep to the default SoundService.
Note that #play is introduced as a common interface between AbstractSound and Beeper.
This way we can register instances of AbstractSound as playable entities, for example:
Beeper setDefault: (SampledSound new
setSamples: self coffeeCupClink
samplingRate: 12000).
Then "Beeper beep" will play the coffeeCup sound.
beep
beepPrimitive
clearDefault
default
newDefault
play
This is how the default Beeper makes a beep,
by sending beep to the default sound service.
The sound system will check if sounds are enabled.
primitiveBeep
setDefault:
BooleanPreferenceView
I am responsible for building the visual representation of a preference that accepts true and false values
handlesPanel:
initialize
Subclasses should redefine this method to perform initializations on instance creation
offerPreferenceNameMenu:with:in:
the user clicked on a preference name -- put up a menu
representativeButtonWithColor:inPanel:
Return a button that controls the setting of prefSymbol. It will keep up to date even if the preference value is changed in a different place
unload
ColorTheme
A ColorTheme is xxxxxxxxx.
Instance Variables
baseColors
cancelColor
current
dialog3DTitles
dialogBorderColor
dialogBorderWidth
dialogButtonBorderWidth
dialogColor
dialogPaneBorderColor
dialogPaneBorderWidth
dialogPaneRampOrColor
dialogRampOrColor
dockingBarAutoGradient
dockingBarColor
dockingBarGradientRamp
helpColor
menuBorderColor
menuBorderWidth
menuColor
menuLineColor
menuSelectionColor
menuTitleBorderColor
menuTitleBorderWidth
menuTitleColor
normal:
okColor
DefaultExternalDropHandler
An alternative default handler that uses the file-list services to process files.
chooseServiceFrom:
private - choose a service from aCollection asking the user if
needed
handle:in:dropEvent:
the file was just droped, let's do our job
initialize
Subclasses should redefine this method to perform initializations on instance creation
servicesForFileNamed:
private - answer a collection of file-services for the file named
aString
unload
unwantedSelectors
private - answer a collection well known unwanted selectors
DummySoundSystem
This is a dummy sound system registered in SoundService to absorb all sound playing and to use the primitive beep instead of sampled sounds when playing a beep.
beep
Make a primitive beep.
initialize
Subclasses should redefine this method to perform initializations on instance creation
playSampledSound:rate:
Do nothing.
playSoundNamed:
Do nothing.
playSoundNamed:ifAbsentReadFrom:
Do nothing.
playSoundNamedOrBeep:
There is no sound support, so we make the beep.
randomBitsFromSoundInput:
I'm not sure what the right thing to do here is.
sampledSoundChoices
No choices other than this.
soundNamed:
There are no sounds to look up.
unload
ExternalDropHandler
An ExternalDropHandler is xxxxxxxxx.
Instance Variables
action: <Object>
extension: <Object>
type: <Object>
action
- xxxxx
extension
- xxxxx
type
- xxxxx
chooseServiceFrom:
defaultGZipHandler
defaultHandler
defaultHandler:
defaultImageHandler
defaultProjectHandler
extension
handle:in:dropEvent:
initialize
Subclasses should redefine this method to perform initializations on instance creation
lookupExternalDropHandler:
lookupServiceBasedHandler:
matchesExtension:
matchesTypes:
registerHandler:
registerStandardExternalDropHandlers
registeredHandlers
resetRegisteredHandlers
type
type:extension:action:
unwantedSelectors
ExternalSemaphoreTable
By John M McIntosh johnmci@smalltalkconsulting.com
This class was written to mange the external semaphore table. When I was writing a Socket test server I discovered various race conditions on the access to the externalSemaphore table. This new class uses class side methods to restrict access using a mutex semaphore. It seemed cleaner to deligate the reponsibility here versus adding more code and another class variable to SystemDictionary
Note that in Smalltalk recreateSpecialObjectsArray we still directly play with the table.
clearExternalObjects
externalObjects
initialize
Subclasses should redefine this method to perform initializations on instance creation
registerExternalObject:
safelyRegisterExternalObject:
safelyUnregisterExternalObject:
unregisterExternalObject:
ExternalSettings
ExternalSettings manages settings kept externally, e.g. files.
Objects can register themselves as clients to be notified at startup time to read their settings.
Eventually all the preferences should be managed through this mechanism.
assuredPreferenceDirectory
initialize
Subclasses should redefine this method to perform initializations on instance creation
parseServerEntryArgsFrom:
preferenceDirectory
preferenceDirectoryName
registerClient:
registeredClients
shutDown
startUp
FontSubstitutionDuringLoading
signaled by font loading code when reading a DiskProxy that calls for a missing font.
defaultAction
No action is taken. The value nil is returned as the value of the message that signaled the exception.
familyName
Answer the value of familyName
familyName:
Set the value of familyName
forFamilyName:pixelSize:
pixelSize
Answer the value of pixelSize
pixelSize:
Set the value of pixelSize
printOn:
Append to the argument, aStream, a sequence of characters that
identifies the receiver.
HTTPClient
A HTTPClient is xxxxxxxxx.
Instance Variables
browserSupportsAPI
browserSupportsAPI:
composeMailTo:subject:body:
determineIfRunningInBrowser
exampleMailTo
examplePostArgs
examplePostMultipart
getDirectoryListing:
httpGet:
httpGetDocument:
httpPostDocument:args:
httpPostDocument:target:args:
httpPostMultipart:args:
isRunningInBrowser
isRunningInBrowser:
mailTo:message:
pluginHttpPostMultipart:args:
requestURL:target:
shouldUsePluginAPI
uploadFileNamed:to:user:passwd:
HaloThemePreferenceView
I am responsible for building the view for the preference that choose the halo theme
haloThemeRadioButtons
Answer a column of butons representing the choices of halo theme
handlesPanel:
initialize
Subclasses should redefine this method to perform initializations on instance creation
representativeButtonWithColor:inPanel:
unload
Imports
I represent imported resources such as images, sounds, and other kind of files.
For now I only store images in a simple way.
To access my default instance use: Imports default. However I'm not a strict singleton
and clients may create several of me using new.
default
default:
images
returns all the imported images
importImage:named:
importImageDirectory:
importImageDirectoryWithSubdirectories:
importImageFromFileNamed:
imports
initialize
Subclasses should redefine this method to perform initializations on instance creation
namesAndImagesDo:
iterate over all the names and image
LRUCache
I'm a cache of values, given a key I return a Value from the cache or from the factory
at:
answer the object for aKey, if not present in the cache creates it.
Clone the factory block before calling in case of multiple processes!
initializeSize:factory:
initialize the receiver's size and factory
printOn:
Append to the argument, aStream, a sequence of characters
that identifies the receiver.
size:factory:
test
test2
MczInstaller
A MczInstaller is xxxxxxxxx.
Instance Variables
stream: <Object>
zip: <Object>
stream
- xxxxx
zip
- xxxxx
associate:
checkDependencies
clearVersionInfo
extension
extractInfoFrom:
extractPackageName
extractVersionInfo
fileReaderServicesForFile:suffix:
initialize
Subclasses should redefine this method to perform initializations on instance creation
install
installFileNamed:
installMember:
installStream:
loadVersionFile:
on:
parseMember:
recordVersionInfo
registerForFileList
scanner
serviceLoadVersion
services
storeVersionInfo:
stream:
unloadMonticello
useNewChangeSetDuring:
versionInfo
versions:anySatisfy:
Preference
Represents a true/false flag that is under user control and which can be interrogated by a call to Preferences
viewRegistry the registry of the classes responsible for building my view
name a symbol, the formal name of the preference.
value a boolean, the current value
defaultValue the default value of the preference
helpString string or text, constituting the help message
localToProject boolean, whether each project holds its own version
categoryList list of categories under which to offer this
changeInformee whom, if anyone, to inform if the value changes:
changeSelector what selector to send to the changeInformee when the value changes
categoryList
Answer the categoryList
categoryList:
Set the receiver's categoryList
changeInformee
changeInformee:
Set the object to be informed when my value changes
changeInformee:changeSelector:
Set the changeInformee and changeSelector as specified
copyName
Copy the name of the given preference to the clipboard
defaultValue
Answer this preference's defaultValue
defaultValue:
Set the receiver's defaultValue
helpString
Answer the help string provided for the receiver
isObsolete
isProjectLocalString
Answer a string representing whether sym is a project-local preference or not
localToProject
Answer whether this preference is project-local
name
Answer this preference's name
name:defaultValue:helpString:localToProject:categoryList:changeInformee:changeSelector:viewRegistry:
Initialize the preference from the given values. There is an extra tolerence here for the symbols #true, #false, and #nil, which are interpreted, when appropriate, as meaning true, false, and nil
notifyInformeeOfChange
If there is a changeInformee, notify her that I have changed value
preferenceValue
Answer the current value of the preference
preferenceValue:
set the value as indicated, and invoke the change selector if appropriate
printOn:
Print a string decribing the receiver to the given stream
rawValue:
set the value as indicated, with no side effects
representativeButtonWithColor:inPanel:
restoreDefaultValue
restore the default value to the preference
togglePreferenceValue
Toggle whether the value of the preference. Self must be a boolean preference.
toggleProjectLocalness
Toggle whether the preference should be held project-by-project or globally
viewClassForPanel:
viewForPanel:
viewRegistry
viewRegistry:
PreferenceView
My subclasses instances are responsible for building the visual representation of each kind of preference.
handlesPanel:
initializeWithPreference:
preference
preference:
representativeButtonWithColor:inPanel:
tearOffButton
Hand the user a button the can control this
PreferenceViewRegistry
PreferenceViewRegistry is much like the AppRegistry classes. Its purpose is to allow PreferenceBrowser implementers to register its own views for each kind of preference.
initialize
Subclasses should redefine this method to perform initializations on instance creation
ofBooleanPreferences
ofColorPreferences
ofFontPreferences
ofHaloThemePreferences
ofNumericPreferences
ofSoundThemePreferences
ofTextPreferences
ofUIThemePreferences
register:
registeredClasses
registries
registryOf:
unregister:
viewClassFor:
viewOrder
answer the order in which the registered views should appear relative to the other views
viewOrder:
Preferences
A general mechanism to store preference choices. The default setup treats any symbol as a potential boolean flag; flags unknown to the preference dictionary are always returned as false.
To open the control panel: Preferences openFactoredPanel
To read how to use the panel (and how to make a preference be per-project):
Preferences giveHelpWithPreferences
All messages are on the class side.
To query a a preference:
Preferences logDebuggerStackToFile
or some people prefer the more verbose
Preferences valueOfFlag: #logDebuggerStackToFile
You can make up a new preference any time. Do not define a new message in Preferences class. Accessor methods are compiled automatically when you add a preference as illustrated below:
To add a preference (e.g. in the Postscript of a fileout):
Preferences addPreference: #samplePreference categories: #(general browsing)
default: true balloonHelp: 'This is an example of a preference added by a do-it'
projectLocal: false changeInformee: nil changeSelector: nil.
To change a preference programatically:
Preferences disable: #logDebuggerStackToFile.
Or to turn it on,
Preferences enable: #logDebuggerStackToFile.
Curvier
DPConflict
DPDebugging
DPDuplicated
DPLocal
DPLong
DPOverride
DPRecentlyModified
DPRequired
DPSuperSend
DPSupplied
DPUncommented
FreeTypeCacheSize
GlyphContrast
HintingFull
HintingLight
HintingNone
HintingNormal
MonitorTypeCRT
MonitorTypeLCD
UpdateFontsAtImageStartup
aaFontsColormapDepth
acceptAnnotationsFrom:
addBooleanPreference:categories:default:balloonHelp:
addBooleanPreference:categories:default:balloonHelp:projectLocal:changeInformee:changeSelector:
addBooleanPreference:category:default:balloonHelp:
addColorPreference:categories:default:balloonHelp:
addColorPreference:category:default:balloonHelp:
addFontPreference:categories:default:balloonHelp:
addFontPreference:category:default:balloonHelp:
addModelItemsToWindowMenu:
aMenu is being constructed to be presented to the user in response to the user's pressing on the menu widget in the title bar of a morphic window. Here, the model is given the opportunity to add any model-specific items to the menu, whose default target is the SystemWindow itself.
addNumericPreference:categories:default:balloonHelp:
addNumericPreference:category:default:balloonHelp:
addPreference:categories:default:balloonHelp:
addPreference:categories:default:balloonHelp:projectLocal:changeInformee:changeSelector:
addPreference:categories:default:balloonHelp:projectLocal:changeInformee:changeSelector:viewRegistry:
addPreference:category:default:balloonHelp:
addTextPreference:categories:default:balloonHelp:
addTextPreference:category:default:balloonHelp:
allPreferenceObjects
allowBlockArgumentAssignment
allowUnderscoreAssignment
allwaysShowVScrollBar
alternateHandlesLook
alternativeButtonsInScrollBars
alwaysHideHScrollbar
alwaysShowConnectionVocabulary
alwaysShowHScrollbar
alwaysShowVScrollbar
annotationEditingWindow
annotationInfo
annotationPanes
annotationPanesChanged
areaFillsAreTolerant
areaFillsAreVeryTolerant
autoFocusForColumns
autoIndent
automaticFlapLayout
automaticFlapLayoutString
automaticKeyGeneration
automaticPlatformSettings
balloonHelpDelayTime
balloonHelpEnabled
beDynamic
bigDisplay
biggerHandles
borderColorWhenRunning
browseThemes
browseToolClass
browseWithPrettyPrint
browserWindowColor
canRecordWhilePlaying
caretWidth
caretWidth:
caseSensitiveFinds
categoriesContainingPreference:
categoryNames
cautionBeforeClosing
changeListWindowColor
changeSorterWindowColor
chasingBrowsers
checkForSlips
checkForUnsavedProjects
checkForWindowColors
chooseBalloonHelpFont
chooseCodeFont
chooseEToysTitleFont
chooseFlapsFont
chooseFontWithPrompt:andSendTo:withSelector:
chooseFontWithPrompt:andSendTo:withSelector:highlight:
chooseFontWithPrompt:andSendTo:withSelector:highlightSelector:
chooseHaloLabelFont
chooseInitialSettings
chooseListFont
chooseMenuFont
chooseStandardButtonFont
chooseSystemFont
chooseWindowTitleFont
classCommentOnClassSelect
classCommentVersionsBrowserWindowColor
classicHaloSpecs
classicHalosInForce
cmdDotEnabled
cmdGesturesEnabled
cmdKeysInText
compileAccessMethodForPreference:
compileHardCodedPref:enable:
conversionMethodsAtFileOut
cpuWatcherEnabled
customHaloSpecs
customHalosInForce
darkenStandardWindowPreferences
debugHaloHandle
debugLogTimestamp
debugMenuItemsInvokableFromScripts
debugPrintSpaceLog
debugShowDamage
debuggerWindowColor
decorateBrowserButtons
defaultAnnotationRequests
defaultAnnotationRequests:
defaultAuthorName
defaultPaintingExtent
defaultValueTableForCurrentRelease
defaultWindowColor
defaultWorldColor
desktopColor
desktopColor:
desktopMenuTitle
dictionaryOfPreferences
dictionaryOfPreferences:
diffsInChangeList
diffsWithPrettyPrint
disable:
disableGently:
disableProgrammerFacilities
disableProgrammerFacilitiesWithoutWarning
dismissAllOnOptionClose
doesNotUnderstand:
Handle the fact that there was an attempt to send the given message to the receiver but the receiver does not understand this message (typically sent from the machine when a message is sent to the receiver and no method is defined for that selector).
dualChangeSorterWindowColor
duplicateAllControlAndAltKeys
duplicateControlAndAltKeys
dynamicProtocolActivation
easySelection
ecompletionCaseSensitive
ecompletionEnabled
ecompletionSmartCharacters
editAnnotations
editCustomHalos
editableStringMorphs
enable:
enableGently:
enableLocalSave
enableOrDisable:asPer:
enableProgrammerFacilities
enableProjectNavigator
expandedPublishing
expungeParameter:
externalFocusForPluggableText
extraDebuggerButtons
fadedBackgroundWindows
fastDragWindowForMorphic
fenceSoundEnabled
fenceSoundEnabled:
fileContentsBrowserWindowColor
fileListWindowColor
fontConfigurationMenu
fontFactor
fullScreenLeavesDeskMargins
generalizedYellowButtonMenu
giveHelpWithPreferences
gradientButtonLook
gradientMenu
gradientScrollBars
gradientScrollbarLook
haloEnclosesFullBounds
haloSpecifications
haloSpecificationsForWorld
haloTheme
haloTransitions
hierarchyBrowserIsRB
higherPerformance
honorDesktopCmdKeys
httpProxyPort
httpProxyServer
iconicHaloSpecifications
iconicHalosInForce
includeSoundControlInNavigator
infiniteUndo
infiniteUndoChanged
initializeDictionaryOfPreferences
initializeParameters
initializeTextHighlightingParameters
inlineServicesInMenu
insertionPointColor
insertionPointColor:
inspectParameters
installBrightWindowColors
installClassicHaloSpecs
installCustomHaloSpecs
installHaloSpecsFromArray:
installHaloTheme:
installIconicHaloSpecs
installMissingWindowColors
installPastelWindowColors
installSimpleHaloSpecs
installTheme:
installUniformWindowColors
installWindowColorsVia:
instanceBrowserWindowColor
keepTasklistOpen
keyboardFocusColor
keyboardFocusColor:
lexiconWindowColor
lightenStandardWindowPreferences
loadPreferencesFrom:
localeChanged
logDebuggerStackToFile
magicHalos
maintainHalos
maxBalloonHelpLineLength
menuAppearance3d
menuBorderColor
menuBorderWidth
menuButtonInToolPane
menuColor
menuColorFromWorld
menuColorString
menuKeyboardControl
menuLineColor
menuSelectionColor
menuTitleBorderColor
menuTitleBorderWidth
menuTitleColor
menuWithIcons
mercuryPanel
messageListWindowColor
messageNamesWindowColor
messengersInViewers
metaMenuDisabled
methodFinderWindowColor
modalColorPickers
mouseClickForKeyboardFocus
mouseOverForKeyboardFocus
mouseOverHalos
mouseOverHalosChanged
multipleTextUndo
noWindowAnimationForClosing
offerThemesMenu
okayToChangeProjectLocalnessOf:
oliveHandleForScriptedObjects
optionalButtons
optionalButtonsChanged
outOfTheBox
packageBrowserWindowColor
parameterAt:
parameterAt:default:
parameterAt:ifAbsent:
parameterAt:ifAbsentPut:
passwordsOnPublish
personal
postscriptStoredAsEPS
preferenceAt:
preferenceAt:ifAbsent:
preferenceBrowserWindowColor
preferenceObjectsInCategory:
preferencesPanelWindowColor
preserveCommandExcursions
preserveTrash
printStandardSystemFonts
projectViewsInWindows
projectZoom
projectsSentToDisk
promptForUpdateServer
promptOnRefactoring
purgeUndoOnQuit
raiseDeprecatedWarnings
readDocumentAtStartup
readOnlyMode
refreshFontSettings
removeObsolete
removePreference:
resetHaloSpecifications
restartAlsoProceeds
restoreDefaultFonts
restoreDefaultMenuParameters
restorePersonalPreferences
restorePreferencesFromDisk
reverseWindowStagger
roundedCornersString
roundedMenuCorners
roundedWindowCorners
roundedWindowCornersChanged
rulesAccessSelector
rulesGlobalName
savePersonalPreferences
scrollBarColor
scrollBarWidth
scrollBarsNarrow
scrollBarsOnRight
scrollBarsWithoutMenuButton
securityChecksEnabled
seeClassSide
All the code for Preferences is on the class side
selectiveHalos
serverMode
setArrowheads
setBalloonHelpFontTo:
setButtonFontTo:
setCodeFontTo:
setDefaultAnnotationInfo
setDefaultFonts:
setDemoFonts
setEToysFontTo:
setEToysTitleFontTo:
setFlag:toValue:during:
setFlapsFontTo:
setHaloLabelFontTo:
setListFontTo:
setMenuFontTo:
setNotificationParametersForStandardPreferences
setPaintBoxButtonFontTo:
setParameter:to:
setPreference:toValue:
setPreferencesFrom:
setSystemFontTo:
setWindowColorFor:to:
setWindowTitleFontTo:
sharedFlapsSettingChanged
showBoundsInHalo
showChooseGraphicHaloHandle
showDeprecationWarnings
showDirectionForSketches
showDirectionHandles
showFlapsWhenPublishing
showObjectClassInInspector
showObjectMethodsInInspector
showSecurityStatus
showSharedFlaps
showSplitterHandles
showTextEditingState
showTypesEntriesInInspector
showUpdateOptionInWorldMenu
showWorldMainDockingBar
showWorldTaskbar
signProjectFiles
simpleFullHaloSpecifications
slideDismissalsToTrash
smartUpdating
smartUpdatingChanged
soundEnablingString
soundQuickStart
soundStopWhenDone
soundTheme
soundsEnabled
staggerPolicyString
standaloneSecurityChecksEnabled
standardBalloonHelpFont
standardButtonFont
standardCodeFont
standardDefaultTextFont
standardEToysFont
standardEToysTitleFont
standardFlapFont
standardHaloLabelFont
standardListFont
standardMenuFont
standardPaintBoxButtonFont
standardSystemFont
startInUntrustedDirectory
storePreferencesIn:
storePreferencesToDisk
subPixelRenderColorFonts
subPixelRenderFonts
suppressWindowTitlesInInstanceBrowsers
swapControlAndAltKeys
swapMouseButtons
syntaxHighlightingAsYouType
syntaxHighlightingAsYouTypeAnsiAssignment
syntaxHighlightingAsYouTypeLeftArrowAssignment
systemWindowEmbedOK
tabAmongFields
testRunnerWindowColor
textHighlightColor
textHighlightColor:
themeChoiceButtonOfColor:font:
tinyDisplay
toggleMenuColorPolicy
togglePreference:
toggleRoundedCorners
toggleSoundEnabling
toggleWindowPolicy
transcriptWindowColor
turnOffPowerManager
uiTheme
uniqueNamesInHalos
unlimitedPaintArea
updateFromServerAtStartup
updateSavesFile
upgradeIsMerge
useCategoryListsInViewers
useFormsInPaintBox
useFormsInPaintBox:
useLocale
useNewDiffToolsForMC
useOnlyServicesInMenu
useRBASTForPrettyPrint
useServicesInBrowserButtonBar
useSmartLabels
useThemeSounds
useUndo
valueOfFlag:
valueOfFlag:ifAbsent:
valueOfPreference:
valueOfPreference:ifAbsent:
versionsBrowserWindowColor
visualExplorer
visualizations
wantsChangeSetLogging
warnAboutInsecureContent
warnIfNoChangesFile
warnIfNoSourcesFile
windowAnimation
windowAnimationDelay
windowAnimationSteps
windowColorFor:
windowColorHelp
windowColorPreferenceForClassNamed:
windowColorTable
windowTitleFont
windowTitleStyle
windowsActiveOnFirstClick
wordStyleCursorMovement
workspaceWindowColor
worldTaskbarWindowPreview
Project
A Project stores the state of a complete Squeak desktop, including
the windows, and the currently active changeSet. A project knows who
its parent project is. When you change projects, whether by entering
or exiting, the screen state of the project being exited is saved in
that project.
A project is retained by its view in the parent world. It is
effectively named by the name of its changeSet, which can be changed
either by renaming in a changeSorter, or by editing the label of its
view from the parent project.
As the site of major context switch, Projects are the locus of
swapping between the old MVC and the new Morphic worlds. The
distinction is based on whether the variable 'world' contains a
WorldMorph or a ControlManager.
Saving and Loading
Projects may be stored on the disk in external format. (Project
named: 'xxx') exportSegment, or choose 'store project on file...'.
Projects may be loaded from a server and stored back. Storing on a
server never overwrites; it always makes a new version. A project
remembers the url of where it lives in urlList. The list is length
one, for now. The url may point to a local disk instead of a server.
All projects that the user looks at, are cached in the Squeaklet
folder. Sorted by server. The cache holds the most recent version
only.
When a project is loaded into Squeak, its objects are converted to
the current version. There are three levels of conversion. First,
each object is converted from raw bits to an object in its old
format. Then it is sent some or all of these messages:
comeFullyUpOnReload: smartRefStream Used to
re-discover an object that already exists in this image, such as a
resource, global variable, Character, or Symbol. (sent to objects in
outPointers)
convertToCurrentVersion: varDict refStream: smartRefStrm
fill in fields that have been added to a class since
the object was stored. Used to set the extra inst var to a default
value. Or, return a new object of a different class. (sent to
objects that changed instance variables)
fixUponLoad: aProject refStream: smartRefStrm
change the object due to conventions that have changed on the
project level. (sent to all objects in the incoming project)
Here is the calling sequence for storing out a Project:
Project saveAs
Project storeOnServer
Project storeOnServerWithProgressInfo
Project storeOnServerInnards
Project exportSegmentFileName:directory:
Project exportSegmentWithChangeSet:fileName:directory:
ImageSegment writeForExportWithSources:inDirectory:changeSet:
---------
Isolation (not used any more)
When you accept a method, the entire system feels the change, except
projects that are "isolated". In an isolated project, all new global
variables (including new classes) arestored in the project-local
environment, and all changes to preexisting classes are revoked when
you leave the project. When you enter another project, that
project's changes are invoked. Invocation and revocation are handled
efficiently by swapping pointers. To make a project be isolated,
choose 'isolate changes of this project' from the 'changes...'
section of the screen menu. You can use an isolated project for
making dangerous change to a system, and you can get out if it
crashes. A foreign application can have the separate environment it
wants. Also, you can freeze part of the system for a demo that you
don't want to disturb. An isolated project shares methods with all
subprojects inside it, unless they are isolated themselves. Each
isolated project is the head of a tree of projects with which it
shares all methods.
You may 'assert' all changes ever made in the current project to take
effect above this project. This amounts to exporting all the globals
in the current environment, and zapping the revocation lists to that
the current state of the world will remain in force upon exit from
this project.
[Later: A project may be 'frozen'. Asserts do not apply to it after
that. (Great for demos.) You should be informed when an assert was
blocked in a frozen project.]
Class definitions are layered by the isolation mechanism. You are
only allowed to change the shape of a class in projects that lie
within its isolation scope. All versions of the methods are
recompiled, in all projects. If you remove an inst var that is in
use in an isolated project, it will become an Undeclared global. It
is best not to remove an inst var when it is being used in another
isolated project. [If we recompile them all, why can't we diagnose
the problem before allowing the change??]
Senders and Implementors do not see versions of a method in isolated
projects. [again, we might want to make this possible at a cost].
When you ask for versions of a method, you will not get the history
in other isolated projects.
Moving methods and classes between changeSets, and merging changeSets
has no effect on which methods are in force. But, when you look at a
changeSet from a different isolated project, the methods will contain
code that is not in force. A changeSet is just a list of method
names, and does not keep separate copies of any code.
When finer grained assertion is needed, use the method (aProject
assertClass: aClass from: thisProject warn: warnConflicts).
How isolated changes work: The first time a class changes, store its
MethodDictionary object. Keep parallel arrays of associations to
Classes and MethodDictionaries. Traverse these and install them when
you enter an "ioslated project". When you leave, store this
project's own MethodDictionaries there.
To do an assert, we must discover which methods changed here,
and which changed only in the project we are asserting into. There
is one copy of the 'virgin' method dictionaries in the system. It is
always being temporarily stored by the currently inForce isolated
project.
isolatedHead - true for the top project, and for each isolated
project. false or nil for any subproject that shares all methods
with its parent project.
inForce - true if my methods are installed now. false if I am
dormant. [is this equivalent to self == Project Current?]
classArray - list of associations to classes
methodDictArray - the method dictionaries of those classes before we
started changing methods. They hang onto the original
compiledMethods. (If this project is dormant, it contains the method
dictionaries of those classes as they will be here, in this project).
orgArray - the class organizations of the classes in classArray.
UsingIsolation (class variable) - No longer used.
When you want to save a project in export format from within that
very project, it gets tricky. We set two flags in parentProject,
exit to it, and let parentProject write the project.
ProjectViewMorph in parentProject checks in its step method, does the
store, clears the flags, and reenters the subProject.
abortResourceLoading
Abort loading resources
addDependent:
Projects do not keep track of their dependents, lest they point into other projects and thus foul up the tree structure for image segmentation.
addItem:toMenu:selection:
addItem:toMenu:selection:project:
addSubProjectNamesTo:indentation:
Add the names of the receiver and all its subprojects, and all *their* subprojects recursively, to aStream, indenting by the specified number of tab stops
addingProject:
advanceToNextProject
allMorphicProjects
allNames
allNamesAndProjects
allProjects
assureFlapIntegrity
Make certain that the items on the disabled-global-flap list are actually
global flaps, and if not, get rid of them. Also, old (and damaging)
parameters that held references to actual disabled flaps are cleansed
assureIntegerVersion
For converting the project versions
assureMainDockingBarPresenceMatchesPreference
Syncronize the state of the receiver's dockings with the
preference
assureTaskbarPresenceMatchesPreference
Synchronize the state of the receiver's taskbar with the preference.
backgroundColorForMorphicProject
beIsolated
Establish an isolation layer at this project.
This requires clearing the current changeSet or installing a new one.
beep
bumpVersion:
Make a new version after the previous version number
canDiscardEdits
Don't regard a window of mine as one to be discarded as part of a 'closeUnchangedWindows' sweep
canWeLoadAProjectNow
changeSet
chooseNaturalLanguage
Put up a menu allowing the user to choose the natural language for the project
cleanseDisabledGlobalFlapIDsList
Make certain that the items on the disabled-global-flap list are actually
global flaps, and if not, get rid of them
compileAll:from:
Make sure that shadowed methods in isolation layers get recompiled.
Traversal is done elsewhere. This simply handles the current project.
compileAllIsolated:from:
Whenever a recompile is needed in a class, look in other isolated projects for saved methods and recompile them also.
At the time this method is called, the recompilation has already been done for the project now in force.
compressFilesIn:to:in:resources:
Compress all the files in tempDir making up a zip file in localDirectory named localName
couldBeSwappedOut
createOrUpdateMainDockingBar
Private - create a new main docking bar or update the current one
createTaskbarIfNecessary
Private - create a new taskbar if not present.
createViewIfAppropriate
current
currentStack:
Set the current stack as indicated; if the parameter supplied is nil, delete any prior memory of the CurrentStack
currentVersionNumber
decideAboutCreatingBlank:
20 Oct - just do it
defaultBackgroundColor
Answer the color to be used as the base window color for a window whose model is an object of the receiver's class
deletingProject:
Clear my previousProject link if it points at the given Project, which is being deleted.
depth
Return the depth of this project from the top.
topProject = 0, next = 1, etc.
displayDepth:
displayFontProgress
Display progress for fonts
displayZoom:
Show the project transition when entering a new project
doArmsLengthCommand:
We are no longer the active project, so do it
doWeWantToRename
downloadUrl
^(self primaryServerIfNil: [^'']) downloadUrl
ensureChangeSetNameUnique
enter
Enter the new project
enter:
enter:revert:saveForRevert:
Install my ChangeSet, Transcript, and scheduled views as current
globals. If returningFlag is true, we will return to the project from
whence the current project was entered; don't change its
previousProject link in this case.
If saveForRevert is true, save the ImageSegment of the project being
left. If revertFlag is true, make stubs for the world of the project being
left. If revertWithoutAsking is true in the project being left, then
always revert.
enterAsActiveSubprojectWithin:
Install my ChangeSet, Transcript, and scheduled views as current globals.
If returningFlag is true, we will return to the project from whence the current project was entered; don't change its previousProject link in this case.
If saveForRevert is true, save the ImageSegment of the project being left.
If revertFlag is true, make stubs for the world of the project being left.
If revertWithoutAsking is true in the project being left, then always revert.
enterForEmergencyRecovery
This version of enter invokes an absolute minimum of mechanism.
An unrecoverable error has been detected in an isolated project.
It is assumed that the old changeSet has already been revoked.
No new process gets spawned here. This will happen in the debugger.
exit
Leave the current project and return to the project in which this one was created.
fileOut
finalExitActions
findProjectView:
In this world, find the morph that holds onto the project described by projectDescription. projectDescription can be a project, or the name of a project. The project may be represented by a DiskProxy. The holder morph may be at any depth in the world.
Need to fix this if Projects have subclasses, or if a class other than ProjectViewMorph can officially hold onto a project. (Buttons, links, etc)
If parent is an MVC world, return the ProjectController.
flapsSuppressed
Answer whether flaps are suppressed in this project
flapsSuppressed:
Make the setting of the flag that governs whether global flaps are suppressed in the project be as indicated and add or remove the actual flaps
forget:
forgetExistingURL
fromMyServerLoad:
If a newer version of me is on the server, load it.
globalFlapEnabledString:
Answer the string to be shown in a menu to represent the status of the givne flap regarding whether it it should be shown in this project.
globalFlapWithIDEnabledString:
Answer the string to be shown in a menu to represent the status of the given flap regarding whether it it should be shown in this project.
hasBadNameForStoring
htmlPagePrototype
Return the HTML page prototype
imageForm
imageFormOfSize:depth:
initMorphic
Written so that Morphic can still be removed. Note that #initialize is never actually called for a morphic project -- see the senders of this method.
initialExtent
Answer the desired extent for the receiver when a view on it is first opened on the screen.
5/22/96 sw: in the absence of any override, obtain from RealEstateAgent
initialProject
initialize
Initialize the project, seting the CurrentProject as my parentProject and initializing my project preferences from those of the CurrentProject
initializeProjectParameters
Initialize the project parameters.
initializeProjectPreferences
Initialize the project's preferences from currently-prevailing preferences that are currently being held in projects in this system
installNewDisplay:depth:
When entering a new project, install a new Display if necessary.
installPasteUpAsWorld:
(ProjectViewMorph newMorphicProjectOn: aPasteUpMorph) openInWorld.
installProjectPreferences
Install the settings of all preferences presently held individually by projects in the receiver's projectPreferenceFlagDictionary
interruptName:
interruptName:preemptedProcess:
invoke
Install all methods changed here into method dictionaries.
Make my versions be the ones that will be called.
invokeFrom:
Revoke the changes in force for this project, and then invoke those in force for otherProject. This method shortens the process to the shortest path up then down through the isolation layers.
isBadNameForStoring:
isCurrentProject
isFlapEnabled:
Answer whether the given flap tab is enabled in this project
isFlapIDEnabled:
Answer whether a flap of the given ID is enabled in this project
isIsolated
isMorphic
Complexity is because #isMVC is lazily installed
isTopProject
Return true only if this is the top project (its own parent).
Also include the test here for malformed project hierarchy.
isolationHead
Go up the parent chain and find the nearest isolated project.
isolationSet
Return the changeSet for this isolation layer or nil
jumpToSelection:
labelString
lastDirectory:
lastSavedAtSeconds
layersToTop
Return an OrderedCollection of all the projects that are isolation layers from this one up to the top of the project hierarchy, inclusive.
loaderUrl
localeChanged
Set the project's natural language as indicated
localeID
Answer the natural language for the project
makeThumbnail
Make a thumbnail image of this project from the Display.
maybeForkInterrupt
mostRecent:onServer:
moveCollapsedWindowsToTaskbar
Move collapsed windows to the taskbar.
name
Answer a name for the receiver. This is used generically in the title of certain inspectors, such as the referred-to inspector, and specificially by various subsystems. By default, we let the object just print itself out..
nameAdjustedForDepth
Answer the name of the project, prepended with spaces reflecting the receiver's depth from the top project
named:
named:in:
namedUrl:
namedWithDepth:
naturalLanguage
Answer the natural language for the project
navigatorFlapVisible
Answer whether a Navigator flap is visible
new
newMorphic
newMorphicOn:
nextProject
noteThatParameter:justChangedTo:
Provides a hook so that a user's toggling of a project parameter might precipitate some immediate action
objectForDataStream:
I am about to be written on an object file. Write a path to me in the other system instead.
obsolete
ofWorld:
openBlankProjectNamed:
parameterAt:
parameterAt:ifAbsent:
parent
parseProjectFileName:
previousProject
primaryServer
Return my primary server, that is the one I was downloaded from or are about to be stored on.
primaryServerIfNil:
Return my primary server, that is the one I was downloaded from or are about to be stored on. If none is set execute the exception block
printOn:
Append to the argument, aStream, a sequence of characters that
identifies the receiver.
projectChangeSet
projectExtension
projectParameterAt:
Answer the project parameter stored at the given symbol, or nil if none
projectParameterAt:ifAbsent:
Answer the project parameter stored at the given symbol, or the result of evaluating the block
projectParameterAt:ifAbsentPut:
Return the project parameter setting at the given key. If there is no entry for this key in the Parameters dictionary, create one with the value of defaultValueBlock as its value
projectParameterAt:put:
Set the given project parameter to the given value
projectParameters
projectPreferenceAt:
Answer the project preference stored at the given symbol. If there is none in the local preference dictionary, it must be because it was only latterly declared to be a project-local preference, so obtain its initial value instead from the last-known global or default setting
projectPreferenceAt:ifAbsent:
Answer the project preference stored at the given symbol, or the result of evaluating the block
projectPreferenceFlagDictionary
Answer the dictionary that holds the project preferences, creating it if necessary
propagateChanges
Assert these changes in the next higher isolation layer of the system.
rawParameters
rebuildAllProjects
release
Remove references to objects that may refer to the receiver. This message
should be overridden by subclasses with any cycles, in which case the
subclass should also include the expression super release.
removeAll:
removeAllButCurrent
removeMainDockingBar
Remove the receiver's main docking bars
removeParameter:
removeTaskbar
Remove the receiver's taskbars.
renameTo:
If the receiver has an inherent idea about its own name, it should take action here. Any object that might be pointed to in the References dictionary might get this message sent to it upon reload
resourceDirectoryName
Project current resourceDirectoryName
resourceManager
resourceManager:
resourceUrl
compose my base url for resources on the server
resumeProcess:
returnToPreviousProject
revert
Exit this project and do not save it. Warn user unless in dangerous projectRevertNoAsk mode. Exit to the parent project. Do a revert on a clone of the segment, to allow later reverts.
revoke
Take back all methods changed here.
Install the original method dictionaries and organizations.
The orignal method versions will now be the ones used.
saveAs
Forget where stored before, and store. Will ask user where.
saveForRevert
Exit to the parent project. Do a GC. Save the project in a segment. Record the ImageSegment object as the revertToMe in Project parameters
saveProjectPreferences
Preserve the settings of all preferences presently held individually by projects in the receiver's projectPreferenceFlagDictionary
saveState
Save the current state in me prior to leaving this project
serverList
Take my list of server URLs and return a list of ServerDirectories to write on.
setChangeSet:
setFlaps
setPaletteFor:
setParent:
setProjectHolder:
setServer
Mark me as a new project. See if a server is known, remember it.
setThumbnail:
setViewSize:
showSharedFlaps
Answer whether shared flaps are shown or suppressed in this project
showWorldMainDockingBar
showWorldMainDockingBar:
Change ther receiver to show the main docking bar
showWorldMainDockingBarString
showWorldTaskbar
Answer whether the taskbar should exist in this project.
showWorldTaskbar:
Change the receiver to show the taskbar.
showZoom
Decide if user wants a zoom transition, and if there is enough memory to do it.
spawnNewProcess
spawnNewProcessAndTerminateOld:
spawnNewProcessIfThisIsUI:
squeakletDirectory
startResourceLoading
Abort loading resources
storeAllInSegments
storeAttributeKey:value:on:
storeAttributesOn:
storeDataOn:
Write me out. All references to other projects are weak references. They only go out if they are written for another reason.
storeHtmlPageIn:
Prepare the HTML wrapper for the current project
storeManifestFileIn:
storeNewPrimaryURL:
storeResourceList:in:
Store a list of all used resources in the given directory. Used for maintenance.
storeSegment
Store my project out on the disk as an ImageSegment. Keep the
outPointers in memory. Name it <project name>.seg. *** Caller must be
holding (Project alInstances) to keep subprojects from going out. ***
storeSegmentNoFile
For testing. Make an ImageSegment. Keep the outPointers in memory.
Also useful if you want to enumerate the objects in the segment
afterwards (allObjectsDo:)
storeSomeSegment
Try all projects to see if any is ready to go out. Send at most three of them.
Previous one has to wait for a garbage collection before it can go out.
storeToMakeRoom
Write out enough projects to fulfill the space goals.
Include the size of the project about to come in.
subProjects
Answer a list of all the subprojects of the receiver. This is nastily
idiosyncratic.
suppressFlapsString
thumbnail
toggleFlapsSuppressed
Project toggleFlapsSuppressed
toggleShowWorldMainDockingBar
topProject
uiProcess
updateLocaleDependents
Set the project's natural language as indicated
url
compose my url on the server
urlList
versionForFileName
Project current versionForFileName
versionForFileName:
versionFrom:
Store the version of the file I actually came from. My stored version was recorded before I knew the latest version number on the server!
versionedFileName
Project current versionedFileName
viewLocFor:
Look for a view of the exitedProject, and return its center
viewSize
windowActiveOnFirstClick
Return true if my window should be active on first click.
windowReqNewLabel:
My window's title has been edited.
Return true if this is OK, and override for further behavior.
world
writeFileNamed:fromDirectory:toServer:
ProjectLoading
A ProjectLoading is xxxxxxxxx.
Instance Variables
bestAccessToFileName:andDirectory:
installRemoteNamed:from:named:in:
openFromFile:fromDirectory:withProjectView:
openName:stream:fromDirectory:withProjectView:
projectStreamFromArchive:
useTempChangeSet
RealEstateAgent
Responsible for real-estate management on the screen, which is to say, controlling where new windows appear, with what sizes, etc. 5/20/96 sw
assignCollapseFrameFor:
assignCollapsePointFor:
initialFrameFor:
initialFrameFor:initialExtent:
initialFrameFor:initialExtent:world:
initialFrameFor:world:
initialize
Subclasses should redefine this method to perform initializations on instance creation
maximumUsableArea
maximumUsableAreaInWorld:
reduceByFlaps:
screenTopSetback
scrollBarSetback
standardPositions
standardPositionsInWorld:
standardWindowExtent
strictlyStaggeredInitialFrameFor:initialExtent:
strictlyStaggeredInitialFrameFor:initialExtent:world:
windowColumnsDesired
windowRowsDesired
ResourceCollector
The ResourceCollector collects resources that are encountered during project loading or publishing. It merely decouples the places where resources are held from the core object enumeration so that resources can be stored independently from what is enumerated for publishing.
baseUrl
baseUrl:
current
current:
forgetObsolete
Forget obsolete locators, e.g., those that haven't been referenced and not been stored on a file.
initialize
Subclasses should redefine this method to perform initializations on instance creation
initializeFrom:
Initialize the receiver from aResourceManager.
localDirectory
localDirectory:
locatorMap
allow outsiders to store in it. For files that are not resources that do want to live in the resource directory locally and on the server. (.t files for example)
locators
locatorsDo:
noteResource:replacing:
Remember the fact that we need to load aResource which will replace anObject.
objectForDataStream:
This should never happen; when projects get written they must be decoupled from the resource collector. If you get the error message below something is seriously broken.
objectForDataStream:fromForm:
Return a replacement for aForm to be stored instead
removeLocator:
replaceAll
Replace all resources by their originals. Done after the resource have been collected to get back to the original state.
resourceDirectory
resourceFileNames
Return a list of all the resource files created
stubMap
writeResourceForm:fromLocator:
The given form has been externalized before. If it was reasonably compressed, use the bits of the original data - this allows us to recycle GIF, JPEG, PNG etc. data without using the internal compression (which is in most cases inferior). If necessary the data will be retrieved from its URL location. This retrieval is done only if the resouce comes from either
* the local disk (in which case the file has never been published)
* the browser cache (in which case we don't cache the resource locally)
In any other case we will *not* attempt to retrieve it, because doing so can cause the system to connect to the network which is probably not what we want. It should be a rare case anyways; could only happen if one clears the squeak cache selectively.
writeResourceForm:locator:
Store the given form on a file. Return an array with the name and the size of the file
ResourceLocator
Describes where a resource can be found.
Instance variables:
urlString <String> The URL of the resource
fileSize <Integer> The size of the resource
localFileName <String> When non-nil, the place where this resource was/is stored.
=
Answer whether the receiver and the argument represent the same
object. If = is redefined in any subclass, consider also redefining the
message hash.
adjustToDownloadUrl:
Adjust to the fully qualified URL for this resource.
adjustToRename:from:
Adjust to the fully qualified URL for this resource.
hasRemoteContents
Return true if we describe a resource which is non-local, e.g., on some remote server.
hash
Answer a SmallInteger whose value is related to the receiver's identity.
May be overridden, and should be overridden in any classes that define =
localFileName
localFileName:
make:relativeTo:
printOn:
Append to the argument, aStream, a sequence of characters that
identifies the receiver.
resourceFileSize
resourceFileSize:
species
Answer the preferred class for reconstructing the receiver. For example,
collections create new collections whenever enumeration messages such as
collect: or select: are invoked. The new kind of collection is determined by
the species of the original collection. Species and class are not always the
same. For example, the species of Interval is Array.
urlString
urlString:
ResourceManager
A ResourceManager is xxxxxxxxx.
Instance Variables
loaded: <Object>
loaderProcess: <Object>
resourceMap: <Object>
stopFlag: <Object>
stopSemaphore: <Object>
unloaded: <Object>
loaded
- xxxxx
loaderProcess
- xxxxx
resourceMap
- xxxxx
stopFlag
- xxxxx
stopSemaphore
- xxxxx
unloaded
- xxxxx
abandonResourcesThat:
Private. Forget resources that match the given argument block
addCacheLocation:for:
addResource:locator:
addResource:url:
adjustToDownloadUrl:
Adjust the resource manager to the current download location. A project might have been moved manually to a different location or server.
adjustToNewServer:from:
Adjust the resource manager to the current download location. A project might have been moved manually to a different location or server.
adjustToRename:from:
Adjust the resource manager to the current download location. A project might have been moved manually to a different location or server.
cacheResource:inArchive:
cacheResource:stream:
convertMapNameForBackwardcompatibilityFrom:
fixJISX0208Resource
formChangedReminder
hackURL:
initialize
So resources may get garbage collected if possible
initializeFrom:
Initialize the receiver from the given resource collector. None of the resources have been loaded yet, so make register all resources as unloaded.
installResource:from:locator:
loadCachedResources
Load all the resources that we have cached locally
loadResource:fromCacheFileNamed:in:
loaderProcess
localizeAllExternalResources
Should be a preference later.
localizedExternalResources
lookupCachedResource:ifPresentDo:
lookupCachedResource:in:ifPresentDo:
lookupOriginalResourceCacheEntry:for:
makeAllProjectResourcesLocalTo:
Change the urls in the resource locators so project specific resources are stored and referenced locally. Project specific resources are all those that are kept locally in any of the project's versions.
preLoadFromArchive:cacheName:
Load the resources from the given zip archive
prioritizedUnloadedResources
Return an array of unloaded resource locators prioritized by some means
registerUnloadedResources
reloadCachedResources
relocatedExternalResource:
relocatedExternalResource:to:
renameCachedResource:to:
renameCachedResource:to:external:
reset
Clean out everything
resourceCache
resourceCacheName
resourceMap
startDownload
Start downloading unloaded resources
stopDownload
Stop downloading unloaded resources
updateResourcesFrom:
We just assembled all the resources in a project.
Include all that were newly found
SARInstaller
I am an object that handles the loading of SAR (Squeak ARchive) files.
A SAR file is a Zip file that follows certain simple conventions:
* it may have a member named "install/preamble".
This member, if present, will be filed in as Smalltalk source code at the beginning of installation.
Typically, the code in the preamble will make whatever installation preparations are necessary,
and will then call methods in the "client services" method category to extract or install other zip members.
* It may have a member named "install/postscript".
This member, if present, will be filed in as Smalltalk source code at the end of installation.
Typically, the code in the postscript will set up the operating environment,
and will perhaps put objects in flaps, open projects or README files, or launch samples.
Within the code in the preamble and postscript, "self" is set to the instance of the SARInstaller.
If neither an "install/preamble" nor an "install/postscript" file is present,
all the members will be installed after prompting the user,
based on a best guess of the member file types that is based on member filename extensions.
This is new behavior.
basicNewChangeSet:
cardForSqueakMap:
changeSetNamed:
currentChangeSet
directory
directory:
directory:fileName:
ensurePackageWithId:
errorNoSuchMember:
extractMember:
Extract aMemberOrName to a file using its filename
extractMember:toFileNamed:
Extract aMemberOrName to a specified filename
extractMemberWithoutPath:
Extract aMemberOrName to its own filename, but ignore any directory paths, using my directory instead.
extractMemberWithoutPath:inDirectory:
Extract aMemberOrName to its own filename, but ignore any directory paths, using aDirectory instead
fileIn
File in to a change set named like my file
fileInFrom:
The zip has been saved already by the download.
Read the zip into my instvar, then file in the correct members
fileInMCVersion:withBootstrap:
This will use the MCBootstrapLoader to load a (non-compressed) Monticello file (.mc or .mcv)
fileInMemberNamed:
This is to be used from preamble/postscript code to file in zip members as ChangeSets.
fileInMonticelloPackageNamed:
This is to be used from preamble/postscript code to file in zip
members as Monticello packages (.mc).
fileInMonticelloVersionNamed:
This is to be used from preamble/postscript code to file in zip
members as Monticello version (.mcv) files.
fileInMonticelloZipVersionNamed:
This is to be used from preamble/postscript code to file in zip
members as Monticello version (.mcz) files.
fileInMorphsNamed:addToWorld:
This will load the Morph (or Morphs) from the given member.
Answers a Morph, or a list of Morphs, or nil if no such member or error.
If aBoolean is true, also adds them and their models to the World.
fileInPackageNamed:
This is to be used from preamble/postscript code to file in zip
members as DVS packages.
fileInTrueTypeFontNamed:
fileIntoChangeSetNamed:fromStream:
Not recommended for new code
fileName
fileName:
fileReaderServicesForFile:suffix:
getMCBootstrapLoaderClass
importImage:
initialize
Subclasses should redefine this method to perform initializations on instance creation
installAllMembers
Try to install all the members, in order, based on their filenames and/or contents.
installMember:
installSAR:
installed:
installedMemberNames
Answer the names of the zip members that have been installed already.
installedMembers
Answer the zip members that have been installed already.
loadDVS
loadMonticello
loadMonticelloCVS
memberNameForProjectNamed:
Answer my member name for the given project, or nil.
Ignores version numbers and suffixes, and also unescapes percents in filenames.
memberNamed:
memberNames
membersMatching:
newCardForSqueakMap:
newChanges:
openGraphicsFile:
openTextFile:
Open a text window on the given member
prependedDataSize
serviceFileInSAR
services
squeakMapDo:
squeakMapPackageID
squeakMapPackageVersion
uninstalledMemberNames
Answer the names of the zip members that have not yet been installed.
uninstalledMembers
Answer the zip members that haven't been installed or extracted yet.
unload
withCurrentChangeSetNamed:do:
zip
zip:
zipFileComment
SecurityManager
A SecurityManager is xxxxxxxxx.
Instance Variables
keysFileName: <Object>
privateKeyPair: <Object>
trustedKeys: <Object>
keysFileName
- xxxxx
privateKeyPair
- xxxxx
trustedKeys
- xxxxx
addTrustedKey:
Add a public key to the list of trusted keys
canWriteImage
SecurityManager default canWriteImage
default
disableFileAccess
SecurityManager default disableFileAccess
disableImageWrite
SecurityManager default disableImageWrite
disableSocketAccess
SecurityManage default disableSocketAccess
enterRestrictedMode
Some insecure contents was encountered. Close all doors and proceed.
fileInObjectAndCode:
flushSecurityKey:
Flush a security key
flushSecurityKeys
Flush all keys
generateKeyPairInBackground
SecurityManager default generateKeyPairInBackground
generateLocalKeyPair
SecurityManager default generateLocalKeyPair
hasFileAccess
SecurityManager default hasFileAccess
hasSocketAccess
SecurityManager default hasSocketAccess
initialize
Subclasses should redefine this method to perform initializations on instance creation
isInRestrictedMode
Return true if we're in restricted mode
keysFileName
keysFileName:
loadSecurityKeys
SecurityManager default loadSecurityKeys
positionToSecureContentsOf:
primSecureUserDirectory
primUntrustedUserDirectory
Primitive. Return the untrusted user directory that is the root directory for files that are visible even in restricted mode.
printStateOn:
Print the current state of myself onto stream.
Used to gather information in the debug log.
secureUserDirectory
SecurityManager default secureUserDirectory
shutDown
Flush existing keys
signFile:directory:
Sign the given project in the directory
signingKey
Return the key used for signing projects
startUp
Attempt to load existing keys
storeSecurityKeys
Store the keys file for the current user
trustedKeys
Return an array of trusted public keys for verifying some project
untrustedUserDirectory
SecurityManager default untrustedUserDirectory
SmalltalkImage
I represent the SmalltalkImage and partly the VM. Using my current instance you can
- get the value of some VM parameters, system arguments, vm profiling,
endianess status, external objects,....
- save the image, manage sources
As you will notice browsing my code I'm a fat class having still too much responsibility.
But this is life. sd-2 July 2003
PS: if someone wants to split me go ahead.
aboutThisSystem
Identify software version
assureStartupStampLogged
If there is a startup stamp not yet actually logged to disk, do it now.
calcEndianness
What endian-ness is the current hardware? The String '1234' will be stored into a machine word. On BigEndian machines (the Mac), $1 will be the high byte if the word. On LittleEndian machines (the PC), $4 will be the high byte.
changeImageNameTo:
changesName
Answer the name for the changes file corresponding to the image file name.
closeSourceFiles
Shut down the source files if appropriate. 1/29/96 sw: changed so that the closing and nilification only take place if the entry was a FileStream, thus allowing stringified sources to remain in the saved image file
current
currentChangeSetString
SmalltalkImage current currentChangeSetString
datedVersion
Answer the version of this release.
endianness
event:
Hook for SystemChangeNotifier
exitToDebugger
Primitive. Enter the machine language debugger, if one exists. Essential.
See Object documentation whatIsAPrimitive. This primitive is to access the
debugger when debugging the vm or a plugging in C
extraVMMemory
Answer the current setting of the 'extraVMMemory' VM parameter. See the comment in extraVMMemory: for details.
extraVMMemory:
Request that the given amount of extra memory be reserved for use by the virtual machine to leave extra C heap space available for things like plugins, network and file buffers, and so on. This request is stored when the image is saved and honored when the image is next started up. Answer the previous value of this parameter.
extractParameters
fixObsoleteReferences
SmalltalkImage current fixObsoleteReferences.
SystemNavigation default obsoleteBehaviors size > 0
ifTrue: [ SystemNavigation default obsoleteBehaviors inspect.
self error:'Still have obsolete behaviors. See inspector']
forceChangesToDisk
Ensure that the changes file has been fully written to disk by closing and re-opening it. This makes the system more robust in the face of a power failure or hard-reboot.
forgetModule:
Primitive. If the module named aString is loaded, unloaded. If not, and it is marked an unloadable, unmark it so the VM will try to load it again next time. See comment for #unloadModule:.
fullNameForChangesNamed:
fullNameForImageNamed:
gcBiasToGrow:
Tell the VM to grow after tenures instead of running in a tight loop where it does IGCs over and over. For some weird reason the primitive takes an integer not a bool but oh well...
gcBiasToGrowLimit:
Tell the VM the grow limit if the GC logic has bias to grow.
getFileNameFromUser
getSystemAttribute:
Optional. Answer the string for the system attribute with the given
integer ID. Answer nil if the given attribute is not defined on this
platform. On platforms that support invoking programs from command
lines (e.g., Unix), this mechanism can be used to pass command line
arguments to programs written in Squeak.
By convention, the first command line argument that is not a VM
configuration option is considered a 'document' to be filed in. Such a
document can add methods and classes, can contain a serialized object,
can include code to be executed, or any combination of these.
Currently defined attributes include:
-1000...-1 - command line arguments that specify VM options
0 - the full path name for currently executing VM
(or, on some platforms, just the path name of the VM's directory)
1 - full path name of this image
2 - a Squeak document to open, if any
3...1000 - command line arguments for Squeak programs
1001 - this platform's operating system
1002 - operating system version
1003 - this platform's processor type
1004 - vm version
getVMParameters
Answer an Array containing the current values of the VM's internal
parameter/metric registers. Each value is stored in the array at the
index corresponding to its VM register. (See #vmParameterAt: and
#vmParameterAt:put:.)
hasDisplay
imageName
Answer the full path name for the current image.
imageName:
Set the the full path name for the current image. All further snapshots will use this.
imagePath
Answer the path for the directory containing the image file.
initialize
Subclasses should redefine this method to perform initializations on instance creation
initializeMemorySettingsProfileQF
Initialize the memory and GC settings to be more in line with QF requirements
initializeMemorySettingsProfileSeaSide
Initialize the memory and GC settings to be more in line with SeaSide requirements
isBigEndian
isLittleEndian
lastQuitLogPosition
lastQuitLogPosition:
should be only use to ensure the transition from SystemDictionary to SmalltalkImage, then be removed
lastUpdateString
SmalltalkImage current lastUpdateString
licenseString
listBuiltinModule:
Return the name of the n-th builtin module.
This list is not sorted!
listBuiltinModules
SmalltalkImage current listBuiltinModules
listLoadedModule:
Return the name of the n-th loaded module.
This list is not sorted!
listLoadedModules
SmalltalkImage current listLoadedModules
logChange:
Write the argument, aString, onto the changes file.
new
openSourceFiles
osVersion
Return the version number string of the platform we're running on
platformName
Return the name of the platform we're running on
platformSubtype
Return the subType of the platform we're running on
primImageName
Answer the full path name for the current image.
primImageName:
Set the the full path name for the current image. All further snapshots will use this.
primVmPath
Answer the path for the directory containing the Smalltalk virtual machine. Return the empty string if this primitive is not implemented.
primitiveGCBiasToGrow:
Tell the VM to grow after tenures instead of running in a tight loop where it does IGCs over and over. For some weird reason the primitive takes an integer not a bool but oh well...
quitPrimitive
Primitive. Exit to another operating system on the host machine, if one
exists. All state changes in the object space since the last snapshot are lost.
Essential. See Object documentation whatIsAPrimitive.
reconstructChanges2
Move all the changes and its histories onto another sources file.
recordStartupStamp
reportCPUandRAM
Write several text files with useful analysis for profiling purposes.
Overwrites any existing report.
SmalltalkImage current reportCPUandRAM
saveAs
Put up the 'saveAs' prompt, obtain a name, and save the image under that new name.
saveAs:
saveAsEmbeddedImage
Save the current state of the system as an embedded image
saveAsNewVersion
Save the image/changes using the next available version number.
saveChangesInFileNamed:
saveImageInFileNamed:
saveImageSegments
saveSession
setPlatformPreferences
Set some platform specific preferences on system startup
shutDown
snapshot:andQuit:
snapshot:andQuit:embedded:
Mark the changes file and close all files as part of #processShutdownList.
If save is true, save the current state of this Smalltalk in the image file.
If quit is true, then exit to the outer OS shell.
The latter part of this method runs when resuming a previously saved image. This resume logic checks for a document file to process when starting up.
snapshotEmbeddedPrimitive
snapshotPrimitive
Primitive. Write the current state of the object memory on a file in the
same format as the Smalltalk-80 release. The file can later be resumed,
returning you to this exact state. Return normally after writing the file.
Essential. See Object documentation whatIsAPrimitive.
sourceFileVersionString
sourceFileVersionString:
sourcesName
Answer the full path to the version-stable source code
startUp
stripMethods:messageCode:
Used to 'cap' methods that need to be protected for proprietary reasons, etc.; call this with a list of triplets of symbols of the form (<class name> <#instance or #class> <selector name>), and with a string to be produced as part of the error msg if any of the methods affected is reached
systemInformationString
textMarkerForShortReport
timeStamp:
Writes system version and current time on stream aStream.
unbindExternalPrimitives
Primitive. Force all external primitives to be looked up again afterwards. Since external primitives that have not found are bound for fast failure this method will force the lookup of all primitives again so that after adding some plugin the primitives may be found.
unloadModule:
Primitive. Unload the given module.
This primitive is intended for development only since some
platform do not implement unloading of DLL's accordingly.
Also, the mechanism for unloading may not be supported
on all platforms.
vmParameterAt:
parameterIndex is a positive integer corresponding to one of the VM's internal
parameter/metric registers. Answer with the current value of that register.
Fail if parameterIndex has no corresponding register.
VM parameters are numbered as follows:
1 end of old-space (0-based, read-only)
2 end of young-space (read-only)
3 end of memory (read-only)
4 allocationCount (read-only)
5 allocations between GCs (read-write)
6 survivor count tenuring threshold (read-write)
7 full GCs since startup (read-only)
8 total milliseconds in full GCs since startup (read-only)
9 incremental GCs since startup (read-only)
10 total milliseconds in incremental GCs since startup (read-only)
11 tenures of surving objects since startup (read-only)
12-20 specific to the translating VM
21 root table size (read-only)
22 root table overflows since startup (read-only)
23 bytes of extra memory to reserve for VM buffers, plugins, etc.
24 memory threshold above which shrinking object memory (rw)
25 memory headroom when growing object memory (rw)
26 interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image is not calling getNextEvent often (rw)
27 number of times mark loop iterated for current IGC/FGC (read-only) includes ALL marking
28 number of times sweep loop iterated for current IGC/FGC (read-only)
29 number of times make forward loop iterated for current IGC/FGC (read-only)
30 number of times compact move loop iterated for current IGC/FGC (read-only)
31 number of grow memory requests (read-only)
32 number of shrink memory requests (read-only)
33 number of root table entries used for current IGC/FGC (read-only)
34 number of allocations done before current IGC/FGC (read-only)
35 number of survivor objects after current IGC/FGC (read-only)
36 millisecond clock when current IGC/FGC completed (read-only)
37 number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC (read-only)
38 milliseconds taken by current IGC (read-only)
39 Number of finalization signals for Weak Objects pending when current IGC/FGC completed (read-only)
40 VM word size - 4 or 8 (read-only)
vmParameterAt:put:
parameterIndex is a positive integer corresponding to one of the VM's internal
parameter/metric registers. Store newValue (a positive integer) into that
register and answer with the previous value that was stored there.
Fail if newValue is out of range, if parameterIndex has no corresponding
register, or if the corresponding register is read-only.
vmPath
Answer the path for the directory containing the Smalltalk virtual machine. Return the empty string if this primitive is not implemented.
vmStatisticsReportString
StringHolderView open: (StringHolder new contents:
SmalltalkImage current vmStatisticsReportString) label: 'VM Statistics'
vmStatisticsShortString
Convenience item for access to recent statistics only
vmVersion
Return a string identifying the interpreter version
SystemDictionary
I represent a special dictionary that supports protocol for asking questions about the structure of the system. Other than class names, I contain (print this)...
Smalltalk keys select: [:k | ((Smalltalk at: k) isKindOf: Class) not]
thenCollect: [:k | k -> (Smalltalk at: k) class]
abandonSources
Smalltalk abandonSources
abandonTempNames
Replaces every method by a copy with no source pointer or
encoded temp names.
add:toList:after:
Add the name of aClass to the startUp or shutDown list.
Add it after the name of predecessor, or at the end if predecessor is nil.
addToShutDownList:
This will add a ref to this class at the BEGINNING of the shutDown list.
addToShutDownList:after:
addToStartUpList:
This will add a ref to this class at the END of the startUp list.
addToStartUpList:after:
allClasses
Return all the class defines in the Smalltalk SystemDictionary
allClassesAndTraits
Return all the classes and traits defined in the Smalltalk SystemDictionary
allClassesAndTraitsDo:
allClassesDo:
Evaluate the argument, aBlock, for each class in the system.
allTraits
Return all traits defined in the Smalltalk SystemDictionary
associationOrUndeclaredAt:
return an association or install in undeclared. Used for mating up ImageSegments.
at:put:
Override from Dictionary to check Undeclared and fix up
references to undeclared variables.
bytesLeft
Answer the number of bytes of space available. Does a full garbage collection.
bytesLeft:
Return the amount of available space. If aBool is true, include possibly available swap space. If aBool is false, include possibly available physical memory. For a report on the largest free block currently availabe within Squeak memory but not counting extra memory use #primBytesLeft.
bytesLeftString
Return a string describing the amount of memory available
classNamed:
classNames
Answer a SortedCollection of all class names.
classOrTraitNamed:
aString is either a class or trait name or a class or trait name followed by ' class' or 'classTrait' respectively.
Answer the class or metaclass it names.
cleanOutUndeclared
cleanUpUndoCommands
Smalltalk cleanUpUndoCommands
clearExternalObjects
Clear the array of objects that have been registered for use in non-Smalltalk code.
compactClassesArray
Smalltalk compactClassesArray
compressSources
Copy all the source file to a compressed file. Usually preceded by Smalltalk condenseSources.
computeImageSegmentation
Smalltalk computeImageSegmentation
condenseChanges
Move all the changes onto a compacted sources file.
condenseSources
Move all the changes onto a compacted sources file.
createStackOverflow
For testing the low space handler...
currentChangeSetString
Smalltalk currentChangeSetString
currentProjectDo:
So that code can work after removal of Projects
discardDiscards
Discard all discard* methods - including this one.
discardFFI
Discard the complete foreign function interface.
NOTE: Recreates specialObjectsArray to prevent obsolete
references. Has to specially remove external structure
hierarchy before ExternalType
discardFlash
Discard Flash support.
discardMIDI
this seems to have gone away
discardNetworking
Discard the support for TCP/IP networking.
discardOddsAndEnds
This method throws out lots of classes that are not frequently
used.
discardSUnit
Smalltalk discardSUnit
discardSoundSynthesis
Discard the sound synthesis facilities, and the methods and
classes that use it. This also discards MIDI.
discardTrueType
Discard TrueType support.
exitToDebugger
Primitive. Enter the machine language debugger, if one exists. Essential.
See Object documentation whatIsAPrimitive.
externalObjects
Return an array of objects that have been registered for use in non-Smalltalk code. Smalltalk objects should be referrenced by external code only via indirection through this array, thus allowing the objects to move during compaction. This array can be cleared when the VM re-starts, since variables in external code do not survive snapshots. Note that external code should not attempt to access a Smalltalk object, even via this mechanism, while garbage collection is in progress.
externalizeSources
Write the sources and changes streams onto external files.
flushClassNameCache
Smalltalk flushClassNameCache
forceChangesToDisk
Ensure that the changes file has been fully written to disk by closing and re-opening it. This makes the system more robust in the face of a power failure or hard-reboot.
forceTenure
Primitive. Tell the GC logic to force a tenure on the next increment GC.
forgetClass:logged:
Delete the class, aClass, from the system.
Note that this doesn't do everything required to dispose of a class - to do that use Class>>removeFromSystem.
forgetDoIts
Smalltalk forgetDoIts
garbageCollect
Primitive. Reclaims all garbage and answers the number of bytes of available space.
garbageCollectMost
Primitive. Reclaims recently created garbage (which is usually most of it) fairly quickly and answers the number of bytes of available space.
handleUserInterrupt
hasClassNamed:
Answer whether there is a class of the given name, but don't intern aString if it's not alrady interned. 4/29/96 sw
hasMorphic
Answer whether the Morphic classes are available in the
system (they may have been stripped, such as by a call to
Smalltalk removeMorphic
hasSpecialSelector:ifTrueSetByte:
initialize
Subclasses should redefine this method to perform initializations on instance creation
inspectGlobals
Smalltalk inspectGlobals
installLowSpaceWatcher
Start a process to watch for low-space conditions.
internalizeChangeLog
Smalltalk internalizeChangeLog
internalizeSources
Smalltalk internalizeSources
isMorphic
Answer true if the user interface is running in Morphic rathern than
MVC. By convention the gloabl variable World is set to nil when MVC is
running. ScheduledControllers could be set to nil when Morphic is
running, but this symmetry is not yet in effect.
isRoot:
Primitive. Answer whether the object is currently a root for youngSpace.
isSelfEvaluating
isYoung:
Primitive. Answer whether the object currently resides in youngSpace.
lastRemoval
Smalltalk lastRemoval
logError:inContext:to:
Log the error message and a stack trace to the given file.
lowSpaceThreshold
Return the low space threshold. When the amount of free memory (after garbage collection) falls below this limit, the system is in serious danger of completely exhausting memory and crashing. This limit should be made high enough to allow the user open a debugger to diagnose a problem or to save the image.
lowSpaceWatcher
Wait until the low space semaphore is signalled, then take appropriate
actions.
lowSpaceWatcherProcess
m17nVersion
majorShrink
Undertake a major shrinkage of the image.
This method throws out lots of the system that is not needed
for, eg, operation in a hand-held PC. majorShrink produces a
999k image in Squeak 2.8
Smalltalk majorShrink; abandonSources; lastRemoval
makeExternalRelease
Smalltalk makeExternalRelease
makeInternalRelease
Smalltalk makeInternalRelease
memoryHogs
Answer the list of objects to notify with #freeSomeSpace if memory gets full.
nihongoVersion
objectForDataStream:
I am about to be written on an object file. Write a reference to Smalltalk instead.
okayToProceedEvenIfSpaceIsLow
Return true if either there is enough memory to do so safely or if the user gives permission after being given fair warning.
organization
Return the organizer for the receiver
poolUsers
Answer a dictionary of pool name -> classes that refer to it.
Also includes any globally know dictionaries (such as
Smalltalk, Undeclared etc) which although not strictly
accurate is potentially useful information
presumedSentMessages
Smalltalk presumedSentMessages
primBytesLeft
Primitive. Answer the number of bytes available for new object data.
Not accurate unless preceded by
Smalltalk garbageCollectMost (for reasonable accuracy), or
Smalltalk garbageCollect (for real accuracy).
See Object documentation whatIsAPrimitive.
primImageName
Answer the full path name for the current image.
primImageName:
Set the the full path name for the current image. All further snapshots will use this.
primLowSpaceSemaphore:
Primitive. Register the given Semaphore to be signalled when the
number of free bytes drops below some threshold. Disable low-space
interrupts if the argument is nil.
primSignalAtBytesLeft:
Tell the interpreter the low-space threshold in bytes. When the free
space falls below this threshold, the interpreter will signal the low-space
semaphore, if one has been registered. Disable low-space interrupts if the
argument is zero. Fail if numBytes is not an Integer.
primVmPath
Answer the path for the directory containing the Smalltalk virtual machine. Return the empty string if this primitive is not implemented.
primitiveGarbageCollect
Primitive. Reclaims all garbage and answers the number of bytes of available space.
printElementsOn:
The original code used #skip:, but some streams do not support that,
and we don't really need it.
printOn:
Append a sequence of characters that identify the receiver to aStream.
processShutDownList:
Send #shutDown to each class that needs to wrap up before a snapshot.
processStartUpList:
Send #startUp to each class that needs to run initialization after a snapshot.
quitPrimitive
Primitive. Exit to another operating system on the host machine, if one
exists. All state changes in the object space since the last snapshot are lost.
Essential. See Object documentation whatIsAPrimitive.
reclaimDependents
No-opped due to weak dictionary in use
reconstructChanges
Move all the changes and its histories onto another sources file.
recover:
Schedule an editable text view on the last n characters of changes.
recreateSpecialObjectsArray
Smalltalk recreateSpecialObjectsArray
registerExternalObject:
Register the given object in the external objects array and return its index. If it is already there, just return its index.
removeAllLineFeeds
Smalltalk removeAllLineFeeds
removeAllLineFeedsQuietly
Smalltalk removeAllLineFeedsQuietly
removeAllLineFeedsQuietlyCalling:
Smalltalk removeAllLineFeedsQuietly
removeAllUnSentMessages
removeAllUnsentMessages
Smalltalk removeAllUnsentMessages
removeClassNamed:
Invoked from fileouts: if there is currently a class in the system named aName, then remove it. If anything untoward happens, report it in the Transcript.
removeEmptyMessageCategories
Smalltalk removeEmptyMessageCategories
removeFromShutDownList:
removeFromStartUpList:
removeNormalCruft
Remove various graphics, uniclasses, references. Caution: see
comment at bottom of method
removeSelector:
Safely remove a selector from a class (or metaclass). If the
class or the method doesn't exist anymore, never mind and
answer nil.
This method should be used instead of 'Class removeSelector:
#method' to omit global class references.
renameClass:as:
Rename the class, aClass, to have the title newName.
renameClass:from:
Rename the class, aClass, to have the title newName.
renameClassNamed:as:
Invoked from fileouts: if there is currently a class in the system named oldName, then rename it to newName. If anything untoward happens, report it in the Transcript.
reportClassAndMethodRemovalsFor:
Smalltalk reportClassAndMethodRemovalsFor: #(Celeste Scamper MailMessage)
rootTable
Primitive. Answer a snapshot of the VMs root table.
Keep in mind that the primitive may itself cause GC.
rootTableAt:
Primitive. Answer the nth element of the VMs root table
scopeFor:from:envtAndPathIfFound:
Null compatibility with partitioning into environments.
send:toClassesNamedIn:with:
Send the message #startUp: or #shutDown: to each class named in the list.
The argument indicates if the system is about to quit (for #shutDown:) or if
the image is resuming (for #startUp:).
If any name cannot be found, then remove it from the list.
setGCBiasToGrow:
Primitive. Indicate that the GC logic should be bias to grow
setGCBiasToGrowGCLimit:
Primitive. Indicate that the bias to grow logic should do a GC after aNumber Bytes
setGCParameters
Adjust the VM's default GC parameters to avoid premature tenuring.
setGCSemaphore:
Primitive. Indicate the GC semaphore index to be signaled on GC occurance.
setMacFileInfoOn:
On Mac, set the file type and creator (noop on other platforms)
shutDown
shutDownSound
No longer used in the release, but retained for backward compatibility.
signalLowSpace
Signal the low-space semaphore to alert the user that space is running low.
snapshotEmbeddedPrimitive
snapshotPrimitive
Primitive. Write the current state of the object memory on a file in the
same format as the Smalltalk-80 release. The file can later be resumed,
returning you to this exact state. Return normally after writing the file.
Essential. See Object documentation whatIsAPrimitive.
specialNargsAt:
Answer the number of arguments for the special selector at: anInteger.
specialObjectsArray
Smalltalk specialObjectsArray at: 1
specialSelectorAt:
Answer the special message selector from the interleaved specialSelectors array.
specialSelectorSize
Answer the number of special selectors in the system.
specialSelectors
Used by SystemTracer only.
storeDataOn:
I don't get stored. Use a DiskProxy
testFormatter
Smalltalk testFormatter
testFormatter2
Smalltalk testFormatter2
traitNames
Answer a SortedCollection of all traits (not including class-traits) names.
unbindExternalPrimitives
Primitive. Force all external primitives to be looked up again afterwards. Since external primitives that have not found are bound for fast failure this method will force the lookup of all primitives again so that after adding some plugin the primitives may be found.
unregisterExternalObject:
Unregister the given object in the external objects array. Do nothing if it isn't registered.
unusedClasses
Enumerates all classes in the system and returns a list of those that are
apparently unused. A class is considered in use if it (a) has subclasses
or (b) is referred to by some method or (c) has its name in use as a
literal.
unusedClassesAndMethodsWithout:
Accepts and returns a pair: {set of class names. set of selectors}.
It is expected these results will be diff'd with the normally unused
results.
useUpMemory
For testing the low space handler...
useUpMemoryWithArrays
For testing the low space handler...
useUpMemoryWithContexts
For testing the low space handler...
useUpMemoryWithTinyObjects
For testing the low space handler...
verifyChanges
Smalltalk verifyChanges
verifyMorphicAvailability
If Morphic is available, return true; if not, put up an informer and return false
version
Answer the version of this release.
veryDeepCopyWith:
Return self. I can't be copied. Do not record me.
wordSize
Answer the size (in bytes) of an object pointer.
writeImageSegmentsFrom:withKernel:
segmentDictionary is associates segmentName -> {classNames. methodNames},
and kernel is another set of classNames determined to be essential.
Add a partition, 'Secondary' with everything not in partitions and not in the kernel.
Then write segments based on this partitioning of classes.
writeRecentCharacters:toFileNamed:
Schedule an editable text view on the last n characters of changes.
writeRecentToFile
Smalltalk writeRecentToFile
zapAllOtherProjects
Smalltalk zapAllOtherProjects
SystemNavigation
I support the navigation of the system. I act as a facade but as I could require some state
or different way of navigating the system all my behavior are on the instance side
addSelectorsReferingTo:in:to:special:byte:
allBehaviorsDo:
Evaluate the argument, aBlock, for each kind of Behavior in the system
(that is, Object and its subclasses and Traits).
ar 7/15/1999: The code below will not enumerate any obsolete or anonymous
behaviors for which the following should be executed:
Smalltalk allObjectsDo:[:obj| obj isBehavior ifTrue:[aBlock value: obj]].
but what follows is way faster than enumerating all objects.
allCallsOn:
Answer a Collection of all the methods that call on aLiteral even deeply embedded in
literal array.
allCallsOn:and:
Answer a SortedCollection of all the methods that call on both aLiteral
and secondLiteral.
allCallsOn:from:
Answer a SortedCollection of all the methods that call on aSymbol.
allClasses
currently returns all the classes defined in Smalltalk but could be customized
for dealing with environments and in such a case would return on really all the classes
allClassesAndTraits
allClassesDo:
currently returns all the classes defined in Smalltalk but could be customized
for dealing with environments and in such a case would work on really all the classes
allClassesImplementing:
Answer an Array of all classes that implement the message aSelector.
allClassesInPackageNamed:
allClassesWithUnimplementedCalls
Answer an Array of classes that have messages with calls to methods that aren't implemented
anywhere in the system
allContributors
SystemNavigation default allContributors
allGlobalRefs
Answer a set of symbols that may be refs to Global names. In some sense we should only need the associations, but this will also catch, eg, HTML tag types.
allGlobalRefsWithout:
Answer a set of symbols that may be refs to Global names. In some
sense we should only need the associations, but this will also catch, eg,
HTML tag types. This method computes its result in the absence of
specified classes and messages.
allImplementedMessages
Answer a Set of all the messages that are implemented in the system.
allImplementedMessagesWithout:
Answer a Set of all the messages that are implemented in the system,
computed in the absence of the supplied classes and messages. Note this
reports messages that are in the absent selectors set.
allImplementorsOf:
Answer a SortedCollection of all the methods that implement the message
aSelector.
allImplementorsOf:localTo:
Answer a SortedCollection of all the methods that implement the message
aSelector in, above, or below the given class.
allMethodsInCategory:
allMethodsNoDoitsSelect:
Like allSelect:, but strip out Doits
allMethodsSelect:
Answer a SortedCollection of each method that, when used as the block
argument to aBlock, gives a true result.
allMethodsWithSourceString:matchCase:
Answer a SortedCollection of all the methods that contain, in source code, aString as a substring. Search the class comments also
allObjectsDo:
Evaluate the argument, aBlock, for each object in the system
excluding SmallIntegers.
allObjectsSelect:
Evaluate the argument, aBlock, for each object in the system excluding
SmallIntegers. Return a collection af all objects for whom the value is
true.
allPrimitiveMethods
Answer an OrderedCollection of all the methods that are implemented by primitives.
allPrimitiveMethodsInCategories:
Answer an OrderedCollection of all the methods that are implemented by
primitives in the given categories. 1/26/96 sw
allReferencesToPool:from:
Answer all the references to variables from aPool
allSelect:
Answer a SortedCollection of each method that, when used as
the block
argument to aBlock, gives a true result.
allSelectorsWithAnyImplementorsIn:
Answer the subset of the given list which represent method selectors
which have at least one implementor in the system.
allSendersOf:
allSendersOf:inClass:
allSendersOf:inClassCategory:
allSendersOf:inPackageNamed:
allSentMessages
Answer the set of selectors which are sent somewhere in the system.
allSentMessagesWithout:
Answer the set of selectors which are sent somewhere in the system,
computed in the absence of the supplied classes and messages.
allSortedClassesImplementing:
Answer an Array of all classes that implement the message aSelector.
allUnSentMessages
allUnSentMessagesIn:
Answer the subset of selectorSet which are not sent anywhere in the
system.
allUnSentMessagesWithout:
Answer the set of selectors that are implemented but not sent, computed
in the absence of the supplied classes and messages.
allUnimplementedCalls
Answer an Array of each message that is sent by an expression in a
method but is not implemented by any object in the system.
allUnimplementedNonPrimitiveCalls
Answer an Array of each message that is sent by an expression in a
method but is not implemented by any object in the system.
allUnreferencedClassVariablesOf:
Answer a list of the names of all the receiver's unreferenced class
vars, including those defined in superclasses
allUnsentMessages
SystemNavigation new allUnSentMessages
allUnsentMessagesIn:
Answer the subset of selectorSet which are not sent anywhere in the
system.
allUnsentMessagesWithProgressBar
allUnusedClassesWithout:
Enumerates all classes in the system and returns a list of those that are
apparently unused. A class is considered in use if it (a) has subclasses
or (b) is referred to by some method or (c) has its name in use as a
literal.
browseAllAccessesTo:from:
Create and schedule a Message Set browser for all the receiver's methods
or any methods of a subclass/superclass that refer to the instance variable name.
browseAllCallsOn:
Create and schedule a message browser on each method that refers to
aLiteral. For example, SystemNavigation new browseAllCallsOn: #open:label:.
browseAllCallsOn:and:
Create and schedule a message browser on each method that calls on the
two Symbols, literal1 and literal2. For example, SystemNavigation new
browseAllCallsOn: #at: and: #at:put:.
browseAllCallsOn:from:
Create and schedule a Message Set browser for all the methods that call
on aSymbol.
browseAllCallsOn:localTo:
Create and schedule a message browser on each method in or below the given class that refers to
aLiteral. For example, Smalltalk browseAllCallsOn: #open:label:.
browseAllCallsOnClass:
Create and schedule a message browser on each method that refers to
aClass. For example, SystemNavigation new browseAllCallsOnClass: Object.
browseAllImplementorsOf:
Create and schedule a message browser on each method that implements
the message whose selector is the argument, selector. For example,
Smalltalk browseAllImplementorsOf: #at:put:.
browseAllImplementorsOf:localTo:
Create and schedule a message browser on each method in or below the
given class
that implements the message whose selector is the argument, selector.
For example,
SystemNavigation new browseAllImplementorsOf: #at:put: localTo:
Dictionary.
browseAllImplementorsOfList:
Create and schedule a message browser on each method that implements
the message whose selector is in the argument selectorList. For example,
Smalltalk browseAllImplementorsOf: #(at:put: size).
1/16/96 sw: defer to the titled version
browseAllImplementorsOfList:title:
Create and schedule a message browser on each method that implements
the message whose selector is in the argument selectorList. For
example,
self new browseAllImplementorsOf: #(at:put: size).
1/16/96 sw: this variant adds the title argument.
1/24/96 sw: use a SortedCollection
2/1/96 sw: show normal cursor
browseAllMethodsInCategory:
browseAllObjectReferencesTo:except:ifNone:
Bring up a list inspector on the objects that point to anObject.
If there are none, then evaluate aBlock on anObject.
browseAllReferencesToPool:from:
Open a message list on all messages referencing the given pool
browseAllSelect:
Create and schedule a message browser on each method that, when used
as the block argument to aBlock gives a true result. For example,
SystemNavigation new browseAllSelect: [:method | method numLiterals >
10].
browseAllSelect:name:autoSelect:
Create and schedule a message browser on each method that, when used
as the block argument to aBlock gives a true result. Do not return an
#DoIt traces.
browseAllStoresInto:from:
Create and schedule a Message Set browser for all the receiver's methods
or any methods of a subclass/superclass that refer to the instance variable name.
browseAllUnimplementedCalls
Create and schedule a message browser on each method that includes a
message that is not implemented in any object in the system.
browseAllUnsentMessages
SystemNavigation default browseUnsentMessages
browseClass:
browseClassCommentsWithString:
Smalltalk browseClassCommentsWithString: 'my instances'
browseClassVarRefs:
Put up a menu offering all class variable names; if the user chooses one, open up a message-list browser on all methods
that refer to the selected class variable
browseClassVariables:
browseClassesWithNamesContaining:caseSensitive:
Smalltalk browseClassesWithNamesContaining: 'eMorph' caseSensitive: true
browseHierarchy:
browseImplementorsOf:name:autoSelect:
Create and schedule a senders browser for aSelector.
browseInstVarDefs:
Copied from browseInstVarRefs. Should be consolidated some day. 7/29/96 di
7/30/96 sw: did the consolidation
browseInstVarRefs:
1/16/96 sw: moved here from Browser so that it could be used from a variety of places.
7/30/96 sw: call chooseInstVarThenDo: to get the inst var choice
browseMessageList:name:
Create and schedule a MessageSet browser on messageList.
browseMessageList:name:autoSelect:
Create and schedule a MessageSet browser on the message list.
browseMethodsWhoseNamesContain:
Launch a tool which shows all methods whose names contain the given string; case-insensitive.
browseMethodsWithLiteral:
Launch a browser on all methods that contain string literals with aString as a substring. Make the search case-sensitive or insensitive as dictated by the caseSensitive boolean parameter
browseMethodsWithSourceString:
SystemNavigation new browseMethodsWithSourceString: 'SourceString'
browseMethodsWithString:
Launch a browser on all methods that contain string literals with aString as a substring. The search is case-insensitive, unless the shift key is pressed, in which case the search is case-sensitive.
browseMethodsWithString:matchCase:
Launch a browser on all methods that contain string literals with aString as a substring. Make the search case-sensitive or insensitive as dictated by the caseSensitive boolean parameter
browseObsoleteMethodReferences
Open a browser on all referenced behaviors that are obsolete
browseObsoleteReferences
self new browseObsoleteReferences
browseSendersOf:name:autoSelect:
Create and schedule a senders browser for aSelector.
browseUncommentedMethodsWithInitials:
Browse uncommented methods whose initials (in the time-stamp, as logged to disk) match the given initials. Present them in chronological order. CAUTION: It will take several minutes for this to complete.
browseUndeclaredReferences
from Cuis: 0058-browseUndeclared.1
browseUnsentMessagesInClass:
SystemNavigation default browseUnsentMessagesWithProgressBarInClass: BlockContext
browseUnsentMessagesInPackageNamed:
SystemNavigation default browseUnsentMessagesWithProgressBarInPackageNamed: 'Kernel-Contexts'
browserClass
browserClass:
categoriesInPackageNamed:
classFromPattern:withCaption:
If there is a class whose name exactly given by pattern, return it.
If there is only one class in the system whose name matches pattern, return it.
Otherwise, put up a menu offering the names of all classes that match pattern, and return the class chosen, else nil if nothing chosen.
This method ignores tab, space, & cr characters in the pattern
confirmRemovalOf:on:
Determine if it is okay to remove the given selector. Answer 1 if it
should be removed, 2 if it should be removed followed by a senders
browse, and 3 if it should not be removed.
contributionsOf:
SystemNavigation default contributionsOf: 'alain.plantec'
contributorsNotSignatories
SystemNavigation default contributorsNotSignatories
default
defaultBrowserClass
defaultHierarchyBrowserClass
doWithProgressBar:forUnsentMessagesInClass:
doWithProgressBar:forUnsentMessagesInPackageNamed:
doWithProgressBarForAllUnsentMessages:
hierarchyBrowserClass
hierarchyBrowserClass:
hierarchyOfClassesSurrounding:
Answer a list of classes in the hierarchy both above and below the given class
hierarchyOfImplementorsOf:forClass:
Answer a list of classes in the hierarchy both above and below the given class which implement the given selector.
isMessage:sentInClass:
isMessage:sentInClassCategory:
isMessage:sentInPackageNamed:
isThereAnImplementorOf:
Answer true if there is at least one implementor of the selector found
in the system, false if there are no implementors
isUnsentMessage:
methodHierarchyBrowserForClass:selector:
Create and schedule a message set browser on all implementors of the
currently selected message selector. Do nothing if no message is selected.
numberOfImplementorsOf:
Answer a count of the implementors of the given selector found in the
system
obsoleteBehaviors
SystemNavigation default obsoleteBehaviors inspect
obsoleteClasses
SystemNavigation default obsoleteClasses inspect
obsoleteMethodReferences
SystemNavigation default obsoleteMethodReferences
removeUnsentMessagesWithProgressBarInClass:
removeUnsentMessagesWithProgressBarInPackageNamed:
reportSenderCountsFor:
Produce a report on the number of senders of each of the selectors in
the list. 1/27/96 sw
selectAllMethods:
Answer a SortedCollection of each method that, when used as the block
argument to aBlock, gives a true result.
selectAllMethodsNoDoits:
Like allSelect:, but strip out Doits
showMenuOf:withFirstItem:ifChosenDo:
Show a sorted menu of the given selectors, preceded by firstItem, and all
abbreviated to 40 characters. Evaluate choiceBlock if a message is chosen.
showMenuOf:withFirstItem:ifChosenDo:withCaption:
Show a sorted menu of the given selectors, preceded by firstItem, and all abbreviated to 40 characters. Use aCaption as the menu title, if it is not nil. Evaluate choiceBlock if a message is chosen.
signatories
signatoriesString
spawnHierarchyForClass:selector:
Create and schedule a new class hierarchy browser on the requested class/selector.
unimplemented
Answer an Array of each message that is sent by an expression in a method but is not implemented by any object in the system.
unsentMessagesInCategory:
unsentMessagesInClass:
unsentMessagesInPackageNamed:
unsentMessagesWithProgressBarInClass:
unsentMessagesWithProgressBarInPackageNamed:
SystemOrganizer
My instances provide an organization for the classes in the system, just as a ClassOrganizer organizes the messages within a class. The only difference is the methods for fileIn/Out.
addCategory:
categoriesMatching:
Return all matching categories
classesInCategory:
commentInventory:
SystemOrganization commentInventory: 'Morphic*'
fileOut
SystemOrganization fileOut
fileOutCategory:
Store on the file named category (a string) concatenated with '.st' all the
classes associated with the category.
fileOutCategory:on:
Store on the file associated with aFileStream, all the classes associated
with the category and any requested shared pools.
fileOutCategory:on:initializing:
Store on the file associated with aFileStream, all the traits and classes associated
with the category and any requested shared pools in the right order.
goferClassesInCategory:
ifClassOrganizerDo:
Do nothing, since this is not a class organizer
isClassOrganizer
objectForDataStream:
I am about to be written on an object file. Write a path to me in the other system instead.
orderedTraitsIn:
Answer an OrderedCollection containing references to the traits in the
category whose name is the argument, category (a string). The traits
are ordered so they can be filed in.
removeCategoriesMatching:
Remove all matching categories with their classes
removeCategory:
Remove the category named, cat. Create an error notificiation if the
category has any elements in it.
removeMissingClasses
Remove any class names that are no longer in the Smalltalk dictionary. Used for cleaning up after garbage collecting user-generated classes.
removeSystemCategory:
remove all the classes and traits associated with the category
renameCategory:toBe:
Rename a category. No action if new name already exists, or if old name does not exist.
superclassOrder:
Answer an OrderedCollection containing references to the classes in the
category whose name is the argument, category (a string). The classes
are ordered with superclasses first so they can be filed in.
uncommentedClassesIn:
SystemOrganization uncommentedClassesIn: 'Morphic*'
SystemVersion
I am responsible for maintaining what version of Squeak and the VM is running. I also track all of the update items that have been included in the image.
I'm invoked at auto start to get the latest plugins, etc.
check:andRequestPluginUpdate:
checkAndApplyUpdates:
current
currentPluginVersion
date
date:
datedVersion
Answer the version of this release.
highestUpdate
highestUpdate:
includesUpdate:
initialize
Subclasses should redefine this method to perform initializations on instance creation
majorMinorVersion
Return the major/minor version number of the form X.Y, without any 'alpha' or 'beta' or other suffix.
newVersion:
parseVersionString:
pluginVersion:newerThan:
printOn:
Append to the argument, aStream, a sequence of characters that
identifies the receiver.
registerUpdate:
resetHighestUpdate
unregisterUpdate:
updates
version
version:
Utilities
A repository for general and miscellaneous utilities; much of what is here are in effect global methods that don't naturally attach to anything else. 1/96 sw
addUpdateServer:
applyUpdatesFromDisk
applyUpdatesFromDiskToUpdateNumber:stopIfGap:
assureAbsenceOfUnstableUpdateStream
assureAvailabilityOfUnstableUpdateStream
assureMostRecentSubmissionExists
authorInitials
authorInitialsPerSe
authorName
authorName:
authorNamePerSe
awaitMouseUpIn:repeating:ifSucceed:
awaitMouseUpIn:whileMouseDownDo:whileMouseDownInsideDo:ifSucceed:
broadcastUpdatesFrom:to:except:
browseRecentSubmissions
changeStamp
changeStampPerSe
chooseFileWithSuffix:
chooseFileWithSuffixFromList:withCaption:
chooseUpdateList
classCategoriesStartingWith:
classFromPattern:withCaption:
cleanseOtherworldlySteppers
closeAllDebuggers
commandKeyMappings
compileUsingClosures
convertCRtoLF:
createPageTestWorkspace
dateStamp
dateTimeSuffix
decimalPlacesForFloatPrecision:
decommissionTheAllCategory
doesMethod:forClass:bearInitials:
doesNotUnderstand:
Handle the fact that there was an attempt to send the given message to the receiver but the receiver does not understand this message (typically sent from the machine when a message is sent to the receiver and no method is defined for that selector).
dumpAnyOldStyleRecentSubmissions
emergencyCollapse
event:
extractThisVersion:
fileInFromUpdatesFolder:
fixStamp:
fixUpProblemsWithAllCategory
floatPrecisionForDecimalPlaces:
garbageCollectAndReport
getUpdateDirectoryOrNil
getterSelectorFor:
graphicsFileSuffixes
informUser:during:
informUserDuring:
inherentSelectorForGetter:
initialize
Subclasses should redefine this method to perform initializations on instance creation
initializeClosures
inspectCollection:notifying:
instanceComparisonsBetween:and:
keyLike:satisfying:
keyLike:withTrailing:satisfying:
lastUpdateNum:
methodDiffFor:class:selector:prettyDiffs:
methodsWithInitials:
monthDayTime24StringFrom:
monthDayTimeStringFrom:
mostRecentlySubmittedMessage
newUpdatesOn:special:throughNumber:
nextClockwiseSideAfter:
noteMethodSubmission:forClass:
numberOfRecentSubmissionsToStore
numberOfRecentSubmissionsToStore:
objectStrmFromUpdates:
openCommandKeyHelp
openRecentSubmissionsBrowser
oppositeCornerFrom:
oppositeModeTo:
oppositeSideTo:
parseListContents:
pointersTo:
pointersTo:except:
pointersToItem:of:
position:atVersion:
purgeFromRecentSubmissions:
purgeRecentSubmissionsOfMissingMethods
readNextUpdateFromServer
readNextUpdatesFromDisk:
readServer:special:updatesThrough:saveLocally:updateImage:
readServerUpdatesSaveLocally:updateImage:
readServerUpdatesThrough:saveLocally:updateImage:
recentMethodSubmissions
recentSubmissionsWindow
reconstructTextWindowsFromFileNamed:
registerInFlapsRegistry
reportSenderCountsFor:
resetServers
retrieveUrls:ontoQueue:withWaitSema:
revertLastMethodSubmission
saveUpdate:onFile:
seeClassSide
All the code for Utilitites is on the class side
serverUrls
setAuthorInitials
setAuthorInitials:
setAuthorName
setClassAndSelectorFrom:in:
setUpdateServer:
setterSelectorFor:
showFormsAcrossTopOfScreen:
showFormsDictAcrossTopOfScreen:
simpleSetterFor:
startUp
steplistToolsWorkspace
storeTextWindowContentsToFileNamed:
summariesForUpdates:through:
timeStampForMethod:
unload
updateComment
updateFromServer
updateFromServerThroughUpdateNumber:
updateUrlLists
writeList:toStream:
zapUpdateDownloader
WindowColorRegistry
I provide to the applications developer a place where they can register their WindowColorSpecification for their application's windows.
initialize
Subclasses should redefine this method to perform initializations on instance creation
refresh
registerColorSpecification:toClassNamed:
registeredWindowColorSpecFor:
registeredWindowColorSpecs
registry
seeClassSide
All the code for WindowColorRegistry is on the class side.
unregisterColorSpecificationForClassNamed: