The Laxkit

  Main
  News
  Faq
  Documentation
  Download
  Links
  Contact
  

The Loose Amalgamated C++ Xlib Wrapper Kit
-- Version 0.0.5.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 semi-permeable 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.

One big ticket item on the agenda is support for multiple contact touch pads, multiple mice, and multiple keyboards. See MPX for more info about that sort of thing. Also you might look up nuigroup.com for lots of info about up and coming hardware interfaces such as multiple contact touch surfaces. That site also includes do-it-yourself instructions about how to build your own surface with relatively inexpensive supplies.

Also on the drawing board is easy OpenGL support, but that is still a ways off. I have made a simple GL test program, so I at least know that except for a few lines of initialization code, programming with GL and the Laxkit is basically the same as programming GL itself. The Laxkit doesn't particularly inhibit creation of gl based windows. Ultimately, the Laxkit might have a very adaptable graphics rendering backend, so that, if you wanted, you could have all the Laxkit widgets be rendered on a single GL surface (a la Blender), but this capability is even further in the future, if ever. The motivation for such a feature is to make fake 3-d interfaces as seen in the Beryl window manager, for instance, and also to make single window game-like applications more easily. Of course, it would mean rewriting a lot of things Xlib does for you, which would be a real pain.


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.

Now, in 2007, 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.

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?

My interests are mainly in making software that I can use for my art in some way. Most toolkits have the basics down great, but the actual user interfaces usually don't do enough, and are not very configurable. 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 or the Ion window manager organize 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 a very long term goal for the Laxkit is to port the more unique components to other toolkits, particularly Fltk2.0.


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


SourceForge.net Logo Support This Project      Last updated $Date: 2007-10-29 21:50:39 -0700 (Mon, 29 Oct 2007) $