So, here we are. (Sorry, was somewhat busy the last days) Now that we discussed the outlines of liblitz' future, we now need to start with some specifics. The first decision that has to be made is regarding text handling. I would opt for dropping char* for strings and use some more sophisticated structure instead. This would have several benefits: a) one could use a gapped array internally for text, so that insertions work in constant time. b) as many operations on UTF-8 characters change their byte-length, this would also work in constant time and wouldn't need any reallocations most of the time c) we wouldn't need two distinct sets of string manipulation functions, one for gapped-array text, and one for char*-text Of course random access in constant time would be quite lost, but on the one hand, constant-time random access is seldom needed, and on the other hand, a better access time than O(log(n)) still can be achieved with some buffering.
Then, how to get rid of all the Xlib crap from drawing routines? Liblitz should provide better geometrical primitives drawing routines, for example for filled and un-filled rectangles, and for text. blitz_drawlabel and friends should be replaced by a label widget. Atm, the label drawing routines can't be really used for the text widget for example, as they do spacing at the left and right and text shortening themselves, which interferes with the text widget's routines. Should every widget have a BlitzDraw thing? This would allow to set fonts and colours on a per-widget basis, and would eliminated much copying/changing properties of the window's BlitzDraw. I suppose dpy and screen can be incorporated into BlitzDraw too, or will that interfere with Xinerama support in the future? Greetings, Denis
pgpWfxUSLqJgx.pgp
Description: PGP signature
_______________________________________________ [email protected] mailing list http://wmii.de/cgi-bin/mailman/listinfo/wmii
