• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作図ソフト dia の改良版


Commit MetaInfo

修订版d1d38486baab68850fe91026705592482db3e737 (tree)
时间2004-05-06 05:27:09
作者Lars Clausen <lclausen@src....>
CommiterLars Clausen

Log Message

Arrow and network things.

更改概述

差异

--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
11 2004-05-05 Lars Clausen <lars@raeder.dk>
22
3+ * objects/network/Makefile.am:
4+ * objects/network/pixmaps/radiocell.xpm:
5+ * objects/network/pixmaps/basestation.xpm:
6+ * objects/network/network.c:
7+ * objects/network/basestation.c:
8+ * objects/network/radiocell.c:
9+ Patch from W. Borgert <debacle@debian.org>: Radio cell and base
10+ station objects.
11+
12+ * lib/arrows.[ch]: Patch from Anthony <anthonym@overture.com>:
13+ Backslash arrow head.
14+
315 * app/pagesetup.c (pagesetup_respond): Do not free ps twice.
416 Notify takes care. Should maybe use that more.
517
--- a/lib/arrows.c
+++ b/lib/arrows.c
@@ -69,6 +69,7 @@ struct menudesc arrow_types[] =
6969 {N_("Blanked Concave"),ARROW_BLANKED_CONCAVE},
7070 {N_("Round"), ARROW_ROUNDED},
7171 {N_("Open Round"), ARROW_OPEN_ROUNDED},
72+ {N_("Backslash"),ARROW_BACKSLASH},
7273 {NULL,0}};
7374
7475 ///////////// prototypes //////////////
@@ -765,6 +766,8 @@ draw_integral(DiaRenderer *renderer, Point *to, Point *from,
765766 DIA_RENDERER_GET_CLASS(renderer)->draw_bezier(renderer,bp,sizeof(bp)/sizeof(bp[0]),fg_color);
766767 }
767768
769+
770+
768771 static void
769772 draw_slashed(DiaRenderer *renderer, Point *to, Point *from,
770773 real length, real width, real linewidth,
@@ -1046,6 +1049,51 @@ draw_slashed_cross(DiaRenderer *renderer, Point *to, Point *from,
10461049 }
10471050
10481051 static void
1052+draw_backslash(DiaRenderer *renderer, Point *to, Point *from,
1053+ real length, real width, real linewidth, Color *color)
1054+{
1055+ Point point1;
1056+ Point point2;
1057+ Point delta;
1058+ Point orth_delta;
1059+ real len;
1060+
1061+ delta = *to;
1062+ point_sub(&delta, from);
1063+ len = sqrt(point_dot(&delta, &delta));
1064+ if (len <= 0.0001) {
1065+ delta.x=1.0;
1066+ delta.y=0.0;
1067+ } else {
1068+ delta.x/=len;
1069+ delta.y/=len;
1070+ }
1071+
1072+ orth_delta.x = delta.y;
1073+ orth_delta.y = -delta.x;
1074+
1075+ point_scale(&delta, length/2.0);
1076+ point_scale(&orth_delta, width/2.0);
1077+
1078+ point1 = *to;
1079+ point_sub(&point1, &delta);
1080+ point_sub(&point1, &delta);
1081+ point_sub(&point1, &delta);
1082+ point_add(&point1, &orth_delta);
1083+
1084+ point2 = *to;
1085+ point_sub(&point2, &delta);
1086+ point_sub(&point2, &orth_delta);
1087+
1088+ DIA_RENDERER_GET_CLASS(renderer)->set_linewidth(renderer, linewidth);
1089+ DIA_RENDERER_GET_CLASS(renderer)->set_linestyle(renderer, LINESTYLE_SOLID);
1090+ DIA_RENDERER_GET_CLASS(renderer)->set_linejoin(renderer, LINEJOIN_MITER);
1091+ DIA_RENDERER_GET_CLASS(renderer)->set_linecaps(renderer, LINECAPS_BUTT);
1092+
1093+ DIA_RENDERER_GET_CLASS(renderer)->draw_line(renderer, &point1,&point2, color);
1094+}
1095+
1096+static void
10491097 draw_cross(DiaRenderer *renderer, Point *to, Point *from,
10501098 real length, real width, real linewidth, Color *color)
10511099 {
@@ -1399,6 +1447,9 @@ arrow_draw(DiaRenderer *renderer, ArrowType type,
13991447 draw_filled_dot_n_triangle(renderer, to, from, length, width, linewidth,
14001448 fg_color, bg_color);
14011449 break;
1450+ case ARROW_BACKSLASH:
1451+ draw_backslash(renderer,to,from,length,width,linewidth,fg_color);
1452+ break;
14021453 }
14031454 }
14041455
--- a/lib/arrows.h
+++ b/lib/arrows.h
@@ -61,6 +61,7 @@ typedef enum {
6161 ARROW_NONE_OR_MANY, /* ER-model: 0 or many*/
6262 ARROW_ONE_OR_NONE, /* ER-model: 1 or 0 */
6363 ARROW_ONE_EXACTLY, /* ER-model: exactly one*/
64+ ARROW_BACKSLASH, /* -\---- */
6465 } ArrowType;
6566
6667 struct menudesc {
--- a/objects/network/Makefile.am
+++ b/objects/network/Makefile.am
@@ -5,6 +5,8 @@ libnetwork_objects_la_SOURCES = \
55 network.h \
66 network.c \
77 bus.c \
8+ radiocell.c \
9+ basestation.c \
810 wanlink.c
911
1012 libnetwork_objects_la_LDFLAGS = -export-dynamic -module -avoid-version
@@ -17,6 +19,8 @@ EXTRA_DIST = \
1719 pixmaps/computer.xpm \
1820 pixmaps/disc.xpm \
1921 pixmaps/flash.xpm \
22+ pixmaps/radiocell.xpm \
23+ pixmaps/basestation.xpm \
2024 pixmaps/wanlink.xpm \
2125 pixmaps/hub.xpm \
2226 pixmaps/modem.xpm \
--- a/objects/network/network.c
+++ b/objects/network/network.c
@@ -31,6 +31,8 @@ Color computer_color = { 0.7, 0.7, 0.7 };
3131
3232 extern DiaObjectType bus_type;
3333 extern DiaObjectType bus_type_std;
34+extern DiaObjectType radiocell_type;
35+extern DiaObjectType basestation_type;
3436 extern DiaObjectType wanlink_type;
3537
3638 DIA_PLUGIN_CHECK_INIT
@@ -44,6 +46,8 @@ dia_plugin_init(PluginInfo *info)
4446
4547 object_register_type(&bus_type_std);
4648 object_register_type(&bus_type);
49+ object_register_type(&radiocell_type);
50+ object_register_type(&basestation_type);
4751 object_register_type(&wanlink_type);
4852
4953 return DIA_PLUGIN_INIT_OK;
--- a/sheets/network.sheet.in
+++ b/sheets/network.sheet.in
@@ -42,9 +42,15 @@
4242 <object name="Network - Antenna">
4343 <_description>Antenna for wireless transmission</_description>
4444 </object>
45+ <object name="Network - Base Station">
46+ <_description>Mobile telephony base station</_description>
47+ </object>
4548 <object name="Network - Cloud">
4649 <_description>Network cloud</_description>
4750 </object>
51+ <object name="Network - Radio Cell">
52+ <_description>Mobile telephony cell</_description>
53+ </object>
4854 <object name="Network - Router Symbol">
4955 <_description>Router symbol</_description>
5056 </object>