wxSqueak
What is it?
wxSqueak is a Squeak interface to the wxWidgets (formerly known as wxWindows) GUI library.
Version 0.4.1 Release Notes
- Built with wxWidgets 2.6.1
- Initial Linux/GTK2 version
- Binaries for Fedora Core 3 and Ubuntu (Debian)
- Downloads have been split into platform-specific VMs, shared source, and common files
Notes on the Linux version:
- Build with 3.7b5 source
- Configure has not been modified properly for new builds; see config/WxChanges.txt for modifications
- No VM changes have been made for event handling, so some demos are sluggish
- Binaries are stripped debug builds
- Listbook demo works, but is extremely slow to come up.
Version 0.4 Release Notes
- Now works with Squeak 3.8 and wxWidgets 2.6.0 on Win32 and Mac OS X.
- Virtual method callbacks. It is now possible to create Squeak subclasses of
wx classes such as wxGrid and wxListCtrl (and many others) that redefine parts of
the default wx behavior. For example, renderers and editors written in Squeak can
be assigned to cells of a wxGrid. About 90 methods for 18 classes have been added so far.
- Client data can be added to items in list and tree controls.
- More demos. Most of the wxPython demos that involve non-custom controls (around 75 or so)
have been reproduced.
- All ordinal arguments and return values have been converted to be 1-based instead of
0-based. This applies to list indexes, grid coordinates, pages in book controls,
menu items, etc.
- More assertions have been added to primitives. The short term goal is to intercept all
of the assertions that may appear when using a debug build. Long term, the
goal is to prevent any primitive from causing a crash because of bad arguments.
- A VM linked with a debug build of wxWidgets is now provided. Using this avoids
crashes caused by assertions in the wxWidget library code.
- More support for XRC. Most components built with an XRC editor (e.g., DialogBlocks,
wxDesigner, wxGlade, XRCed) can be instantiated now in wxSqueak. This will be the
basis for a future GUI builder.
- Monticello packaging. The Squeak source code is now organized into 5 Monticello packages.
The Bootstrap package must be loaded first, followed by the WxWidgets package. The Tools,
CodeGeneration, and Tests packages are optional.
Download
For a self-contained package, download one of the demo versions. Each of these contains a full Squeak setup with the wx extensions pre-loaded. Unpack the archive,
and drag the image file to the executable to start it.
To load into your own 3.8 image, download the source version. Unpack this in your Squeak image directory, start your image using the
modified VM (wxsqueak.exe or wxsqueakd). Load the WxBootstrap package first, then the WxWidgets package.
Screenshot
Win32
OS X
Linux/GTK2
Known Issues
- In wxMac, a few demos don't work, and there are display problems with some
controls. wxMac is less mature than other platforms, but is catching up quickly.
- Errors in virtual callbacks are sometimes fatal.
- Memory leaks are less common, but still an issue.
- Under Win32, the executable compiled with Visual C++ is only 50% as fast (as measured with tinyBenchmarks)
Tentative Roadmap
- 0.5 Unicode, Linux (GTK) version, custom controls, GCC build for Win32
- 0.6 API complete
- 0.7 Memory leaks fixed, more efficient event handling
- 0.8 GUI builder
- 0.9 Shrinking/modularization, app builder
- 1.0 Squeak 4.0
--------------------
Rob Gayvert
rtg@rochester.rr.com