IMPORTANT!
Guichan is in a pre-beta stage and should not be used for anything accept 
testing. We will change the API before the 1.0 release and every project using 
a beta version of Guichan will most likely lose binary compatibility.

What is Guichan?
-----------------
Guichan is a small, efficient C++ GUI library designed for games. 
It comes with a standard set of widgets and can use several different objects 
for displaying graphics and grabbing user input.

So what are these objects you are talking about?
------------------------------------------------
Guichan has a very abstract design which allows users of Guichan to use 
different objects for displaying of graphics and grabbing of user input. 
Guichan comes with (for now) 3 implemented graphics objects 
(SDLGraphics, OpenGLGraphics and AllegroGraphics) and 2 implemented input 
objects (SDLInput and AllegroInput),

The Guichan philosophy
-----------------------
Guichan is designed for games. This means that Guichan lacks many features 
of more advanced GUI libraries (such as GTK, QT ). However, this should not 
be considered a weakness of Guichan but on the contrary a strength of Guichan. 
When making games you normally don't need all features in advanced GUI libraries. 
They often complicate things and adding a dependency such as QT for a 
small platform game doesn't really feel good. Guichan is small but contains 
all basic GUI features making it ideal for games.

Guichan is designed for games. This means that Guichan will not take over 
your game/application when it comes to initialization of external libraries. 
When making games you normally want to initiallize all extern libraries 
yourself. This gives all users of Guichan a freedom that's almost required in 
game development. Guichan should not be considered a full GUI library but 
rather a tool or helper library for game development.

Guichan is designed for games. This means that Guichan comes with really 
ugly default widgets and a small number of widgets too. Also, there exists no 
themes or theme handling for Guichan. Every user of Guichan is suppose to 
make new widets by ineherit from the standard widgets or by overloading 
standard widgets functions. This is very powerful and beats all theme 
based GUIs. If we would implement theme handling, for widgets to be able to 
look exaclty as you want, it would have to be very complex and it would 
increase the size of Guichan. We believe that theme handling for a specific 
GUI is nothing a game developer wants to learn when developing a simple game. 
The knowledge of standard C++ ought every game developer possess that 
uses Guichan, so no new learning is required (accept the API) 
for using Guichan

Guichan is designed in a very abstract way making it very easy to extend 
Guichan for your own needs. It is even very easy to implement new graphics 
objects making Guichan as portable as ansi C++ is.

Under which license comes Guichan?
-----------------------------------
Guichan comes under the BSD license and there exist a very good reason for 
the choice of BSD over LGPL (which i believe are the standard licenses for 
open(free) source library projects). BSD lets you link with Guichan statically 
or even include all of the source for Guichan into your own project not using 
any linkage at all (which would violate the LGPL license). 
We believe this is something users of Guichan might want to do because of our 
philosophy of using inherits and overloading over theme handling.