The Loose Amalgamated C++ Xlib Wrapper Kit
-- Version 0.0.7.1 --
Frequently Asked Questions
What's it all about?
Why on earth make another X toolkit?
No, really, what's up with this?
Don't you have anything better to be doing?
Who should I complain to?
What's it all about?
The Laxkit is a C++ Xlib wrapper. If you are looking for a
window toolkit for X that is highly experimental and whose API is quite unstable,
this is the toolkit for you. For code maturity, speed, portability and just general
availability of doo-dads and robust user community you're better off with
FLTK,
Gtk/Gtkmm,
Fox,
Qt,
etc,
etc.
The Laxkit is currently in the "Mediocre" stage of development. Its purpose, I suppose,
has been to provide lots of widgets useful in making arty sorts of programs to help me
make my art, which runs from laying out cartoons into books, to polyhedral math sculptures.
There are capable bits and pieces in various and sundry programs, but mostly they are barely documented,
and otherwise embedded in massive code bases that I don't (yet) understand. Art program essentials
should be easy to get to, easy to use, and well documented.
Unusual features include various mesh based manipulation interfaces. Also there is some
support for multi-mouse support, to allow the poor person's multitouch using 2 mice.
Why on earth make another X toolkit?
I started to develop Laxkit in early 2003 partly to learn how to program under
Linux and X better, and partly for being picky and stubborn. As for other toolkits,
their standard widgets were really very unsatisfactory for the sorts of programs I
wanted to make. I figured it would take just as much time rolling my own as figuring
out Gtkmm or Qt, for instance. In retrospect, that's been totally false, and
I probably would have been happy with
Fltk or Gtkmm, not to mention that that would make me more useful on other projects,
but it's too late now! I suppose it has taken several years longer than I had
initially envisioned (so far). Please remember that while I try to be careful, I am an
artist, and certainly not a professional programmer.
I would probably have gone for Fltk, which is looking better and better. Fltk2.0 in
particular is set up quite nicely. It is quite streamlined, portable, well documented
and very easy to use. I just might port all my new widgets to fltk, and be done with
the Laxkit! However, Fltk is meant to be totally lean, and currently does not natively provide mixed left-to-right
and right-to-left languages, or color management (though, right now neither does the Laxkit!!).
The Laxkit aims to be lean, but still provide enough conveniences
to make good art programs somewhat easily.
It is possible in the future I'll port the more
useful things to Qt or Gtk, or into a distinct library to provide the ability to share tool interfaces in
different programs. This is a long term goal, but much research an coding must be done to make this happen.
Besides, despite what everyone always says about it being bad, wasteful, and even
irresponsible, reinventing the wheel is fun!
No, really, what's up with this?
Most toolkits have the basics down great, but the actual user interfaces usually
don't do enough, and are not very configurable in a way that I find convenient. I strive for a system that allows
somewhat easy creation of interfaces that are a cross between the Gimp and
Blender. I use Vim, by the way.
Some features that might be noteworthy in the Laxkit are copious documentation within
the source code, widgets that utilize the mouse
wheel thoroughly, such as speeding up the scroll speed when shift or control is pressed while the
wheel is turned, an option I hardly ever see
(ding is a notable example that has such scrolling
features), and text edits
whose internals are easy to tweak in useful ways. Another unusual standard widget is a SplitWindow,
which is reminiscent of how the program Blender organizes windows.
Also included is a container widget very loosely based on a TeX sort of layout scheme, so
you dump in a whole lot of boxes with preferred widths, allowable shrink and grow values,
and resizing happens in a more pleasant manner than with many other toolkits.
Don't you have anything better to be doing?
Well, yes, but in the meantime, let me just mention that one long term
goal for the Laxkit is to abstract the rendering mechanisms to allow swapping out
the backends, so you can render window widgets onto Cairo contexts, or to gl surfaces using
the exact same code. Long way to go yet!
Contacting
If you have complaints and/or contributions as to how to streamline my dilettante code,
please let me know. I'm sure there are a lot of little programming tricks and Xlib+window
manager pitfalls I haven't a clue about. "Chuck all this, and switch to Fltk or Gtkmm" is
probably very good advice to me, but I don't want to hear it (but try again in one more year).
Please help develop! I'd rather be drawing cartoons.
Here is the person to complain to:
Tom Lechner
|