Subject: [ANN] Whisper 1.0 – a new open source Mac/Win32 C++ app framework
From: Jesse Jones (email@example.com)
Whisper is a free general purpose Mac/Win32 C++ application
framework. It’s the successor to the Mac framework Raven. Like Raven
Whisper is a modern framework that takes advantage of templates,
multiple inheritance, STL, and exceptions. It’s also designed around
the notion of Design by Contract and includes numerous debugging
Whisper is divided into four layers: Foundation, Core, High Level,
and Esoterica. The lower layers are independant of the higher layers.
Foundation includes a framework for unit tests, debugging functions,
a cross platform stack crawl class, geometry classes, a date class,
mixins for lockable and reference counted classes, classes for
converting between Unicode, US-ASCII, Win Latin-1, and Mac Roman, a
Unicode string class modeled after std::string, a templatized version
of the Observer pattern, and a number of STL-compatible containers
(these include two replacements for std::auto_ptr, a sparse array
class, a very light weight vector class, a tree class, etc).
Core includes the bulk of the classes that talk directly to the OS
APIs (the Foundation layer also includes a few OS classes). This
includes an application class, another application class used when
writing drag and drop apps, window and dialog box classes, a set of
control classes (currently checkbox, group box, pixmap control, popup
menu, radio button, scrollable, scrollbar, scroller, slider, static
text, textbox, and user control), event classes, extension objects
(this is a generalized version of adorners/behaviors), file classes,
graphics classes (shapes, fonts, pens, brushes, pixmaps, etc), a
framework for heap managers (one nice feature is that leak reporting
is done via a stack crawl), menu classes, and mouse cursor classes.
Core also includes a few non-OS classes that are used within the Core
layer: command objects, an undo manager, classes for validating text
input, an idler class, and a timer class.
High level currently consists of (binary) streaming classes, a
framework for streaming objects, and a templatized preference class.
Esoterica includes automata classes, a regular expression class, a
compression class (based on zlib), a simple text parser, a more
complex parser (it builds parse trees), and a validating XML parser.
You can find additional information about Whisper, download Whisper,
and join the mailing list using: