Now you had an overview of the AlMuist's gui api (I haven't talked about
abstract guis because they are not yet implemented... Though it is already
quite ready in my head ;-).
I will not tell you how you can actually use all that stuff...
Also note that I am planning to reorganize the classes a bit, to make support of many languages + guisystems easier, in particular that the same guisystem must be applicable to more than one language, whenever possible
To create an application with a gui, you do the following:
First think about the gui, and what the gui must be able to communicate with the core. Note that the code associated with gui interaction is part of the gui (as invisible objects). When support of external gui gets available, your gui will be composed of only invisible objects (probably organized in guiBlocks)
Also design (probably on paper) the guiBlock hierarchy. Remember the rules of that hierarchy (dynamic guis):
Subclass the language you want to use, for your main class.
Inside that class, put a direct child that will be your root guiBlock. Inside it put your first-level subguiblocks (if any). You can go on like this as deep as you want...
You currently have to specify, for each of your guiblocks, the guisystem you want to
use, in the superclass (eg, if you're using mui [Amool implementation does not yet exist..
just a question of time ;-)] :
&=myGuiBlock &=super @mui &&).
Then, you have to specify a name for it, which must comply to the used language requirements.
For instance, in Java, it will be the name of the class that will be created for that guiBlock,
so the character set is limited and you should begin with a capital case...
As a guiBlock is a class, you can put some startup and cleanup code (executed for each creation/destruction of the guiBlock), you can add methods, set a comment, and so on. Each guiBlock will add two methods to its parents, that allow to add and remove a guiBlock (this is why it is important your class hierarchy matches your guiBlock hierarchy!). They are named add<guiBlockName> and remove <guiBlockName>
TO BE CONTINUED