ProWesS is designed with a few specific goals in mind :
- Ease of programming. The creation of the user interface of a program is an important task. However, the efforts should go towards making the interface powerful and easy to use,
and towards the coding.
- Configurable. It should be easy to change the parameters which determine what a program looks like. If you prefer small text for more information, or large text for better readability, that should be easily configured. In essence, many parameters can be determined about how things are displayed. It should be possible to change these.
- Consistency. A window manager can be used by many programs. It is preferable if all these programs are somewhat
consistent. So instead of configuring each program individually, it would be better to have the general parameters globally configurable. This way each application automatically fits in with the rest, and the programmer is not burdened with it.
- Fast prototyping. ProWesS is designed to allow windows to created with a limited amount of work. Some extra effort may be required to make it look properly, and definitely to make the scaling work as intended. So ProWesS allows you to first
concentrate on making a GUI application that works, and worry about the details later.
- Screen independence and PROforma support. ProWesS is a general framework which has been designed specifically to allow the use of PROforma for all drawing. This way all the text on your screen can be drawn with the font and size of your choice. Because ProWesS uses PROforma for the drawing, it is possible to have windows which are larger than the screen, and also screen independence. When using a
high resolution monitor, the fonts will still be as big as on a screen with less resolution.
- Reentrant code. It should be possible to write reentrant programs using ProWesS. Reentrant code can be executed many times with only one copy in memory. This means that a mechanism for accessing global data has to be provided.
ProWesS makes programming as easy as possible by making sure that the
application programmer doesn't have to worry about such details as making sure that (part of) the window should be redrawn, or that the window should be rebuilt completely. Also some operations are made easier because they are built-in, like moving and scaling, sleep etc.