Oops, patch file missing, here it is...
diff -urN -x Makefile.in -x dia.pot -x configure -x CVS -x .cvsignore -x intl -x ABOUT-NLS -x COPYING -x aclocal.m4 -x config.guess -x config.h.in -x config.sub -x install-sh -x ltconfig -x ltmain.sh -x missing -x mkinstalldirs -x Makefile.in.in -x cat-id-tbl.c -x cat-id-tbl.c.orig -x dia.pot.orig -x *.gmo -x Makefile -x .deps -x .libs -x *.po -x *.s dia-cvs/dia/ChangeLog dia-mine/dia/ChangeLog
--- dia-cvs/dia/ChangeLog Tue Jan 25 20:29:57 2000
+++ dia-mine/dia/ChangeLog Tue Jan 25 20:26:12 2000
@@ -1,3 +1,13 @@
+2000-01-25 Steffen Macke <[EMAIL PROTECTED]>
+
+ * lib/arrows.h; added ARROW_SLASHED_CROSS to the enum
+ * lib/arrows.c: added the functions draw_slashed_cross and
+ calculate_slashed_cross; added case ARROW_SLASHED_CROSS to draw_arrow
+ * app/lineprops_area.c: added ARROW_SLASHED_CROSS to
+ dia_arrow_chooser_new; added case ARROW_SLASHED_CROSS to
+ dia_arrow_preview_expose
+ * lib/widgets.c: added new menuitem in dia_arrow_selector_init
+
2000-01-24 James Henstridge <[EMAIL PROTECTED]>
* lib/geometry.[ch]: added inline versions of functions. Used
diff -urN -x Makefile.in -x dia.pot -x configure -x CVS -x .cvsignore -x intl -x ABOUT-NLS -x COPYING -x aclocal.m4 -x config.guess -x config.h.in -x config.sub -x install-sh -x ltconfig -x ltmain.sh -x missing -x mkinstalldirs -x Makefile.in.in -x cat-id-tbl.c -x cat-id-tbl.c.orig -x dia.pot.orig -x *.gmo -x Makefile -x .deps -x .libs -x *.po -x *.s dia-cvs/dia/app/lineprops_area.c dia-mine/dia/app/lineprops_area.c
--- dia-cvs/dia/app/lineprops_area.c Tue Jan 25 20:29:57 2000
+++ dia-mine/dia/app/lineprops_area.c Tue Jan 25 20:15:17 2000
@@ -241,6 +241,18 @@
gdk_draw_line(win, gc, x+width-5,y+height/2, x+width-5-height/2,y+height-5);
}
break;
+ case ARROW_SLASHED_CROSS:
+ if (arrow->left) {
+ gdk_draw_line(win, gc, x+5,y+height/2, x+width,y+height/2); /*line*/
+ gdk_draw_line(win, gc, x+5,y+height-5, x+height-5,y+5); /*slash*/
+ gdk_draw_line(win, gc, x+height/2,y+height-5, x+height/2,y+5); /*cross*/
+ } else {
+ gdk_draw_line(win, gc, x,y+height/2, x+width-5,y+height/2); /*line*/
+ gdk_draw_line(win, gc, x+width-height/2-5,y+height-5, x+width-5,y+5); /*slash*/
+ gdk_draw_line(win, gc, x+width-height/2,y+height-5, x+width-height/2,y+5); /*cross*/
+ }
+ break;
+
}
gdk_gc_set_line_attributes(gc, gcvalues.line_width, gcvalues.line_style,
gcvalues.cap_style, gcvalues.join_style);
@@ -538,7 +550,7 @@
menu = gtk_menu_new();
gtk_object_set_data_full(GTK_OBJECT(chooser), button_menu_key, menu,
(GtkDestroyNotify)gtk_widget_unref);
- for (i = 0; i <= ARROW_HALF_HEAD; i++) {
+ for (i = 0; i <= ARROW_SLASHED_CROSS; i++) {
mi = gtk_menu_item_new();
gtk_object_set_data(GTK_OBJECT(mi), menuitem_enum_key, GINT_TO_POINTER(i));
ar = dia_arrow_preview_new(i, left);
@@ -809,4 +821,8 @@
lchooser->user_data);
}
}
+
+
+
+
diff -urN -x Makefile.in -x dia.pot -x configure -x CVS -x .cvsignore -x intl -x ABOUT-NLS -x COPYING -x aclocal.m4 -x config.guess -x config.h.in -x config.sub -x install-sh -x ltconfig -x ltmain.sh -x missing -x mkinstalldirs -x Makefile.in.in -x cat-id-tbl.c -x cat-id-tbl.c.orig -x dia.pot.orig -x *.gmo -x Makefile -x .deps -x .libs -x *.po -x *.s dia-cvs/dia/lib/arrows.c dia-mine/dia/lib/arrows.c
--- dia-cvs/dia/lib/arrows.c Tue Jan 25 20:29:57 2000
+++ dia-mine/dia/lib/arrows.c Tue Jan 25 20:15:17 2000
@@ -193,6 +193,64 @@
renderer->ops->fill_polygon(renderer, poly, 4, color);
}
+static void
+calculate_slashed_cross(Point *poly/*[6]*/, Point *to, Point *from,
+ real length, real width)
+{
+ Point delta;
+ Point orth_delta;
+ real len;
+ int i;
+
+ delta = *to;
+ point_sub(&delta, from);
+ len = sqrt(point_dot(&delta, &delta));
+ if (len <= 0.0001) {
+ delta.x=1.0;
+ delta.y=0.0;
+ } else {
+ delta.x/=len;
+ delta.y/=len;
+ }
+
+ orth_delta.x = delta.y;
+ orth_delta.y = -delta.x;
+
+ point_scale(&delta, length/2.0);
+ point_scale(&orth_delta, width/2.0);
+
+ for(i=0; i<6;i++)poly[i] = *to;
+
+ point_add(&poly[1], &delta);
+
+ point_add(&poly[2], &delta);
+ point_add(&poly[2], &orth_delta);
+
+ point_sub(&poly[3], &delta);
+ point_sub(&poly[3], &orth_delta);
+
+ point_add(&poly[4], &orth_delta);
+ point_sub(&poly[5], &orth_delta);
+}
+
+static void
+draw_slashed_cross(Renderer *renderer, Point *to, Point *from,
+ real length, real width, real linewidth, Color *color)
+{
+ Point poly[6];
+
+ calculate_slashed_cross(poly, to, from, length, width);
+
+ renderer->ops->set_linewidth(renderer, linewidth);
+ renderer->ops->set_linestyle(renderer, LINESTYLE_SOLID);
+ renderer->ops->set_linejoin(renderer, LINEJOIN_MITER);
+ renderer->ops->set_linecaps(renderer, LINECAPS_BUTT);
+
+ renderer->ops->draw_line(renderer, &poly[0],&poly[1], color);
+ renderer->ops->draw_line(renderer, &poly[2],&poly[3], color);
+ renderer->ops->draw_line(renderer, &poly[4],&poly[5], color);
+}
+
void
arrow_draw(Renderer *renderer, ArrowType type,
Point *to, Point *from,
@@ -222,7 +280,13 @@
case ARROW_FILLED_DIAMOND:
fill_diamond(renderer, to, from, length, width, fg_color);
break;
+ case ARROW_SLASHED_CROSS:
+ draw_slashed_cross(renderer, to, from, length, width, linewidth, fg_color);
+ break;
}
}
+
+
+
diff -urN -x Makefile.in -x dia.pot -x configure -x CVS -x .cvsignore -x intl -x ABOUT-NLS -x COPYING -x aclocal.m4 -x config.guess -x config.h.in -x config.sub -x install-sh -x ltconfig -x ltmain.sh -x missing -x mkinstalldirs -x Makefile.in.in -x cat-id-tbl.c -x cat-id-tbl.c.orig -x dia.pot.orig -x *.gmo -x Makefile -x .deps -x .libs -x *.po -x *.s dia-cvs/dia/lib/arrows.h dia-mine/dia/lib/arrows.h
--- dia-cvs/dia/lib/arrows.h Tue Jan 25 20:29:57 2000
+++ dia-mine/dia/lib/arrows.h Tue Jan 25 20:15:17 2000
@@ -31,7 +31,8 @@
ARROW_FILLED_TRIANGLE,
ARROW_HOLLOW_DIAMOND,
ARROW_FILLED_DIAMOND,
- ARROW_HALF_HEAD
+ ARROW_HALF_HEAD,
+ ARROW_SLASHED_CROSS
} ArrowType;
typedef struct {
diff -urN -x Makefile.in -x dia.pot -x configure -x CVS -x .cvsignore -x intl -x ABOUT-NLS -x COPYING -x aclocal.m4 -x config.guess -x config.h.in -x config.sub -x install-sh -x ltconfig -x ltmain.sh -x missing -x mkinstalldirs -x Makefile.in.in -x cat-id-tbl.c -x cat-id-tbl.c.orig -x dia.pot.orig -x *.gmo -x Makefile -x .deps -x .libs -x *.po -x *.s dia-cvs/dia/lib/widgets.c dia-mine/dia/lib/widgets.c
--- dia-cvs/dia/lib/widgets.c Tue Jan 25 20:29:57 2000
+++ dia-mine/dia/lib/widgets.c Tue Jan 25 20:15:17 2000
@@ -693,6 +693,12 @@
gtk_menu_append (GTK_MENU (menu), menuitem);
gtk_widget_show (menuitem);
+ menuitem = gtk_radio_menu_item_new_with_label (group, _("Slashed Cross"));
+ gtk_object_set_user_data(GTK_OBJECT(menuitem), GINT_TO_POINTER(ARROW_SLASHED_CROSS));
+ group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menuitem));
+ gtk_menu_append (GTK_MENU (menu), menuitem);
+ gtk_widget_show (menuitem);
+
gtk_menu_set_active(GTK_MENU (menu), DEFAULT_ARROW);
gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);
gtk_signal_connect_object(GTK_OBJECT(menu), "selection-done",
@@ -911,4 +917,6 @@
{
return gtk_entry_get_text(GTK_ENTRY(fs->entry));
}
+
+