Desktop

Introduction
The desktop should resemble the WPS experience. There won't be binary compatibility (if you want that, feel free to add it) but source compatibilty is top priority.

Some cornerstones:


 * OO design
 * Extendable by just adding new classes like the WPS (subclassing without recompiling)
 * Class replacing
 * No recompilation for new features
 * Drag and drop of almost everything (icons, colors, fonts etc.)
 * Scriptable by REXX
 * Maybe REXX-classes (classes written in REXX)
 * DSOM functionality (not at the beginning but development shouldn't prevent it)

Note: Please don't discuss items on this page. Use the discussion page or the Voyager page.

Design decisions
At this point in time:


 * The graphical toolkit is GTK
 * GLib is used as the portability layer
 * An object model similar to SOM is the foundation (current name Voyager Object Model)
 * GTK will be wrapped into objects to make development easier
 * Compiler is gcc 3.3.x (may change later. Compilation on OS/2 should always be possible)
 * D-BUS will be the foundation for interprocess communication
 * Make is gmake

If you have compelling arguments against these decisions feel free to point to a better solution. But be aware that just saying "I don't like it" wont make serious points. Some hundred/thousand/millions lines of code will likely change our minds faster.

Status
The prototype code (screenshot) is migrated to GTK 2.6.x. See screenshot 1 and screenshot 2. It's currently running on X only. Work is in progress to add more classes and methods and wrap the GTK API into objects.

Find some (more and more outdated) information on this page.

To do
The following list is only the most important stuff.


 * Write an IDL compiler
 * Migrate header files to our own (using IBM stuff atm)
 * Enable class replacing
 * Make it distributed (DSOM)