I think PGML is in the process of being replaced with the newer SVG
standard:
http://www.w3.org/Graphics/SVG/
But I could be wrong. :-)
> * Anything else?
I don't think the format is the main problem to be solved - you'll want to
import and export multiple formats anyway. A larger problem is how to
implement the embedding and the vector graphics editor, I bet.
I would suggest using Raph Levien's libart_lgpl, which comes with the
Gnome libraries but is separate from them and should be easily ported to
Windows if it doesn't already work. This gives you a way to rasterize
antialiased shapes into an RGB buffer or other raster image
representation. I don't know how the Abi drawing code works, but once you
have the RGB buffer you just plop it on the screen (probably with a
platform-specific routine, but the buffer itself can be cross platform).
libart_lgpl maps closely to SVG and PostScript, I'm told. If you plan
ahead, you could use a cross platform structured graphics abstraction that
just happens to map to the GnomeCanvas, which might save you some work
(GnomeCanvas uses libart_lgpl internally). But there's no reason you have
to use the canvas or Gnome to use libart_lgpl.
The other problem is how to implement embedding. Obviously the simple
thing is to just include vector editor capabilities in the AbiWord
executable. But of course the Right Thing is to figure out how to get
COM/OLE working on the Windows side, and Bonobo working on the Gtk/Gnome
side, so you can write the vector editor as a separate app that actually
embeds. This would obviously pave the way for embedding plots/charts,
spreadsheets, and so on as well. We're doing a lot of work with this with
GNOME; as an example, my Guppi plot app is embeddable in Gnumeric. Would
be cool to interoperate with Abi on this. Especially since they want to
use Gnumeric for AbiCalc, and I wouldn't mind seeing a Windows frontend
for Guppi.
To blow your mind even more: eventually we want to use DOM or a variation
on it to export the XML document structure of all these components, much
as Mozilla does. This gives you scripting for free, among other things.
Obviously you should start small and concrete if you actually plan to
achieve anything, so some of these comments are just to give you a sense
of the Master Plan from the Gnome side, so you won't duplicate work down
the line. I would start with the libart_lgpl stuff, with the vector editor
simply a part of the AbiWord executable, and maybe see what happens on the
embedded component front.
Of course, there's more than one way to do it.
.02,
Havoc