![]() |
GTK-based layout implementation |
Introduction Screenshots Mailing Lists and IRC Alternative Browsers Special Thanks
FAQ
Download binaries Platforms Compiling Mnemonic Other useful software
Core Message modules Library modules Object modules Coding Guidelines Browse Source Using CVS
Website questions to: |
The lib-gtklayout library contains an implementation of the box types defined in the lib-layout library. It is a very thin wrapper that only does the gtk stuff; all the actual layout algorithms are implemented in lib-layout. Part of this library is a custom-made canvas widget. This widget can be used separately as well, so it will probably be separated out at some point. A gtkviewer is a lib-layout box based on this widget. Its sizes can be smaller than the actual content. In other words, it acts as a box of fixed size for all parent and sibling boxes, but it acts as a box of freely growing size for all child boxes. For display of boxes with images, lib-gtklayout depends on lib-rasterimage. NOTE: gtkboxes are NOT Gtk-- widgets. They can _contain_ Gtk-- widgets, accessible through the widget() member.
As GTK routines cannot be called in multiple threads at the same time, it is necessary to interrupt the GTK main loop whenever lib-gtklayout uses the GTK library. To avoid spending too much time outside of the event loop (which makes the user interface unresponsive), use of the GTK library by lib-gtklayout is restricted to member functions that have to do with reflow and redraw. This, in particular, means that you can create instances of objects in lib-gtklayout at any time and add them to an existing lib-gtklayout box tree. Only when a reflow or redraw is requisted should the GTK main loop be interrupted.
The library has support for drawing font boxes using the standard X11 fonts. Moreover, using T1-lib, it can draw type 1 postscript fonts too. This yields anti-aliased fonts, and is also used to provide mathematics typesetting using the Bluesky Computer Modern Roman postscript versions of the standard TeX fonts.
|