Here's the README from the STP-12.2.8 goodies. All this code is on-line at ftp://ftp.create.ucsb.edu/pub/Squeak/CD-ROM/Packages/Goodies/STP%20Goodies/
===============================================================================
STP Goodies Version 12 README File -- Updated 22 January 2001
The file STP12.2.8.bld files these in to Squeak 2.8.
Source code directories: (System Graphics GUI Tools Packages Fixes
===============================================================================
System Directory
==== CaseStatement.st ====
This adds a neat shorthand for immediate dictionaries and a case statement; example: ( (#a -> [Transcript cr; show: 'a'; cr]), (#b -> [Transcript cr; show: 'b'; cr]), (#c -> [Transcript cr; show: 'c'; cr]) ) case: #b
Note that there is a similar structure already in Squeak, but that it uses curly-braces as special characters, and can only have blocks as keys/values. I prefer this method.
==== ClassOrganizer-fromString.st ====
This allows the reorganization of classes from strings.
==== CodeGen.st ====
Adds the 'publish' method for automatically generating instance variable accessors. You simply need to edit and accept the class definition of a class with instance variables, and then do 'ClassName publish.'
==== CollectionAdds.st ====
Several useful collection extensions--with:with:with:with:with:, prevIndexOfSubCollection: aSubCollection startingAt: anIndex, etc.
==== ColorForm-offsetColors.st ====
This makes it possible to declare color forms expliticly.
==== CompiledMethod-frameSize.st ====
Increases the frame size by changing > to >= LargeFrame.
==== Dictionary-associations.st ====
Adds explicit accessors for values and associations to Dictionary.
==== FileDirectory-extensionFor.st ====
Answers the extension of a file name.
==== FileStream-named.st ====
Handy terse file creation message
==== FlushChangesOnFileOut.st ====
Remove a class from the change set after filing it out, also ask whether to empty the change set after filing it out.
==== IgnoreFontsInCode.st ====
Sets the compiler to ignore all changes of emphasis in code.
==== MultiModel.st ====
MultiModels have symbol-keyed dictionaries as their dependents collections. The items in the dictionary are collections of dependents registered to receive updates to a particular aspect. This makes updating models with large numbers of dependents much faster. The category #all receives all updates.
==== Object-dependency.st ====
This extends the changed/update messages for passing along new values (changed:with:).
==== Object-safeHalt.st ====
This makes a left-shift hack out of halt (i.e., it is different than break:)
==== Object-testing.st ====
These are a few testing methods (e.g., isString isSymbol) plus value coercion (asValue).
==== Point-xy.st ====
Adds setter accessors to Point.
==== Printing.st ====
A few modified printing methods: Time without seconds, Dates with leading 0's (e.g., 1995.04.08).
==== PStream-skipSeparators.st ====
Adds the nil check for reading bad files.
==== RandomAdds.st ====
A few new messages for generating random numbers in limited ranges, or selecting from collections at random.
==== ScreenAdds.st ====
Adds a few utility methods to class DisplayScreen for determining the current screen size and getting default rectangles for view opening. This is very useful for applications that are supposed to be portable between desk- and lap-top machines.
==== StreamIO.st ====
Code to support external I/O in floats, longs, 96-bit doubles, etc. Some of this is from the Kyma system thanks to Kurt Hebel.
==== StringAdds.st ====
Adds many useful string crunching methods--stripTrailingSpaces, padTo:, breakIntoLinesOf:, stripCRs. cr.
==== TextEmphasis-storeOn.st ====
This code makes storing texts a bit more compact by storing the emphasis and font changes in a 'native' form.
==== TranscriptStream-limit.st ====
Makes the transcript really long (64 k).
==== Utilities-html.st ====
Various utilities for writing HTML "reference manuals"
==== ZPoint.st ====
3-D points, i.e., one can say 3@4@7.
===============================================================================
Graphics Directory
==== BitBlt-setDestForm.st ====
This handles a nil srcForm.
==== Color-depth.st ====
This is the 'depth' method for colors.
==== display-compatibility.st ====
These are for backward compatibility with ST80.
==== Graphics-3D.st ====
This is Hans-Martin Mosner's 3-D graphics example. It creates wire-frame models and can display and rotate them. It also serves as a cool screen saver. It requires the 3-D point class ZPoint and the two additional Zpoint methods in this directory.
==== Graphics-Containers.st ====
This is a minimal 'wrapper' framework. It is a pre-cursor to my new MVC implementation.
==== Graphics-DisplayLists.st ====
This is the new DisplayItem/List/View framework -- visual items and lists
==== Graphics-DisplayListViews.st ====
This is the new DisplayItem/List/View framework -- display list views and controllers
==== Rectangle-corners.st ====
This is what it looks like--answers an array of 4 points.
==== ZPoint-perspective.st ====
These are a few additional ZPoint methods that are needed by the 3D graphics or fractal surface code.
===============================================================================
GUI Directory
==== DisplayScreen-splash.st ====
Splash screen with the Squeak logo rolling across the screen. This reads in two GIFs from the DesktopGIFs folder and makes them global
==== GrowBox.cs ====
This adds another button just to the left of the collapse button in window labels that grows/shrinks the view by 50%.
==== PluggableButton-action.st ====
This makes it possible to create buttons that have blocks as their actions.
==== Preferences-Color.st ====
Changes the method for resetting the desktop color.
==== Preferences-desktopGIFs.st ====
This adds support for using an arbitrary GIF file as the repeating desktop pattern.
==== SSView-modelLabelMinSize.st ====
This is a StandardSystemView creation method for ST80 compatibility
==== SSView-resizeInitially.st ====
This sets StandardSystemView to resize on open.
==== View-addSubView.st ====
This is for ST80 compatibility.
===============================================================================
Tools Directory
==== Browser-additions.st ====
Check for empty class list. Misc. other browser extensions. Use the '?' button to cycle between def/comment/hierarchy. Support ANSI Smalltalk annotations when present. Always accept strings (not text) in the browser
==== Browser-browseInstance.st ====
Adds menu items to find/inspect/count instances to the browser.
==== Browser-selectAll.cs ====
Sets the browser to automatically select the message category "all" when a class is selected.
==== FileList-directory.st ====
Use a preference value to determine the default sorting order for file lists.
==== FileList-readContentsHex.st ====
When showing a file as hex, print any ASCII values found after the hex stuff on the line
==== RedComments.st ====
Simple changes to the Browser to make the selector of a method appear in bold blue and make comments red (or italics, your choice) so that they stick out more; edit to taste.
==== StringHolder-contentsText.st ====
Accepts text or strings as contents.
==== TemplateMorph.st ====
TemplateMorph is a simple generic object editor framework.
===============================================================================
Packages Directory
==== Kernel-Values.st ====
This is a minimal dynamic value framework. It has useful items such as indirect values (AKA PluggableAdaptors), lazy-block values, range values, and index values.
==== LauncherView.st ====
Launcher View is a Transcript with text-labeled buttons along the top that open the standard applications: Browse Open a package browser Files Open a file list Editor Open a workspace Changes Pop up the change manager menu and select a tool Save Save a VI snapshot Help Display the help menu Test User-assignable test button; shift-select to redefine action
==== OutlineSupport.st ====
This is support changes for the outline and outline browser classes.
==== ScreenController-Transcript.st ====
Sets the menu methods that open Transcripts to open LauncherViews instead.
==== Tools-Outlines.st ====
An outline is a simple interface to a list of named workspaces. It can hold onto a keyed workspace list, parse it from/save it to files, and be used with an OutlineBrowser. An OutlineBrowser holds onto an Outline and creates a simple two-paned view on the one-level hierarchy using pluggable view components (list and text views). The Browser implements key-list menu items for adding new keys, removing or renaming existing ones, and inspecting or saving the outline. Text menu items are implemented for execution and the like.
===============================================================================
Fixes Directory
==== menu-fixes.cs ====
Fixes the menu flap tab font and adds a preference parameter setting method (so you can set the menu background color).
==== PackageBrowser-Color.st ====
Makes the package browser light cream rather than bright yellow.
==== PackageBrowser-package.st ====
Added range check for package browser.
==== TPB.fix.st ====
Fix for selecting class methods in the TimeProfileBrowser.
squeak-dev@lists.squeakfoundation.org