Weston Campbell wrote:

> Actually, I want to know how the people who made these graphics 
> libraries and GUIs made them in the first place. How are these libraries 
> and toolkits working with graphics? How do they do it?

In that case you might find shoes [1] a worthwhile study. It uses the 
native window creation routines on each platform, and then wraps the 
Cairo library to provide a cross-platform drawing canvas within those 
windows. Cairo (and its ruby wrapper) itself might be a next step.

One advantages is the brevity and clarity of the source - only a few 
thousand lines of C. It's focussed on drawing, rather than accessing all 
the different platform routines for interacting with GUI objects.

By comparison, wxWidgets source package is c20MB and makes extensive use 
of macros which can make the fundamentals hard to pick out. GTK+ is a 
similar size. QT is the real heavyweight - the source install package is 
a whopping 175MB.

hth
alex

[1] http://code.whytheluckystiff.net/shoes