ROADMAP ======= Also see gtk-css-engine's TODO for now. 0.5 --- * Move to double coordinates. * Get rid of draw_line() functions? * Implement gaps by passing a custom property "-gce-gap" with a ccss_property_t that contains a cairo_rectangle_t? Or -gce-gap-side, -gce-gap-start, -gce-gap-width? * Improve test suite. Libxml backend for cascading tests? * Cairo-style error handling? Or something else? * "char * foo_serialize()" API instead of _dump(). * _serialize() property class method, serializing should fall back to _convert() should print url('foo'). 0.6 --- * Improve test suite. * Use slice allocator and custom list/hash implementations with in-node data. 0.7 --- * Write our own parser, probably hand-written using GScanner. Blue Sky -------- * https://developer.mozilla.org/en/CSS/-moz-image-region * Transitions / animations? http://ejohn.org/blog/css-animations-and-javascript/ Evaluate -------- * Consider a custom allocator (gslice?) for same-sized properties (find out how much overhead regular malloc has for small structs first). * Move `none' and `inherit' out of the structs and into an own hash (save mem). * Pass pseudo class(es) to the drawing function(s) instead of determining them at query time. * Query interface through CSS selectors, see gtk-css-engine TODO.