Re: Adding property to "line"
- From: Lars Clausen <lrclause cs uiuc edu>
- To: dia-list gnome org
- Subject: Re: Adding property to "line"
- Date: Thu, 07 Aug 2003 11:29:32 -0500
On 7 Aug 2003, Sven Vermeulen wrote:
Hi,
If I were to add a property to the "line" object, how would I proceed? I
was thinking of the following:
- Add a variable "gboolean isdouble" to the Line structure in
objects/standard/line.c.
Yes.
- Add a toggle_button to dia_line_style_selector_init in lib/widgets.c, bind
a function that switches the "isdouble" variable
No. Add a new boolean property by adding
{ "is_double", PROP_TYPE_BOOL, PROP_FLAG_VISIBLE, N_("Doubled line"), }
to line_props, and
{ "is_double", PROP_TYPE_BOOL, offsetof(Line, isDouble), }
to line_offsets, both in objects/standard/line.c
This is if you want to do it by having a checkbox for the line object only.
If you want to make it a line style, like dashed and dotted, you won't need
to touch the objects, just add to the line style list in lib/widgets.c and
lib/dia_enums.h, and then it's really up to the renderers to render it
correctly.
and then find in what function the line-rendering is achieved, and in
that function check the value of isdouble, and depending on that value,
render one or two lines.
Yes; that function would be line_draw in objects/standard/line. Note that
arrow drawing is combined with line drawing, which complicates matters a
bit. The line_width given to draw_line_with_arrows is used not just for
the rendering, but also to determine where to cut off the line.
Again, if you do it by adding a line style, the rendering function will be
in the various renderers. However, figuring out the arrow calculations
might be tricky.
I know the rendering is achieved using several functions (each one more
general than the other). What function should I be looking for?
line_draw, if going the object way, draw_line in the renderers otherwise.
By checking out the other properties, I guess I'll also have to define a
(e.g.) PROP_STD_LINE_DOUBLE and add it to the LineProperties.
You have to decide whether this is a line style like dashed etc, or a flag
on some objects only. The two have very different implications.
-Lars
--
Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)| HÃrdgrim of Numenor
"I do not agree with a word that you say, but I |----------------------------
will defend to the death your right to say it." | Where are we going, and
--Evelyn Beatrice Hall paraphrasing Voltaire | what's with the handbasket?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]