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 (NOM: Netlabs 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" won't make serious points. Some hundred/thousand/millions lines of code will likely change our minds faster.

Status
(Last change 29.Dec2006)


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


 * Some historical status information can be found on this page.


 * The orbit IDL compiler is ported to OS/2 and is the foundation for the Voyager IDL compiler.


 * h-file emitter of the Voyager IDL compiler is done


 * c-file emitter of the IDL compiler is done


 * ih-file emitter is done

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)