Final call for 2.9 updates

Stephen T. Pope stp at create.ucsb.edu
Thu Feb 1 02:29:31 UTC 2001


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 at 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.


-- 

stp
  Stephen Travis Pope
  http://www.create.ucsb.edu/~stp





More information about the Squeak-dev mailing list