Desktop
From NikiWiki
Contents |
[edit] 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.
[edit] 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.
[edit] 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
- Completely based on gcc. No dependencies on closed code.
[edit] 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)
- ...

