This file lists the major changes in the current YACL version.
* Migration of many documentation files from text format to HTML, so that you can use your favorite browser (i.e., Netscape :-) to view them
* New classes:
- A PostscriptDevice class, representing the beginnings of support for PostScript printers and GhostView, via the DrawingSurface interface.
- HashTable and HashMap classes (preliminary implementations)
- A preliminary implementation of the TreeView class under OS/2
* New demo programs:
- An analog clock demo (uidemo/aclock)
* Partial support for the Gnu Win32 compiler under Windows NT: the makefiles named gnuwin32.mak provide a start in this direction
* An experimental Motif-free implementation of the visual objects under X windows: see doc/x_yacl.htm for details
* Numerous bug fixes and enhancements: see doc/changlog.txt for details
* New classes:
- A RegExpr class representing regular expressions: see the file base/regexpr.h
- A PathName class representing a path on the file system: see the file io/pathname.h
- A Directory class representing a directory on the file system: see the file io/directry.h. This class is only supported on Posix-compatible compilers; in particular, Microsoft VC++ does not provide the necessary Posix calls.
- A ShadowedTriangle class for drawing triangles with shadows
* New base demo programs:
- a directory reader: look in the directory basedemo/directry
- a regular expression tester: look in basedemo/regexpr
* New GUI demo programs:
- a simple text editor: look in the directory uidemo/txteditr
- a demo showing color setting for visual objects: look in the directory uidemo/visobjs
* (Very) partial support for building shared libraries/DLLs. See the file doc/quirks.htm for details.
* New contributions:
- Several useful GUI classes by Jorg-Peter Reich (in the directory contrib/reich)
* Numerous bug fixes. The changes are documented in the file doc/changlog.txt.
- UI_SimpleDialog no longer exists. Use UI_StandardDialog instead.
- The parent of a UI_VisualObject is not constrained to be a UI_VObjCollection; it can be any UI_VisualObject. This was added to make it easier to build custom visual objects. But this also means that some previous code may break, and casting may be necessary.
- The Controller's GiveFocusTo method now takes a pointer as parameter, not a reference.
- In the class CL_Basics, the static _Null data member, and the static NullValueRef method, have been removed. This was done to ensure correct performance in multi-threaded applications. However, this may break some existing code that references these two members. Simply comment out these members in your code.
* An interactive dialog editor written using the YACL classes, so as to be entirely portable
* A bitmap viewer, contributed by Tony T. Ton (t.t.ton@massey.ac.nz)
* A few contributions by other YACL users:
- Classes for supporting accelerator keys, by Ludovic Brenta, in the directory contrib/accel.
- Makefile changes for building YACL as shared libraries under Solaris with GNU C++, by Jeff Long (long@tiny.mitre.org). These changes have been integrated into the YACL library makefiles; look in the file control/gnuc/solaris.cfg and in base/gnuc.mak, io/gnuc.mak and ui/gnuc.mak for details on how to do this.
* A few new classes:
- A 3DLabel class, which is a Label that draws itself with a 3-d effect. This looks good for status bars and the like. See the demo programs uidemo/3dlabels and uidemo/scrolwin for illustrations of its use.
- A ScrollableWindow class representing a window that has scroll bars attached at its right and bottom. See the deom program uidemo/scrolwin for an example.
- The DwgSurfaceInMemory now is tested to work correctly on all platforms. The 3DLabel uses this class to speed up drawing.
- MDI classes for supporting the Multiple Document Interface (under Windows, Win32 and OS/2 only).
* Support for more compilers:
- GNU C++ 2.7.2 and EMX 0.9b (under OS/2) are now supported.
- Native C++ compilers on SGI IRIX (Delta C++) Solaris 2.4 (Centerline C++) are supported; makefiles are included in the distribution.
* Numerous bug fixes and enhancements to make YACL more stable. For example:
- Support for checkable menu items
- A static SetDefaultTextStyle method for UI_Label, to set the default style for all Labels
- Support for default push buttons for dialogs
- Cross-hair and up-arrow cursors under OS/2
- Separate interface and implementation for CL_Basics, to make it easier to instantiate pointer-based containers
* WIN32 support has been added so YACL can be used under Windows NT and Windows 95
* Microsoft Visual C++ 2.1 (under Windows NT/ Windows 95) and IBM Visual Age C++ (under OS/2) are now supported
* Better support for bitmaps
* Support for bitmap buttons (both push buttons and toggle buttons)
* Several new GUI classes: NumberEditor, DateEditor, PasswordEditor, BitmapButton, ShadowRectangle, ShadowedLine
* New demo programs for bitmap buttons, editors, border displays
* Combo boxes supported under Motif (This uses the ComboBox widget written by Harald Albrecht, and its use is subject to the GNU GPL)
* Several bugs fixed under all platforms