Note from archiver<at>cs.uu.nl:
This page is part of a big collection
of Usenet postings, archived here for your convenience.
For matters concerning the content of this page,
please contact its author(s); use the
source, if all else fails.
For matters concerning the archive as a whole, please refer to the
or contact the archiver.
Subject: Portable GUI Development Kits FAQ, part 2/4
This article was archived around: 2 Mar 1997 20:58:37 +1100
PLATFORM INDEPENDENT FAQ PART TWO
Copyright 1996 Ross McKay. Last released $Date: 1997/03/02 09:04:40 $
Copyright 1993-1995 Wade Guthrie. Permission is granted to copy and
redistribute this document so long as it is unmodified (including the
part that explains where to get the FAQ free-of-charge) and the
copyright remains in-tact. I'd appreciate it if you told me about any
redistribution, but that's not strictly necessary.
VI. VENDOR REPORTS
The different PIGUI kits are classified by the language they support.
These are the ones which support C and C++, with names A* to N*. PIGUI
kits for C and C++ from O* to Z* can be found in Part 3 of the FAQ,
and for other languages in Part 4 of the FAQ.
_C/C++ from A to N_
Allegris Workshop (formerly C++/Views)
Don's Class Application (DCLAP) library
MEWEL User Interface Library
Microsoft Foundation Classes
Allegris Workshop (formerly C++/Views)
9420 Key West Avenue
Rockville, MD 20850
1-800-547-4000 or 301-838-5000
Allegris Workshop includes two components, the Allegris
Foundation class library and the Portable Resource Workshop
(replaces the C++/Views Constructor).
Additional features include printer, graphics, event, string,
and various container classes as well as some higher-level
classes e.g., VTableView and VToolBar, dockable toolbars,
virtual listbox, and some other Windows 95 controls. Allegris
Workshop also has geometry management so you can place objects
based on relative coordinates, and persistent object storage.
The Portable Resource Workshop is the focal point of the
development process. One uses the browser to navigate through
one's application to, among other things, find appropriate GUI
base classes. From there, one can derive new class descriptions
which the browser uses to generate the necessary C++ source
code. The user doesn't see individual events; they are handled
by virtual callback functions in the base classes.
This product was C++/Views by Liant, recently been taken up by
Intersolv to become Allegris Workshop. Intersolv have dropped
the Macintosh and SGI Irix versions.
There is an additional product, Allegris Constructor, which
sounds kinda VB for cross-platform... any info would be greatly
_WHAT THE USERS SAY:_
(about C++/Views) They use a smalltalk model -- if you like
smalltalk, great; if not, you may have some trouble. On the
other hand, they also the Model/ View/ Controller architecture
(that's a _good_ thing).
They have a browser/editor -- it's simple to add a new message
but it's reportedly kind-of clumsy to use. You may want to use
a different environment like Borland's IDE under Microsoft
Carnegie Mellon University
AMULET is an entirely free, public domain user interface
development environment in C++ for Windows NT or Windows 95,
Macintosh, and Unix/X11 (since the source is distributed, it
will work on any Unix platform).
More than just another free "virtual toolkit", Amulet includes
many features specifically designed to make the creation of
highly- interactive, graphical, direct manipulation user
interfaces significantly easier.
Based on a proven earlier system, called Garnet, that was in
wide use in the Lisp community, Amulet adds a number of
important innovations and refinements. Important features of
Amulet, v2.0 include: a dynamic, prototype-instance object
system that makes prototyping easier; automatic constraint
solving integrated with the object system; a
`structured-graphics' model (also called a `display list') that
handles automatic refresh of objects when the change; a
high-level input model that makes it easy to add behaviors to
objects and also supports undo and help for operations; and a
full set of flexible widgets implemented using the Amulet
intrinsics, so you can easily experiment with your own widgets.
The current supplied widgets include: buttons, check boxes,
radio buttons, menus, menu bars (pull-down menus), scroll bars,
scrolling windows, and text input fields.
New to 2.0 are `gesture recognition', undo/redo, command-driven
cut/copy/paste, assorted new widgets including standard error
dialogs, GIF support, geometry management, and much improved
Amulet comes with complete documentation including a tutorial.
Don's Class Application (DCLAP) library.
Indiana University at Bloomington, Biocomputing Dept.
This is a (free-of-charge) barebones C++ application framework
with no detailed documentation.
Primary classes include
+ Application methods including event tracking, task
management, command do/undo, preferences, child application
+ Window, dialog, menu and file management
+ TCP/IP networking, smtp, gopher and basic http
+ Rich Text reading/display classes for Text, RTF, HTML, and
graphics formats of PICT and GIF.
+ Biosequence analysis methods
Its main current use is to build a biosequence editor and
You can get it via anonymous ftp from ftp.bio.indiana.edu. It's
in the /util/dclap directory.
It has been used on Mactintosh (68K, PowerMac; Systems 6 & 7),
MSWindows (Win3, Win95, WinNT), XWindows/Unix (Solaris 2, Sunos
4, SGI Irix 5, DEC Unix, Linux). Motif libraries are required
for the XWindow version.
According to the author, it "has several important flaws". But,
on the other hand, it's free for non-commercial uses. It is
built on the cross-platform toolkit from the National Center
for Biotechnology Information (NCBI) of the National Library of
Medicine (NLM) available for anonymous ftp from
ncbi.nlm.nih.gov as /toolbox/ncbi_tools/ncbi.tar.Z.
11440 Commerce Park Drive
Reston, Virginia 22091
(800) 832-8668 (inquiries)
(703) 758-2711 (voice)
There are C++ and C versions of this library. The package
includes a WYSIWYG GUI builder. They ship the tools with static
and dynamically loaded libraries, and debugging libraries. Each
version provides multi-platform look-and-feel, allowing you to
see what your program will look like on another platform.
The tools are, reportedly, pretty full-featured. User-interface
items have extensive abstraction (for example, they have a
confirmation-type dialog that resolves to a push-pin and
`apply' button under OpenLook, but `ok', `apply', `cancel'
buttons under motif). Also, errors are handled with an abstract
exception handling framework. They support geometry management
and internationalization of typefaces (at least Japanese),
money, and data formatting. Finally, they have a portable help
Some extra-cool features include memory leak detection and
C-language objects for text (multi-styled, multi-font text with
embedded graphics), list (spreadsheet-like for handling up to
2^31 x 2^31 cells with customizable displays), and graphics
processing. They include lots of high-level objects for use by
developers; these objects include a font chooser, an icon
editor, a directory browser (for file selection), and a color
In addition to a GUI portability platform, Galaxy also includes
inter-process communication (IPC), extensive filesystem, and
sound support portability across platforms.
You get no support when you buy the product. If you buy the
support, it includes product updates and phone access to their
developers. According to one of Galaxy's developers "not buying
support is really a false economy".
These guys have implemented a full superset approach to their
API. Often, their objects are more capable than the native-mode
object would if you had not used their code. Galaxy is an
emulated API (they don't layer on-top of other tools); they
compile, for example, down to Xlib under Motif or OpenLook.
This software won Unix Review's Outstanding Product Award
(1993) for Software Development Front-Ends.
They claim support for MS-Windows v3.1, but support is only for
Win32s and not Win16. They no longer support the Watcom 32-bit
Windows 3.1 format.
Visix have finally relented, and stopped insisting that
evaluators must first attend a one-week course on the
product... now you _can_ convice your manager that it's worth
Visix was founded in 1989 and is privately held. Galaxy has
been in development since 1986 and has been on-the-market since
1992. Over 2,000 copies of Galaxy has been licensed to more
than 250 companies.
Visix used to sell single look-and-feel packages (e.g. you get
just the MS-Windows LAF) but stopped as "less than 10%" savings
Visix say that their three 'critical design goals' are
cross-platform, speed, and full-featured. I think that this
product is a good example of `you get what you pay for' or
`fast, cheap, good - choose two'.
_WHAT THE USERS SAY:_
One user says, "If you are looking at cross-platform
development environments, you absolutely MUST take a look at
Galaxy, from Visix Software. Very good interface builder,
covers ALL layers of the API, from GUI to networking, very well
designed API, C++ version, etc. [...] We have had good results
with it so far." Another user agrees, "I've been using their
software for almost 2 years now and I love it", adding, "I lead
a project that had > 80K lines of C / C++ that had less than
100 lines [different] between the SunOS and MS-Windows
These guys have been extremely helpful getting their portion of
this FAQ going. I think that this could be indicative of
seriously superlative support (that's an awful lot of
Using their C product produces extremely verbose code; it seems
to me that they should hide more of the detail from the
Most of the extraneous code can be cut from their examples and
pasted into your application, but good luck figuring out what
that code does. On the other hand, once the cut-and-paste tango
is accomplished, one can achieve quite good results. As with
many other PIGUIs I've seen, the learning curve is nearly
vertical (and the documentation doesn't help much) but once
you've gotten used to the API, you can get some neat things
Department of Computer Science
University of Sydney
GraphApp is a fairly simple abstraction in C, of the common
features of Microsoft Windows, Motif, and Athena widgets. (a
Macintosh version is planned also). It seems to be targetted at
students, however (or perhaps because of this) it is a very
easy PIGUI toolkit to pick up and write GUI applications with.
I will tell more when I have had time to look more closely at
2105 Landings Drive
Mountain View, CA 94943
(415) 390-9000 (voice)
(415) 390-0946 (fax)
ILOG Views is a portable C++ library for graphical
applications, from the simple GUI forms to more sophisticated
It includes a WYSIWYG GUI editor, Studio, that manages projects
and generates C++ classes. Studio offers numerous editing
services with drag-and-drop mechanisms, geometry management and
active variables for automatic updates. Developers can rapidly
build GUI applications that meet their business needs with
minimal raw C++ coding. Studio's framework includes a new
command-based architecture and command panels that provide
developers with hundreds of pre-defined application commands.
Studio is fully customizable.
The ILOG Views' gadgets emulate Windows95, Windows3 and Motif
look- and-feel on all platforms. They include note-books and
spin-buttons among classical buttons, menus, sliders and
textfields. Whatever is the development platform, the developer
can test his/her interface with any look-and-feel, without
porting or compiling.
A major differentiator from other PIGUI kits is the support for
very high level graphing objects such as ready-to-use charts,
Gantt charts, spreadsheets, hypertext, network graphers, maps
and more. ILOG is also very strong on graphical representation,
providing high-level classes to manage presentation of graphics
objects by the thousands. It is possible to display the same
objects in several windows simultaneously and to store them in
layers that can be set visible/invisible for each window. ILOG
Views provides editors with full source code to develop
end-user specific editors for synopses, networks, and so on.
Other capabilities of ILOG Views include support for
integration with databases, portable graphics, double
buffering, persistent objects using ASCII files), IPC (sockets
and RPC), OLE 2.0, and Internationalization through a message
database mechanism and multi- byte strings. Studio is available
with a Kanji and a Korean message database.
ActiveX components and plug-ins allow ILOG to be used to more
simply create graphics-intensive Web applications.
ILOG DBLink (RDBMS connection library)
ILOG Server (Model-View-Controller for C++ objects)
ILOG Broker (Support distributed C++ objects transparently)
ILOG InForms provides datasources from Oracle, Informix,
Sybase, Ingres and ODBC, for live manipulation during
development of graphical-intensive applications. InForms
generates much of the SQL code for the application, and allows
point-and-click integration with graphical tables, controls or
complex graphical objects. Flat files can also be accomodated.
ILOG Vision is a stand-alone product which provides a very high
level interface to 3D graphics using OpenGL or Direct3D.
You get a 1-month support when you buy the product. Support
includes product updates and hotline. Localized hotlines are
available in most countries: USA, France, UK, Spain, Singapore,
Australia (Headquaters and subsidiaries) and through
ILOG Views has received the following Awards:
+ 1995, The X Journal' 1995 Editor's Choice.
+ 1995, X Industry Achievment Award' Best Product of the Year
+ 1996, Software Development Magazine Productivity in the
Libraries and Components category.
ILOG is a 220-person ISV focused on C++ development tools. ILOG
was created in 1987.
More than 600 sites worldwide are using ILOG Views to develop
their graphical interfaces.
JAM 7 (JYACC Application Manager)
116 John Street
New York, New York 10038
This is a C-language library. The package includes a GUI
JAM's Screen Editor boosts productivity with a fully graphical
`drag and drop' application development environment. You can
quickly build screens and other application objects using a
superset of the controls supported in each GUI environment. JAM
lets you edit multiple objects simultaneously and drag and drop
objects between two or more open screens.
Other features include:
+ Standard controls, e.g. text, list boxes, combo boxes,
+ Menu bars and icon bars
+ Context sensitive help
+ Grid controls, which present tabular data in a
+ Buisness graphics controls, which let you display 2-D and 3-D
pie, bar, and line charts.
+ Bitmap images in BMP,XPM,JPEG, and GIF formats.
JAM's Screen Wizard allows you to build fully functional
screens and transactions that access a database. JAM's
Transaction Manager simplifies the process of building high
performance database applications by letting you invoke
database operations - and apply transaction-specific control
attributes - without coding. JAM automatically generates and
executes the SQL statements needed to apply transactions.
JAM/ReportWriter 7 adds a report writing component to JAM. The
new release provides sophisticated reporting capabilities to
developers of JAM applications. The new Report Wizard lets you
generate complex reports via point-and-click selection, with
report formats of Column, Row, Cross-tab, and Address Labels.
JAM/WEB (Web Enterprise Builder) enables developers to build
server- based database applications for the Web. Developers
build virtual JAM/WEB `forms' and deploy them on a server
system. JAM/WEB automatically converts the forms into dynamic
HTML for display on a browser, and processes the submitted
forms generating SQL to the back end database.
487 Groton Road
Westford, MA 01886
(508) 392-0100 (voice)
(508) 692-3102 (fax)
libWxm emulates the MS Windows (win32/s) API. They support
dialogs, resources, bitmaps, child windows and controls, custom
controls, fonts, and GDI commands.
MDI support, postscript printing, and DDE support.
1270 Oakmead parkway, suite 310
Sunnyvale, CA 94086
(800) MAIN-WIN (inquiries)
(415) 896-0708 (fax inquiries)
(408) 774-3400 (voice)
(408) 774-3404 (fax)
MAINWin is a portable implementation (to any system offering
POSIX compliance and Xlib) of the MS Windows API (including the
Microsoft Foundation Classes 3.0 and 4.2) on Unix/X-Windows.
They support OLE 2.0, DDEML, Win32 message format, and most of
the Win32 APIs. The XDE includes printer support, a resource
compiler, a help compiler (they have support for Winhelp using
the windows .hlp files), a makefile generator plus some
additional tools. Multi-threaded programming is now supported
The software's output runs directly on Xlib, and does not
require Motif software. MAINWin allows the user to switch
look-and-feel between MS-Windows and Motif from the system menu
at run-time. In order to run a MAINWin application on a Unix
workstation, users need a copy of the `MAINWin for
Workstations' product for each machine on which the code runs.
MAINWin offers porting tools for MS Windows resources, the MS
Windows hypertext help system (which uses the original
rtf-format help files), shared libraries (DLLs), fonts,
postscript printing, dynamic data exchange (DDE), and MS
Windows Device Context APIs. Also included in this code is
support for the Microsoft MFC 2.0 class library. Finally,
MAINWin includes their DDR technology to provide PC-compatible
file structures across all systems.
Documentation for with MAINWin includes the `MAINWin
Cross-Development Guide', the `MAINWin API Function Call
Status' document and the `MAINWin API Message and Control
MAINWin's optional developer program includes a weekly status
of issues reported to MAINSoft.
Visual Source Safe is available for UNIX. (Why you would want
to use it, I don't know... CVS is free, and there are _many_
better SCM products available on Unix)
MAINSoft has entered into a source code license agreement with
Microsoft. This agreement allows MAINSoft to incorporate
MS-Windows code and MFC into their product.
In addition, MAINWin includes something they call DOS Data
Representation technology into their toolkit. This allows the
user to use MS-DOS format files under the other platforms
supported by their software.
MetaCard is a GUI development and multimedia authoring tool
compatible with Apple Corporation's HyperCard. Anyone can use
MetaCard to build GUI applications and hypermedia documents
using a powerful, direct manipulation editor and an
easy-to-learn scripting language.
MetaCard goes beyond HyperCard by including support for colour
controls and images, tabbed-dialogs, vector graphics,
multiple-font text fields and list boxes, combo-boxes,
scrollbars and progress bars, and dialog boxes. MetaCard's
scripting language has support for arrays, custom (user
defined) object properties, and is based on high-perforance
`virtual compiler' technology. Stacks developed with MetaCard
are portable _without recompiling_ among all supported
platforms (14 for release 2.1) and can be distributed without
licensing fees or royalties.
The high-level language approach supports much higher
productivity than is possible with tools that rely on a
third-generation language such as C/C++/Java. Similar in
philosophy to Tcl/Tk, but much faster (around 8x for
text-intensive operations, up to 30x for numeric-intensive
operations), much easier to learn, native look and feel on all
platforms, built-in GUI builder, built-in object persistence,
and single-file distributions.
Autumn Hill Software, Inc.
1145 Ithaca Drive
Boulder, Co. 80303
(303) 494-8865 (voice)
(303) 494-7802 (fax)
Menuet/CPP is a C++ product (they also have a vanilla `C'
product). They have a product called an Application Generator
-- anyone know what this is?
MEWEL User Interface Library, Version 4.1
15 Bodwell Terrace
Millburn, NJ 07041
(201) 912-0192 (voice)
(201) 912-0103 (fax - orders only)
(201) 912-0668 (BBS, 9600-1200, N-8-1)
firstname.lastname@example.org (Magma has a vendor support
conference on CIS)
email@example.com (Magma has a vendor support conference on
MEWEL is a portable implementation of the MS Windows API;
MEWEL/Motif is an implementation of the Windows API, MFC, and
OWL for Motif. It is a C library, but is type-safe for C++. You
can program your applications in C, or can use Microsoft's MFC,
Borland's OWL, Liant's C++/Views, or wxWindows. MEWEL supports
the usual stuff including icons, MDI, dialog boxes. MEWEL/Pro
supports the 16 and 32-bit extenders that come with Borland
PowerPack, Pharlap 286, Pharlap 386/TNT, Watcom/Rational
DOS/4GW, and DJGPP's GO32. MEWEL is the only user interface
library that can be implemented totally as a DOS DLL under
"We are working on a version for MFC/NT [Microsoft Foundation
Classes/Windows NT] using Pharlap TNT extender, but it's not
ready yet." One nifty ramification of this is that one will be
able to use MEWEL and the Pharlap DOS extender in order to port
Windows NT applications to DOS.
You can download demos and info from
Microsoft Foundation Classes (Microsoft)
_VC++ Cross-Development Edition for Macintosh_
_VC++ For Intel and MIPS Platforms_
One Microsoft Way
Redmond, Washington 98052-6399
(206) 882-8080 (voice)
(206) 93M-SFAX (fax)
Microsoft's Visual C++ is, of course, more than just a PIGUI;
this suite of products includes both compilers and libraries
for the various platforms they support. `Microsoft Visual C++'
for the Intel and MIPS platforms targets MS-Windows-based
operating systems and `Visual C++ Cross-Development Edition for
Macintosh' (which I'll call VC++CDE:Mac, for short!) targets,
well, the Macintosh System 7).
To produce Mac-targeted programs, you must develop your
software on a Windows NT server and cross-compile to the Mac
platform. VC++CDE:Mac includes a cross-compiler, libraries, and
porting tools to build Mac-specific widgets and help flag
various nonportable constructs.
Note: cross-development capability from Microsoft does not come
string-free. Call Microsoft's fax back service at 206-635-2222
and select document No. 206 for a complete license agreement.
Microsoft was founded in 1975.
There are several 3rd-party tools that enable MFC programs to
be ported to the most popular UNIX platforms.
_WHAT THE USERS SAY:_
Some users say that Mac programs developed with MFC don't look
like Mac programs. This can be an issue, as Mac users can be
NuTCRACKER X/SDK 3.0
12450 Fair Lakes Circle, Suite 400
Fairfax, VA 22033
(800) 637-8034 (voice) (U.S.)
(703) 631-6770 (voice)
(703) 818-1532 (fax)
NuTCRACKER is a complete, integrated product family for
developers who want to port their UNIX software -- either
character-based or X/Motif -- to Windows NT or Windows 95.
NuTCRACKER also provides the Wintif technology which lets Motif
applications display with a Windows look-and-feel. Version 3.0
has been `enhanced' for Windows NT 4.0, and there is now an
NuTCRACKER allows developers to recompile UNIX C, C++ source
code and link it to NuTCRACKER DLLs, producing Win32
applications. NuTCRACKER supports Intel, Alpha, MIPS, and
They have a deployment seat or run-time distribution fees
(called the Client Operating Environment, COE) with costs
ranging from $98 to $239 or less, depending on volume and
features needed (for example, whether an X/Server is included).
Site licenses and buyouts are also available. Version 3.0 sees
even more licensing options--- I will advise as soon as I hear.
Besides GUI portability, NuTCRACKER also supports Unix process
control, Unix IPC mechanisms (i.e., shared memory, named pipes,
BSD sockets, and semaphores) as well as some of Unix's security
features. I'm told their demo consists of porting UNIX Mosaic
to NT, where only 3 of 70,000 lines of code needed to be
Version 5.2 of MKS toolkit is also included, to support calls
to standard UNIX utilities that Microsoft don't supply.
Each purchase (or evaluation copy) of NuTCRACKER comes with 1
year's support bundled into the purchase price of the SDK.
Support in year 2 and later is approximately $500-750. Support
includes telephone, bug fixes and e-mail.
DataFocus offers a 5 day QuickStart on-site consultation for
those customers that need extra help getting their port
They have committed to supporting Windows 95, NT 4.0,
BackOffice Logo and PowerPC.
Datafocus also sell a subset of this package, called NuTCRACKER
SDK, for porting character-based (CUI) Unix programs to Windows
NT/95; and the NuTCRACKER Operating Environment, runtime
libraries to support API calls to UNIX APIs which allow the
Unix application to make "Unix API calls to NT". It also
supports X/Motif applications ported using NuTCRACKER X/SDK,
and offers both a Motif and Windows look and feel. A low-cost
Local X Server, which restricts connections to the local
machine is also available.
$RCSfile: pigui2.txt,v $; $Revision: 3.1 $; $Date: 1997/03/02