Link to the Squeak official
home page

Squeak is an open, highly-portable, free Smalltalk-80 implementation. This is a list of enhancements and fixes I have written for Squeak. For feedback or comments please send email to Steve Wessels.

A new version of a Squeak Development Example/Tutorial The Laser Game Tutorial for Squeak 3.9 is now available. Please go here to try it out.

I wrote a simple little tutorial that shows how to use Squeak to create custom gradient wallpaper for your computer. That tutorial is here.

In September of 2002 I wrote some Squeak code to help move Squeak source files easily between 2 computer systems. While doing that work it occurred to me to write a Squeak development example (tutorial) to share how it was done with others. I've updated that tutorial in April of 2003 to reflect the use of Squeak 3.5.

The table below includes the descriptions for my modifications and enhancemnts, a link to a desktop snapshot picture showing the feature, and a link to the change-sets themselves. Note the Squeak 3.4 and Squeak 3.5 change-sets are all in ASCII text format. The Squeak 3.7/3.8 and Squeak 3.9 change-sets are in either Monticello format, SAR format or ASCII text format. Newest entries are at the top.

Change sets for Squeak 3.5 will also work with Squeak 3.4. If you are working with Squeak 3.2, versions of many of these older enhancements are available here, now that I have changed to a new web service host and have the capacity to keep more files on-line.

Note: Many of the Squeak 3.5 change-set attempt to load in prerequisite change sets via SqueakMap. It should all happen automatically for you. If you do not want to use SqueakMap, or if you do not have it installed, you can still file-in the prerequisite change sets manually from these files. This is not an issue for the enhancements published here that pertain to Squeak 3.7 or newer.

Last update: 15-Aug-2010

Description Change-Sets or Monticello Packages
for Squeak version
  3.2 3.5 3.7/3.8 3.9 3.10 4.1
World Menu Registry [ENH]
25-Apr-2010 tested in Squeak 4.1

This capability is an interim solution. The Squeak community is currently working on a design for a dynamic solution in Squeak 4.1 that will provide this capability for the World Menu and the new World Dock. If you are using Squeak 4.1, or newer, avoid installing this goodie for now.

Provides a menu registry for the World menus: project, appearance, help and changes. The open menu registry already exists.

A unit test is provided which can be examined for examples of use.

          World Menu Registry
Background Loader with Preview [ENH]
15-Aug-2010 tested in Squeak 4.1

Provides a previewer for images that can be loaded as the desktop. Accessed via the extras menu in the dock. The modified file browser is produced for background image browsing. This version provides options over how the image is placed in the desktop. A new optional feature is thumbnails browsing. You can view one "row" of thumbnails at a time and use them for selecting a new background image.

Version 24-Apr-2010 (DesktopBackgroundLoader-sbw.24.mcz) creates the new class as a subclass of FileList and uses some of the methods and variables from the class hierarchy. The FileList class really needs some refactoring for subclasses like this to be coded cleanly, so the code in this class can be improved somewhat again after a FileList refactoring. Also this version adds support for a Volume Menu item to save the selected directory as the default for the next launch.

For now, this tool installs itself in the "Open" sub-menu of the World Menu. When a dynamic menu system gets deployed with Squeak, I will update this package so that the tool is available from the Dock's "Extras" menu and from the the World's "Appearance" menu. If this package is installed in your Squeak 4.1 image, it will automatically add itself to the Open menu. If you later-on unload this package it will remove itself from that same menu automatically.

          Desktop Background Loader
Pipes Game [ENH]
10-Apr-2010 tested in Squeak 4.1

Squeak Pipes Game is a little experiment I did to draw some graphics with Morphic and then use them in a game. It's using a lot of the framework/ideas from the Electricity Game with some new animation. I've actually spent some time working on a better animation sequence when the circuit completes. The code currently has all the provisions to make this work, just needs another pass at it.

Open the PipeGameBoard from the new morph menu to start the game. It has instructions included in the game.

The missing help/insructions issue is resolved with latest version for Squeak 4.1.

    Squeak Pipes Game     Squeak Pipes Game
Electricity Game [ENH]
07-Apr-2010 Tested in Squeak 4.1

NsGame ("The Electricity Game") began as a Squeak port of the Shockwave Flash game by Pavils Jurjans. See

This is the game I demoed at OOPSLA 2003 during the Squeak BOF.

There was a problem with opening the instructions window for this game under Squeak 3.8 gamma. The latest release (Jan 4th, 2005) solves that problem. The game now works great in Squeak 3.8 gamma.

I had problems with the instructions window again when Squeak 3.9 was released. The 10-Dec-2006 release resolves that problem.

Buttons looked funny in Squeak 4.1. I also did a little bit of code clean up.

    Electricity Game Electricity Game   Electricity Game
Variables Pane in Browsers [ENH]
21-Feb-2009 Tested in Squeak 3.10.2

Adds variables pane to several of the Browsers, similar to old Smalltalk/V browsers.
NOTE: No longer adds an instance variable to the Browser class.
The variables pane is controlled by Preferences in the 'browsing' category. Two options exist:
#showVarsInBrowser - toggles if variables pane is included in the browsers or not
#showInheritedVars - if the variables pane is enabled by the above option, this one controls if inherited variables are shown or not. This option can be toggled by a menu in the variables pane itself.

The variables pane includes menu items for searching for accesses and references to a selected variable from the list.

This code was tested for the full system browser and the class hierarchy browser. It was verified to behave correctly both with the alternativeWindowLook and the standard look. Aside from the inclusion of this new optional browser pane, this change set makes no changes to other existing Browser code.

Update 21-Feb-2009 I received an e-mail from someone saying that this enhancement wasn't working quite correctly in Squeak 3.10.2. Now, I haven't touched this code, since 2003. I was actually surprised that anyone was still using it. Well, it is pretty useful. So I spent a little time and made an update that works for Squeak 3.10.2. It's available here as a Monticello package.

Vars Pane in Browsers Vars Pane in Browsers     Vars Pane in Browsers
Laser Game [ENH]
04-Jul-2007 Tested in Squeak 3.9

The Laser Game. This is actually part of my latest version of a Squeak tutorial.

There are actually 2 Monticello packages. One for the application itself, the other for the unit tests. For the latest version of this application I recommend you refer to the "Notes" page in the tutorial.

That image is the highest "score" I've reached so far.

      Laser Game

Laser Game Tests
Sokoban Enhancements [ENH]
16-Sep-2005 tested in Squeak 3.7

Sokoban is a wonderfully addictive little puzzle game. This is an enhanced version of the original version as found on Squeak Map. The original version was published for Squeak by Robert Hirschfeld.

Update 16-Sep-2005:
This version has some general refactoring (breaking options out and sounds management to other objects) and a rewrite of the morphic update code. Alan Grimes wrote to me with a number of ideas to improve performance of this application. The key change he recommended was to break the morph creation code out from the morph update code. The original version of this code did a complet reconstruction of all game morphs every time the player made a move. This version just moves the moved pieces.

After playing it for a while I made a few enhancements to the game. A lot of the changes were cosmetic. But the most important enhancement is that an undo command was added. The game is a lot more playable. All the original rules about moves and the original puzzle/board configurations are intact. I just added a move stack that allows you to use the "z" key and roll-back any move you had already made. I also added a move that allows the use of the Control key modifier and causes a move to repeat. It's easier to just try it than explain it here.

    Enhanced Sokoban    
Gradient Background Tool [ENH]
27-Aug-2005 tested in Squeak 3.7 #5989

This enhancement adds a new gradient setting capability for the desktop. In standard Squeak the desktop gradient can be set from the appearance menu. That gradient offers the choice of setting the second gradient color, at the bottom of the screen. Although you can then get to the style from the halo morph for the desktop and set both colors (top and bottom), I wanted a simple tool that made this a more direct activity.

When you use this new tool 2 color pickers appear on the desktop at once easily allowing you to set both colors the first time you set the desktop background to be gradient. It's a simple tool and also takes advanage of the appearance menu registry code available below to make a direct entry for the tool in your appearance menu.

    Gradient Background Tool    
PhotosPublisher [ENH]
7-Jul-2005 tested in Squeak 3.7
9-Jan-2003 tested in Squeak 3.4 update #5156

NOTE: This package is now (26-Jul-2010) available as CC and licensed as MIT licensed compatible.

Creates a web site from a folder of pictures. You select a folder full of pictures you want to include on your web site, then select the output folder where your web site contents will be generated. The photos publisher will produce the html files necessary to share your photos. It will copy the original images to the target web site folder as well as create image thubmnails that look pretty nice. It will create the subdirectory folder structure as required. The main starting page is named "index.html".

July 7th, 2005 update corrects a bug where second thumbnails page did not get created under certain conditions. Also, a feature was added to optionally show the count of pictures per category with each category thumbnail.

April 15th, 2005 update changes the GUI to incorporate the New Folder button inside the output folder panel border.

Update on April 11, 2005 fixes a bug with generating the colors hex values in the output sheets. It also uses the new border design with labels inside the border edge.

The April 5, 2005 update adds support for colors, user specified thumbnails size and optional clipping of the copied images. The generated HTML pages use the style sheet to control the colors of the page background, the heading text, the navigation text and the thumbnails dimensions text. You can select custom colors using the GUI. The output page can now look like this example. Click on the picture for a larger image.

Note that you need to have the copy files option selected for clipping of the output files to work.

The April 3, 2005 update makes the window taller and introduces a number of cosmetic changes. It also has a lot of changes behind the scenes related to GUI refactoring and getting ready to add support for new features as specified by the user from the GUI. Added support for specifying the number of rows and columns per page.

The March 26, 2005 update provides a new GUI feature as well as an enhancement to the HTML pages created as output. The GUI now provides a progress bar, making it easier to understand what the application is doing while processing a lot of pictures. The second significant change is that the output pages use cascading style sheets. A new file is created "photos.css" included in the HTML output set. The user can go back and modify that style sheet to change fonts, spacing and other CSS features of the generated output pages.

The 21-Mar-2005 update allows picture files that end in uppercase filename extensions and the option to show image sizes under thumbnails is no longer being ignored.

The latest (19-Jan-2005) release adds a "new folder" button for the output directory tree.

The (27-June-2004) release of this package supports nested photographs by categories. If your input images folder is structured into a set of sub-folders of pictures divided into categories, that structure will be re-created for the target web site and a master thumbnails page is created which links to each individual category. The Categories have thumbnail pages for each of their own photographs. The name of the image subfolders are taken as the category names. The first picture in each category is used as that category index thumbnail unless you name a specific picture after the category itself. In that case the specific named picture is used as the category thumbnail. For example, if you have an images folder with a subfolder containing animal pictures you could name that folder "animal". The folder name "animal" will be used as a category name. If you also ensure that one of the pictures in the animal subfolder also has the same name (animal.jpg for example) then that picture will be used as the thumbnail.

You launch via:
PhotoPublisher process: 'title text goes here'.

The release for Squeak 3.7 registers with the World open menu and can be launched easily from there.

The tool prompts you with a dialog where you would specify the input folder. Another dialog is then presented where you specify the folder for all the output files.

For an example of the output pages this tool creates look here.

NOTE: This change set requires that the prerequisite change set "Dialogs" is installed first if you are using Squeak 3.4. Squeak 3.7 does not have this requirement. The release for Squeak 3.7 adds several new features including a new control morph which can be seen in the picture, and image attributes included as an option on the generated pages.

Photos Publisher Photos Publisher Photos Publisher    
Border with Skips [ENH]
10-Apr-2005 tested in Squeak 3.7

This enhancement provides a new border for wrapping morphs. Click on the picture to see a clearer view. The essential feature of this new border design is that it allows skips along the top and bottom edge. You can insert text or other morphs into these skips.

A "helper" class is included in this package. SkippingBorderWrappingTool has an "interface" protocol on the class side. The BordersTester class included with this package generated the example output in the graphic shown. See the class method example to learn how the example window was created.

This enhancement package does not change existing base code but adds a few new classes and some method extensions to an existing class. No code should break from installing this package in a Squeak 3.7 image.

Development of this enhamcement will continue. I provided the mechanism for skips along the left and right side but have not coded the changes to how the border would be drawn for that enhancement yet. Also, I wrote this enhancement because I intend to deploy it in one or more of my other Squeak applications. The Photos Publisher will be modified to use a variation of this tool.

    Border with Skips    
Multiplication Test Sheet Generator [ENH]
26-Feb-2005 tested in Squeak 3.7

My son has been coming home from school with a need to do multiplication problems for homework. For several nights in a row I would make up multiplication math problems, about 15 on a sheet, and then ask him to work them out. After he finished we would review his work and talk about any errors we found.

The tedious part for me was making new problems up every night and then checking all the numbers. Ever the Squeaker that I am, I decided to write a utility to help me do this work.

This application will generate multiplication problems and output them in a table on an html page. Having an html page output makes it easy to throw at a printer. The child then takes the paper and solves the problems.

Another sheet is simultaneously created which provides the same problems with the answers included. Since these are multiplication tables involving 3 digit values and 2 digit values, the intermediate answer numbers are also provided. I print out my own answers sheet and then review his work. Very simple.

The output files are factored into directories by date. I can create more than one set of problems. All the test questions for the same date are published to the same folder. They have unique file names (using seconds for uniqueness) and are always produced in pairs (questions and answers).

Browse MultiplicationTester example1 to look at how problems are setup.

Math Tests    
Extract/Recover Desktops [ENH]
16-Jan-2005 tested in Squeak 3.7 #5989

This tool will re-create the Projects, ChangeSets, ProjectViewMorphs and project view hierarchies in a new Squeak image. If the Projects or ChangeSets do not already exist in the new image they will be created, but empty. That is, you will need to install the change set sources or packages manually. The process requires this tool to be installed on both the originating Squeak image (where the media and packages are found) and the destination Squeak image.

This tool assists with moving your projects and changesets environment to a new Squeak image. I usually put a lot of effort into creating a Squeak development environment that organizes my projects and change sets into a specific hierarchy of ProjectViewMorphs. The projects usually have desktops associated with them, also unique. Sometimes these desktops are just a fixed color, or a fully scaled image. Sometimes they have a gradient color background. And there are those projects that have a gradient background color with an image centered and inset. All of these preferences need to be restablished whenever I move to a new Squeak image.

With this tool the work of moving to a new Squeak image is simplified. There is at least one prerequisite. I use the Desktop Background Loader enhancement (also found on this page) to install all of my JPEG image backgrounds. This tool names each background Morph JPEG as they are installed, making the extraction process easier.

Migration Process:
Install this package into your existing, originating, Squeak image.

If you have the World Menu Registry enhancement installed (found on this page) you can choose "extract desktops from projects" from the "projects..." menu. If you do not have the World Menu Registry enhancement already installed, open a Workspace and execute:

DesktopExtractor extractDesktops

This will cause a folder to be created in the place of your choosing. That folder is named "extracts". the extracts folder will be populated with descriptive information about your projects and their views.

Once this completes you should also ensure that all of your change-sets or projects are suitably saved via file-outs or Monticello packages.

You can now exit the originating Squeak image.

Fire up your new "target" Squeak image and install this same package.

Create a Workspace and execute the following:

DesktopRecover recoverDesktops

All of your projects and views should be recreated from the information contained in the "extracts" folder you specify.

Blaine Buxton tweaked this enhancment so that regular SystemWindow project views are also now managed by this too. That modification is included in the package released here. Thanks Blaine.

Also, the current project you choose when you run the extract tool in your originating Squeak image will be the base of the extracted information. The current project and all sub-projects will be extracted.

    Extract Desktops    
Magnify Project Thumbnails [ENH]
5-Feb-2005 tested in Squeak 3.7

This is a quick enhancement I knocked out over dinner one evening. So it likes refinement and may not work in all situations.

For some of my Morphic Project windows I have several Morphic Project Views all lined up neatly in a row. However, I also resize them to be really small. Often I cannot read the project name. When you hover the cursor over a project view morph a little balloon appears with the name of the project. That's standard Squeak behavior.

With this enhancement I added a preference that, when turned on, will magnify the small project morphs quickly while you are hovered over them. Project view morphs that are large enough do not get magnified.

Magnify Project Thumbnails    
Align Project Thumbnails [ENH]
5-Feb-2005 tested in Squeak 3.7

Adds a menu item to the appearance menu, "clean up project morphs". When selected the project morphs are sorted alphabetically and placed as if on a grid, evenly spaced. A preference controls whether the project thumbnails are created horizontally or vertically. The spacing is determined by the way it finds the first morph in the World. The amount of margin it is currently using, and it's size, is used to resize and position the other project thumbnails.

This latest update includes a tweak from Blaine Buxton to allow the alignment of regular System Window projects too.

Align Project Thumbnails    
Skins [ENH]
13-Jul-2004 tested in Squeak 3.7beta update #5878
13-Apr-2003 tested in Squeak 3.4, 3.5, 3.6 alpha

NEW Skins support for Squeak 3.4/3.5/3.6/3.7
In early February 2003 someone wrote to me again asking if I would please port the old skins code over to Squeak version 3. Fact of the matter is, I did not want to port the old skins code because of a number of outstanding issues. However, I did start working on a re-write a few weekends ago and this is a PRELIMINARY result.

This new model attempts to accomplish a couple of goals that I saw as defects in the original skins model:

  • Use "standard" theme files from the open source Linux world.
  • Replace existing morphic components in the skinned window by finding them dynamically and not requiring special subclassed window code.
  • Provide a way to delete a theme and restore the window to it's original state.

    I've accomplished those goals. Also, the framework can be extended to support other imported theme files. At this time the skins framework will import the "Ice Window Manager" themes directly as can be found at a site like I have successfuly imported and tested 35 themes from that site in Squeak with this new skins code. No special handling of the theme files is required. Just uncompress them and tell Squeak where to find them. More about the actual skins theme process later... The nice part about this approach is that I don't have to concern myself with distibution of themes and art work. Lots of existing themes already exist and are being added regularly. The Ice Window Manager themes were selected as my first importer because they seemed to be the easiest to understand and seem to be standard forms based theme designs. At this time window title bar, title bar buttons and window borders are imported and managed by the skins framework.

    The old skins code required special subclasses of standard windows to override and install it's pieces. This new model make some intrusive changes to the SystemWindow architecture, but not really much, and performs a "swap out" of the morphic components that comprise the window with new ones created by the skin. Also, this technique allows me to easily remove a skin from a window from it's window menu. The original widow shape and style is restored completely. You can even skin selected windows and leave others alone. This approach does allow for the condition where you could have multiple skins installed on windows at once. Every open window could wear it's own skin. User interface folks would have a fit over that one, but you can try it out.

    3 change sets must be installed before the skins change set can be installed and used. The "dialogs", "xpm-support" and "importer-support" change sets must be installed first. The skins change set is named "skin-importer".

    After you install the 4 change sets, you will need to download some theme files from the site mentioned above. Some of the ICE WM themes work better than others. Ones that I have used with Squeak and like include "18k", "aesthete", "aeteria", "Athens", "beamer", "bluecrux" (my favorite), "bluesteel", "Eazel", "helix", "ubicande", and "xp new". When you uncompress the themes they create individual folders. Put the whole batch of folders anywhere. The first time you try to use one after an image startup the skins framework will ask you for the location of these folders. The dialog looks like this. A Preference is added to the #windows category to support automatic creation of windows using the "current" theme. The easiest way to establish a skin for a window is to use it's own window menu. There will be a choice to select a theme (or remove one if one is already assigned to the window). The skins framework will scan through the folder and present you with a menu of skins you can use,

    The skins work is incomplete. Internal borders, alignment pane backgrounds, and popup dialogs need to be addressed. Nevertheless this is a great starting point. I'm perfectly happy to see the open source Squeak community adopt this framework and enhance and complete as best we can. I want to take a crack at importing some other open unix theme formats soon to further refine the framework and refactor as necessary. I'm interested in dynamic theme designs too (not just strictly form based) and want to adopt some ideas I have along those lines into this framework as time permits.

    Note. If you are using my IRC Enhancements change set, there is an additional change set you can install, AFTER you install the skins code. Install this change set only if you also have IRC enhancements installed.

    Note. If you are using Squeak 3.7, I just (June 19, 2004) released a package that works with this version of Squeak. It is a Monticello package and is the only thing you need to install. Just save the download file and open it up as a Monticello package via the File List. (This is the same installation proceedure for all of my Squeak 3.7 enhancements). The feature content of the Skins 3.7 package is not as complete as some of the earlier versions, but I wanted to get something ported and released quickly to respond to the email requests I have been getting.

    Another Note about Squeak 3.7 and Skins II
    I just updated the Skins II package (13-July-2004) because it had some problems when installing from a virgin Squeak image. This was a result of some package dependencies which are now resolved in this latest uppdate.

  •   dialogs

    XPM Support

    Importer Support

    Skin Importer
    Skins 3.7    
    Enhanced IRC Client [ENH]
    19-Jun-2004 tested in Squeak 3.7gamma update #5985
    11-Jan-2003 tested in Squeak 3.4 update #5168

    This is a significant rewrite of the built-in Squeak IRC client GUI. A new user interface includes having one console window per connection and then having all console messages, channel messages and private messages contained inside the main console window using tabbed swapped panes.

    Numerous other changes are also included but are not described here. The change-set contains documentation for all features added or modified.

    I wrote some basic setup and operation instructions for this client. They can be found here.

    This update has preliminary mIRC color text support. Channel messages received will show colors as controlled by the color mapping tables. At this time only foreground color messages are processed. Background color messages are decoded by the software but no attempt has been made at this time to display channel message text in any other than a white background.

    Update 11-Jan-2003 - Added better control over management of topic pane. Also added logging of channel traffic option. Fixed bug with collision of world open menu. - not needed with 3.4. Defined IRC.FREENODE.NET server.

    UPDATE For Squeak 3.7

    The Enhanced IRC Client has been refactored, renamed and had even additional features added. Once you get the client running, it's available from the standard World menu, you can type /DOCS to see a list of features and release notes.

    An SUnitTest suite of classes has also been added, including an IRC testing server. You do not need the unit test code to simply use the IRCe (It's new name) client.

      Enhanced IRC client IRCe client

    Test Suite for IRCe client
    Crop SketchMorphs and Grab Screen Rect to JPG [ENH]
    12-Jun-2004 tested in Squeak 3.7beta update #5878
    9-Jan-2003 tested in Squeak 3.4 update #5156

    This change-set combines features from 2 previous ones I had released. It also adds capability.

    Provides a menu option to allow a crop operation on an existing SketchMorph. Very handy for modifying a SketchMorph on your desktop. Also provides basic change to how a rectangle is grabbed from the screen. A new crop/grab UI design is used. Here's how you use it:

    • Either select 'crop' from the morph menu (red) halo or use a Utility method to grab part of the screen.
    • The entire desktop becomes a translucent white.
    • Click where you want to begin the crop/grab origin.
    • Drag until you have a corner of your new rect. The UI will show the cropped/grabbed rectangle in clear view.
    • When you release the mouse you can then perform either of 3 actions.
      • If you click inside the rectangle you can drag the rectangle to a new position on the screen.
      • If you click outside the rectangle you are telling Squeak you are done.
      • If you grab an edge or corner you can resize the rectangle.

    In addition, two new Utility methods were added and one was re-grouped. The new Utilities grabScreenAndSaveOnDiskAsJpeg will save the grabbed rectangle as a JPEG file. It also prompts you for the output file name. A default file name is provided.

    Crop SketchMorphs and Grab Rect Crop SketchMorphs and Grab Rect Crop SketchMorphs and Grab Rect    
    Edit Text Colors [ENH]
    25-Apr-2004 tested in Squeak 3.7
    27-apr-2003 tested in Squeak 3.5

    This change-set provides a new editor allowing the easy modification of #colorPrint values.

    If you turn on the Browsing preferences of
    you can see these colors and attributes in action on code panes.

    To open the editor perform:
        DialectStreamAttributesEditor open"

    NOTE: This change set requires that the prerequisite change set "Appearance Menu Registry" is installed first if you are using Squeak 3.4.

    Edit Text Colors Edit Text Colors Edit Text Colors    
    Halt Once [ENH]
    12-Jun-2004 tested in Squeak 3.7beta update #5878

    The most common method of "breakpointing" is to modify the code you are working on and include a self halt in the right place. Sometimes, however, you find you have a looping operation or some kind of recursive operation and you only want to stop one time. This enhancement provides methods on the class Object enabling these new techniques.

    When this enhancement is installed, the debug menu provides a toggle to enable and disable this feature. your haltOnce calls remain dormant until you enable them from the debug menu. Once the trigger was hit and your code halts, the trigger is cleared for next time.

    This enhancement provides for the following methods which can be used instead of self halt .

    method description
    haltOnce When the halt once feature is enabled, the halt will execute only once, the first time it is hit. From that point on, it is ignored.
    haltOnce: Exactly like haltOnce except provides for an optional string argument.
    haltOnCount: Exactly like haltOnce except it stops once when the count argument is reached.
    halt:onCount: Exactly like haltOnCount: except provides for an optional string argument.
    inspectOnce When the halt once feature is enabled, an inspector will be opened on the receiver object exactly once, the first time it is hit. From that point on, it is ignored.
    inspectOnCount: When the halt once feature is enabled, an inspector will be opened on the receiver object only the exact count for the argument has been reached.
    inspectUntilCount: When the halt once feature is enabled, an inspector will be opened on the receiver object everytime it is called until the count argument has been reached.

        Halt Once    
    Open Color Swatch from a Color [ENH]
    12-Jun-2004 tested in Squeak 3.7beta update #5878

    Simple enhancement that provides an instance method #openSwatchMorph on the color Class. This new method will open a color morph swatch using the color object

        Color swatch    
    Parse Node Mods [ENH]
    12-Jun-2004 tested in Squeak 3.7beta update #5878

    If you use method pretty printing, the { and } groups do not show very nicely when they are nested. This enhancement fixes that.

        ParseNode mods    
    Project View Morphs with Shadows option [ENH]
    25-Apr-2004 tested in Squeak 3.7
    27-apr-2003 tested in Squeak 3.5

    If new morphic projects are opened in a project view, check the Preferences to see if we should automatically apply a drop shadow.

    Also, changed the new creation of project morphs to be attached to the cursor and having the user locate the new project morph in the world/ This was done because the original technique always slammed the new project in the left top most corner of the world and invariable the user had to pick it up and put it somewhere else.

    Project Views with Shadow Project Views with Shadow Project Views with Shadow    
    Project View Aspects [ENH]
    25-Apr-2004 tested in Squeak 3.7
    27-apr-2003 tested in Squeak 3.5

    Create morphic project views with an aspect ratio that agrees with the screen, if the preference is set. Also, another new preference controls if the drag resize should also constrain the user to the same aspect ratio.

    This enhancement is mostly for my own working style.

    Project View Aspects Project View Aspects Project View Aspects    
    Project Menu Registry [ENH]
    27-Apr-2003 tested in Squeak 3.5

    Provides a menu registry for the World project menu. For example...

    TheWorldMenu registerProjectCommand: {
        'publish change sets'.
        {ChangeSorter. #publishChangeSets}.
        'Scan through the repository of change sets and created published version in user specified target repository.'}.

      Project Menu Registry      
    Change Set Revisions Tag [ENH]
    27-Apr-2003 tested in Squeak 3.5

    Provides an automatic mechanism for creating version history in a change-set preamble and a consequent mechanism allowing for queries on a change set for a latest revision level tag. Also can create a preflight check for a change set to better support prerequisite loading. See ChangeSorter class>>generatePreflightCheckExample. Adds a new field to the change set preamble: SM Name (Squeak Map Name).

      Change Set Revisions Tag      
    Fix Projects List [FIX]
    13-Apr-2003 tested in Squeak 3.5

    The change set fixes the project hierarchy display. It's a fix for an old bug that still hasn't been picked up by the "harvesters". I came upon this error recently while working in Squeak 3.5 and decided to publish this revised update.

    Fix Projects List Fix Projects List      
    Week and Date fixes [FIX]

    3-Feb-2003 tested in Squeak 3.5
    no picture

    By default weeks begin on Monday in Squeak and code exists to toggle between Sunday start and Monday start. This change set adds a explicit setting methods for the start of week day.

    There were a few places in the code where proper adjustment to Sunday beginning weeks were not correct. The Date #weekday math was corrected to account for Monday/Sunday week start.

    Month has a new #weeksInMonth method. Week #indexInMonth: method was also fixed. Note that the MonthMorph still works correctly since it coded around this.

    Wrote some SUnit tests for Date and Week.

      Week and Date fixes      
    Appearance Menu Registry [ENH]

    9-Jan-2003 tested in Squeak 3.4 update #5156
    no picture

    Provides a menu registry for the world appearance menu. This is a prerequisite change set required for some of my Squeak 3.5 enhancments.

      Appearance Menu Registry      
    Dialogs [ENH]

    9-Jan-2003 tested in Squeak 3.4 update #5156
    no picture

    Provides extensions to dialogs available from FileList2. This is a prerequisite change set required for some of my Squeak 3.4 enhancments.

    Common Code Repository [ENH]
    27-apr-2003 tested in Squeak 3.5
    no picture

    IMPORTANT: If you downloaded a version of this change-set before 16-Nov-2002 you need to get this latest version. The previous version produced problems with image save/load operations.

    Provides an easy to use mechanism for change-set fileouts to go to a specified location. By default the location is still the image directory. However, you can specify a new location in any change sorter.

    The change-set repository location remains constant regardless of which change-set is current.

    Common Code Repository Common Code Repository      
    The rest of this table contains "placeholders" for future work.
    NAME [ENH]
    DATE tested in Squeak VERSION


    NAME [ENH]
    DATE tested in Squeak VERSION