Le Thu, Jan 31, 2002, à 09:05:43PM -0600, Richard Rowell a écrit:
> I have been hacking on a way to allow "arrows" to be loaded at runtime
> rather then hardcoded. Each arrow is made up of "strokes" where each stroke
> can be a line, polyine, bezier curve/path, circle, ellipse, or a polygon with
> filled and non-filled options where appropriate. Most all of the rendering
> stuff is in place and seems to work great, prints well, exports well (to PNG
> at least), etc.
Sounds great !
How are theses strokes described ? (SVG ?)
> The next part I'm going to hack in is the loading of the "arrow" file or
> files. If the powers at be think this piece of code might be incorporated
> into the "core" code, then I would like suggestions on issues such as:
>
> 1. Where a good place to initialize the list would be.
> 2. Is there a preferred method of storage for global lists such as this.
You could imitate what the shape-loading code does (without the need to make
this modular, ie you can put that in lib/ IMO. Perhaps even in a
subdirectory of lib, like lib/arrows if you need several compilation units.
I should have done this for properties.)
> 3. What to do if an arrow is specified in a document that the local machine
> doesn't have?
Same as when a document is loaded with a shape the local machine doesn't
have [*]
> 4. Should Dia embed non-standard arrow definitions into the saved document
> to avoid #3?
Same as the shape code [*]
[*] This means: warning, nasty moving target. Currently, we don't embed, but
there have been repeated expressions of interest for this feature. Kivio
does this, IIRC. Safe bet would be: make it run without embedding, but don't
make this too difficult to add afterwards. Ideally, a shared facility for
embedding/loading on the fly could be added.
-- Cyrille
--
Grumpf.