[cairo] DOM manipulation
cworth at east.isi.edu
Thu Mar 18 10:59:59 PST 2004
On Feb 28, Rob Kaper wrote:
> I've got a quick question on Cairo features [...]
I'm sorry, but I'm afraid I didn't catch what your question is. Could
you restate it if necessary? I'll try to guess what it might have been
and answer as best I can.
> I'm planning to utilize SVG to render the board layout of board games and
> want to manipulate the DOM of an SVG image loaded from file to perform tasks
> such as:
You should be able to write code to do this kind of thing using
cairo. We've already got one cairo-using SVG library (libsvg-cairo)
It does not currently provide a DOM-like API, but that could be added
if someone were so inclined.
> - changing the color of a certain element
I should mention here that cairo is an immediate-mode drawing API. So
at the level of the cairo interface, you don't have elements that have
been drawn whose colors could be changed, (instead there's just a
current color which will be used for the next object drawn).
But the kind of retained-mode interface you describe here could be
layered on top of cairo.
> - requesting coordinates, as rendered, of an element, to calculate waypoints
> for tokens
If I understand this correctly, then the cairo_current_path function
should provide everything you need here. (Hmm... you might need
cairo_stroke_path too which has not yet been implemented).
> KDE/Qt/C++ bindings would be a requirement of course, so hopefully showing
> some interest in Cairo as KDE developer might motivate work in that area and
> obviously I'm willing to do the necessary testing and debugging work.
I did see a reference one to C++ cairo bindings for KDE. But that code
was never contributed to the cairo CVS tree and I didn't save the link
to it. If someone has a reference to it, I'd be glad to add a pointer
to the web page.
More information about the cairo