Hello Tamas,
On Sun, 2007-08-12 at 22:16 +0200, Tamas K Papp wrote:
- There's an xlib-context example, but the windows are fixed-size. Is
it possible to make resizable windows?
The main problem with X is refreshing the window when X asks for it (ie the window receives an Expose event). In order to do it correctly, you either have to keep track of all operations or double-buffer. cl-cairo2 does the latter, as it is easier to implement, but this does not allow resizing.
Peter Hildebrandt experimented with the former approach:
http://groups.google.com/group/comp.lang.lisp/msg/9258d245145323b3
you might want to ask him about the current status. This approach would allow resizing, but is more complicated. If you know what subset of cl-cairo2 you will be using, perhaps you can get away implementing recording operations for that subset.
I was thinking the same approach, since redrawing might include re-spacing/changing layout of items, and not merely "drawing them again". Previously, I used CL-Cairo and created the Cairo context within a GDK window. This gave me sizing as well as mouse events etc.
- Is it possible to receive mouse and keyboard events int the
xlib-context?
The framework is there, you just have to write and event handler.
A new version of cl-cairo2 will be released tomorrow, which contains a rewritten x11 surface, implemented entirely in Lisp using CFFI (no extra C glue). If you want to refine the event handler, I suggest you wait for that and your job will be much easier.
I see it is up on common-lisp.net. I should give it a try - will let you know what I find.
Joubert
PS: have you looked at the Lispbuilder project? What are your thoughts on it?