GUI specification


The client user interface is made up of a number of independent graphical components - I'll call them subclients here since they are pretty much client programs of their own. The main client will consists of a number of these subclients assembled in a single window. In certain cases new subclients will pop up in their own little windows (ie become floating subclients), but this will usually only happen when the user explicitely requests such a window. Otherwise the screen would become littered with floating subclients in no time...

Furthermore there will be different version of the main client depending on how you logged in. Here is a list of planned main client types:


(nice sword, eh? I drew it myself :o) Each main client is composed of a number of subclients. Most of these subclients will display "items" in one way or another. In this document the term "item" refers to any object which has a name and a graphical icon representation. All references to items in subclients are considered to be items, and hence have the following behaviour: Note that all the above actions should work on text as well as icon representations of items.

Main client specifications

So far I have only specified one:

Client context

All subclients share a client context. The client context contains information that is to be shared among all subclients, and the main client itself. This includes global information and operations such as:


Each of the main clients listed above is assembled using subclients. Some of the subclients will appear in more than one type of main client. Here is a description of the subclients defined so far:

That's it for now

Yep. That's all I've specified for now. When most of this is implemented I will specify more GUI components - there's no real reason to think too far ahead... :o)

Henrik Kniberg

Last updated: