Micro Window-Gadgets 0.2.0 review

by rbytes.net on

UWG is a lightweight gadget/windowing toolkit for C and X11

License: GPL (GNU General Public License)
File size: 435K
Developer: Fred Barnes
0 stars award from rbytes.net

UWG is a lightweight gadget/windowing toolkit for C and X11. Interfaces are described using XML and are turned into C code using the ubuildinit utility. Currently, only a small percentage of the planned gadgets are implemented.

Micro WG is a C `version' of WG. In general, UWG is somewhat more light-weight than WG. Firstly because it's written in C and not C++. Secondly because it does not yet provide all the features of WG. Also, it should be significantly easier to `connect' UWG to KRoC.

Why UWG ? It's now the case that there are many `widget libraries' for programmers to choose from. The traditional X11 widget libraries (X Toolkit Intrinsics), GTK, QT, Motif, wxWindows, TK, etc.. GTK and QT are probably the most common for an average user's desktop system -- as the graphics libraries of Gnome and KDE respectively. C++, used by WG, provides a largely type-safe environment for gadget programming -- i.e. the structure/nature of gadgets fit neatly into the C++ type (class) heirarchy.

However, C++ ultimately suffers from the same problems as some other `object-orientated' languages -- namely leaky encapsulation. When writing WG, some of the limitations (maybe features) of C++ caused significant problems, particularly in the function-pointer department. Object-orientation is a fine model for data, but it does not work well when `bolted-on' to sequential languages -- C++ and Java in particular.

Forcing a sequential flow-of-control through something that we tried to break into objects only leads to problems. E.g. when executing inside the method of one object, is it safe to delete another object ? -- well, only if that other object wasn't involved (and still is involved) in the flow-of-control. And this you cannot easily tell. Furthermore, in many cases, `delete' may be substituted for any object interaction (method-call).

Also, a lot of modern GUI toolkits seem unnecessarily bloated. C++ (and other `frilly' languages) can be blamed for some of this, but not all of it. WG isn't bloated yet, but it's not far off. UWG is therefore an attempt at a lightweight (size and speed) gadget toolkit for X11, programmed in C.


What's New in This Release:
Various gadget updates and new gadgets (crypto, icon, layout) were added.
Support for freetype2 font rendering was added.

Micro Window-Gadgets 0.2.0 keywords