www.gryphel.net/c/gryphel - feedback
copyright (c) 2006 Paul C. Pratt - last update 10/4/2006


Graphical User Interface Implementation Illustration

Download - Source, projects, compiled applications
Contact - How to reach Paul C. Pratt

Latest News:

August 11, 2003 version 0.4.0: Adds support for Bloodshed Dev-C++ for Windows, and support for Apple's Project Builder. Have beginning of port to Apples X11 for Mac OS X, which will eventually lead to a port to linux. Replaced all remaining invert mode drawing, to help minimize platform specific code, and besides which, invert mode drawing hasn't been a good idea since color screens became common (late 1980's on the Mac). Implemented asynchronous file i/o for mac (when the os supports it). Some optimization in memory management, which about doubles speed of allocating 300,000 handles while reading large file (which is worst case usage pattern for this implementation).

July 14, 2003 version 0.3.0: Improves "setup.c". Now generate xml for metrowerks project import, which makes it possible to correctly support compiling for mach-o (OS X) using Metrowerks for Macintosh. Using xml also means that now support Metrowerks for Windows. Added support for lcc-win32 compiler system. Made the Macintosh 680x0 version work properly back to System 2.0.1, using Mini vMac.

July 2, 2003 version 0.2.0 released. It now runs on Microsoft Windows in addition to Mac OS.

May 30, 2003 version 0.1.0 released. It is released mainly to begin development of the distribution mechanism, and not really ready to be looked at yet.

Here is some very brief information about Gryphel:

It is meant to illustrate how to implement a graphical user interface in one relatively simple program built upon the simplest possible base. The code may be of interest to some programmers, and it could provide a convenient place to experiment with certain kinds of user interface ideas. The built application is not currently useful for anything.

A small layer of platform specific glue code (so far available for Macintosh and Microsoft Windows) provides a single block of memory, a single window into which pixels can be drawn, reading and writing to a datafile, a resource file, and a scratch file, and passes mouse and keyboard events.

Upon this is built a memory manager, a region implementation, a window manager, scrollbars, buttons and other controls, and so on.

Gryphel is distributed under the terms of the GNU General Public License, version 2. For more information, see the file COPYING, included with the Gryphel source distribution.

Gryphel is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.


Source Code
It has been packaged in 4 formats for convenience, but all four of these packages have the exact same information:

gryphel-0.4.0.src.dmg (260K) for Macintosh OS X - compressed macintosh disk image, with Unix style end of lines.

gryphel-0.4.0.src.img.zip (248K) for Macintosh OS 9 and earlier - zipped old style macintosh disk image, with Macintosh style end of lines. This format isn't exactly native; but is used because it can be generated by a script in OS X. It's also useful that the unzipped disk image can mounted by Mini vMac.

gryphel-0.4.0.src.zip (320K) for Microsoft Windows - zip archive, with Windows style end of lines.

gryphel-0.4.0.src.tgz (244K) for other operating systems, which gryphel hasn't been ported to yet - gzipped tar archive, with Unix style end of lines.

Projects - Automatically generated from 'setup.c' in the source code. Contains folders for each combination of development environment, run environment, and debug level. The name of each folder has three parts, the first specifying development environment ('mpw' - Macintosh Programmer's Workshop, 'mw8' - Metrowerks CodeWarrior 8.0.3, 'bgc' - Bash and Gcc for OS X command line, 'msv' - Microsoft Visual C++ 6.0, 'lcc' - Lcc Win 32, 'dvc' - Bloodshed Dev-C++, and 'apb' - Apple Project Builder), the second specifying run environment ('m68k' - Macintosh with Motorola 680x0, 'mppc' - Macintosh OS 9 and earlier with PowerPC, 'mach' - Macintosh OS X, and 'wx86' - Microsoft Windows), and the third specifying debug level ('d' - Debug, 't' - Test, and 's' - Ship). The source folder should be placed inside the Projects folder.

gryphel-0.4.0.prj.dmg (60K) for Macintosh OS X.

gryphel-0.4.0.prj.img.zip (44K) for Macintosh OS 9 and earlier

gryphel-0.4.0.prj.zip (116K) for Microsoft Windows

gryphel-0.4.0.prj.tgz (40K) for other operating systems

Compiled Applications

gryphel-0.4.0.bin.mch.dmg (160K) for Macintosh OS X.

gryphel-0.4.0.bin.ppc.img.zip (148K) for Macintosh OS 9 and earlier (PowerPC)

gryphel-0.4.0.bin.m68.img.zip (104K) for Macintosh (680x0)

gryphel-0.4.0.bin.w86.zip (112K) for Microsoft Windows

www.gryphel.net/c/gryphel - feedback