diff options
Diffstat (limited to 'navit')
-rw-r--r-- | navit/navit/gui/internal/gui_internal.c | 89 | ||||
-rw-r--r-- | navit/navit/item_def.h | 1 | ||||
-rw-r--r-- | navit/navit/navit.c | 2 | ||||
-rw-r--r-- | navit/navit/navit.h | 28 | ||||
-rw-r--r-- | navit/navit/navit.xml | 1 | ||||
-rw-r--r-- | navit/navit/xpm/Makefile.am | 1 | ||||
-rw-r--r-- | navit/navit/xpm/gui_log.svg | 352 |
7 files changed, 445 insertions, 29 deletions
diff --git a/navit/navit/gui/internal/gui_internal.c b/navit/navit/gui/internal/gui_internal.c index d1dabc046..a184c150a 100644 --- a/navit/navit/gui/internal/gui_internal.c +++ b/navit/navit/gui/internal/gui_internal.c @@ -360,6 +360,7 @@ static void gui_internal_search_street_in_town(struct gui_priv *this, struct wid static void gui_internal_search_town(struct gui_priv *this, struct widget *wm, void *data); static void gui_internal_search_town_in_country(struct gui_priv *this, struct widget *wm); static void gui_internal_search_country(struct gui_priv *this, struct widget *widget, void *data); +static void gui_internal_check_exit(struct gui_priv *this); static struct widget *gui_internal_keyboard_do(struct gui_priv *this, struct widget *wkbdb, int mode); static struct menu_data * gui_internal_menu_data(struct gui_priv *this); @@ -3292,18 +3293,33 @@ static void gui_internal_menu_root(struct gui_priv *this) } static void -gui_internal_cmd_menu(struct gui_priv *this, struct point *p, int ignore) +gui_internal_enter(struct gui_priv *this, int ignore) { struct graphics *gra=this->gra; - struct transformation *trans; - struct coord c; - struct attr attr,attrp; - this->ignore_button=ignore; this->clickp_valid=this->vehicle_valid=0; navit_block(this->nav, 1); graphics_overlay_disable(gra, 1); + this->root.p.x=0; + this->root.p.y=0; + this->root.background=this->background; +} + +static void +gui_internal_leave(struct gui_priv *this) +{ + graphics_draw_mode(this->gra, draw_mode_end); +} + +static void +gui_internal_cmd_menu(struct gui_priv *this, struct point *p, int ignore) +{ + struct transformation *trans; + struct coord c; + struct attr attr,attrp; + + gui_internal_enter(this, ignore); trans=navit_get_trans(this->nav); if (p) { transform_reverse(trans, p, &c); @@ -3322,9 +3338,6 @@ gui_internal_cmd_menu(struct gui_priv *this, struct point *p, int ignore) this->vehicle_valid=1; } // draw menu - this->root.p.x=0; - this->root.p.y=0; - this->root.background=this->background; gui_internal_menu_root(this); } @@ -3334,6 +3347,65 @@ gui_internal_cmd_menu2(struct gui_priv *this) gui_internal_cmd_menu(this, NULL, 1); } + +static void +gui_internal_cmd_log_do(struct gui_priv *this, struct widget *widget) +{ + if (widget->text && strlen(widget->text)) + navit_textfile_debug_log(this->nav, "type=log_entry label=\"%s\"",widget->text); + g_free(widget->text); + widget->text=NULL; + gui_internal_prune_menu(this, NULL); + gui_internal_check_exit(this); +} + +static void +gui_internal_cmd_log_clicked(struct gui_priv *this, struct widget *widget, void *data) +{ + gui_internal_cmd_log_do(this, widget->data); +} + +static void +gui_internal_cmd_log_changed(struct gui_priv *this, struct widget *wm, void *data) +{ + int len; + if (wm->text) { + len=strlen(wm->text); + if (len && (wm->text[len-1] == '\n' || wm->text[len-1] == '\r')) { + wm->text[len-1]='\0'; + gui_internal_cmd_log_do(this, wm); + } + } +} + + +static void +gui_internal_cmd_log(struct gui_priv *this) +{ + struct widget *w,*wb,*wk,*wl,*we,*wnext; + gui_internal_enter(this, 1); + wb=gui_internal_menu(this, "Log Message"); + w=gui_internal_box_new(this, gravity_left_top|orientation_vertical|flags_expand|flags_fill); + gui_internal_widget_append(wb, w); + we=gui_internal_box_new(this, gravity_left_center|orientation_horizontal|flags_fill); + gui_internal_widget_append(w, we); + gui_internal_widget_append(we, wk=gui_internal_label_new(this, _("Message"))); + wk->state |= STATE_EDIT|STATE_CLEAR; + wk->background=this->background; + wk->flags |= flags_expand|flags_fill; + wk->func = gui_internal_cmd_log_changed; + gui_internal_widget_append(we, wnext=gui_internal_image_new(this, image_new_xs(this, "gui_active"))); + wnext->state |= STATE_SENSITIVE; + wnext->func = gui_internal_cmd_log_clicked; + wnext->data=wk; + wl=gui_internal_box_new(this, gravity_left_top|orientation_vertical|flags_expand|flags_fill); + gui_internal_widget_append(w, wl); + if (this->keyboard) + gui_internal_widget_append(w, gui_internal_keyboard(this,2)); + gui_internal_menu_render(this); + gui_internal_leave(this); +} + static void gui_internal_check_exit(struct gui_priv *this) { @@ -3744,6 +3816,7 @@ static struct command_table commands[] = { {"menu",command_cast(gui_internal_cmd_menu2)}, {"fullscreen",command_cast(gui_internal_cmd_fullscreen)}, {"get_data",command_cast(gui_internal_get_data)}, + {"log",command_cast(gui_internal_cmd_log)}, }; diff --git a/navit/navit/item_def.h b/navit/navit/item_def.h index a69702747..b83273145 100644 --- a/navit/navit/item_def.h +++ b/navit/navit/item_def.h @@ -305,6 +305,7 @@ ITEM(route_end) ITEM(selected_point) ITEM(power_tower) ITEM(route_start_reverse) +ITEM(log_entry) /* Line */ ITEM2(0x80000000,line) ITEM2(0x80000001,line_unspecified) diff --git a/navit/navit/navit.c b/navit/navit/navit.c index 307e48ece..0e975e553 100644 --- a/navit/navit/navit.c +++ b/navit/navit/navit.c @@ -1055,7 +1055,7 @@ navit_add_former_destinations_from_file(struct navit *this_) } -static void +void navit_textfile_debug_log(struct navit *this_, const char *fmt, ...) { va_list ap; diff --git a/navit/navit/navit.h b/navit/navit/navit.h index 3208b69c0..2068055e4 100644 --- a/navit/navit/navit.h +++ b/navit/navit/navit.h @@ -26,7 +26,6 @@ extern "C" { extern struct gui *main_loop_gui; /* prototypes */ enum attr_type; -enum item_type; struct attr; struct attr_iter; struct callback; @@ -37,15 +36,12 @@ struct mapset; struct message; struct navigation; struct navit; -struct navit_vehicle; -struct navit_window_items; struct pcoord; struct point; struct route; -struct speech; struct tracking; struct transformation; -struct vehicle; +struct vehicleprofile; void navit_add_mapset(struct navit *this_, struct mapset *ms); struct mapset *navit_get_mapset(struct navit *this_); struct tracking *navit_get_tracking(struct navit *this_); @@ -53,7 +49,6 @@ void navit_draw(struct navit *this_); void navit_draw_displaylist(struct navit *this_); void navit_handle_resize(struct navit *this_, int w, int h); int navit_get_width(struct navit *this_); -int navit_check_route(struct navit *this_); int navit_get_height(struct navit *this_); int navit_ignore_button(struct navit *this_); void navit_ignore_graphics_events(struct navit *this_, int ignore); @@ -62,18 +57,20 @@ void navit_handle_motion(struct navit *this_, struct point *p); void navit_zoom_in(struct navit *this_, int factor, struct point *p); void navit_zoom_out(struct navit *this_, int factor, struct point *p); struct navit *navit_new(struct attr *parent, struct attr **attrs); +void navit_add_message(struct navit *this_, char *message); +struct message *navit_get_messages(struct navit *this_); struct graphics *navit_get_graphics(struct navit *this_); +struct vehicleprofile *navit_get_vehicleprofile(struct navit *this_); void navit_set_destination(struct navit *this_, struct pcoord *c, const char *description, int async); +int navit_check_route(struct navit *this_); void navit_add_bookmark(struct navit *this_, struct pcoord *c, const char *description); -void navit_say(struct navit *this_, char *text); +void navit_textfile_debug_log(struct navit *this_, const char *fmt, ...); int navit_speech_estimate(struct navit *this_, char *str); -void navit_speak(struct navit *this_); +void navit_say(struct navit *this_, char *text); void navit_announcer_toggle(struct navit *this_); +void navit_speak(struct navit *this_); void navit_window_roadbook_destroy(struct navit *this_); void navit_window_roadbook_new(struct navit *this_); -struct navit_window_items *navit_window_items_new(const char *name, int distance); -void navit_window_items_add_item(struct navit_window_items *nwi, enum item_type type); -void navit_add_window_items(struct navit *this_, struct navit_window_items *nwi); void navit_init(struct navit *this_); void navit_zoom_to_route(struct navit *this_, int orientation); void navit_set_center(struct navit *this_, struct pcoord *center); @@ -87,22 +84,13 @@ void navit_attr_iter_destroy(struct attr_iter *iter); void navit_add_callback(struct navit *this_, struct callback *cb); void navit_remove_callback(struct navit *this_, struct callback *cb); void navit_set_position(struct navit *this_, struct pcoord *c); -void navit_tracking_add(struct navit *this_, struct tracking *tracking); -void navit_set_speech(struct navit *this_, struct speech *speech); struct gui *navit_get_gui(struct navit *this_); struct transformation *navit_get_trans(struct navit *this_); struct route *navit_get_route(struct navit *this_); struct navigation *navit_get_navigation(struct navit *this_); struct displaylist *navit_get_displaylist(struct navit *this_); int navit_block(struct navit *this_, int block); -int navit_command_register(struct navit *this_, char *command, struct callback *cb); -struct callback *navit_command_unregister(struct navit *this_, char *command); -int navit_command_call_attrs(struct navit *this_, char *command, struct attr **in, struct attr ***out); -int navit_command_call(struct navit *this_, char *command); -void navit_add_message(struct navit *this_, char *message); -struct message *navit_get_messages(struct navit *this_); void navit_destroy(struct navit *this_); -struct vehicleprofile * navit_get_vehicleprofile(struct navit *this_); /* end of prototypes */ #ifdef __cplusplus } diff --git a/navit/navit/navit.xml b/navit/navit/navit.xml index b923ab3f4..8a955cc1e 100644 --- a/navit/navit/navit.xml +++ b/navit/navit/navit.xml @@ -37,6 +37,7 @@ <!-- Normally it is sufficient to use --> <!-- <gui type="internal" /> --> + <log type="textfile_debug" data="debug_%Y%m%d-%i.txt" flush_size="1000" flush_time="30"/> <gui type="gtk" menubar="1" toolbar="1" statusbar="1"/> <!-- osd items allow to position display and control items directly on top of the map: --> diff --git a/navit/navit/xpm/Makefile.am b/navit/navit/xpm/Makefile.am index 36f4a284b..3fd749f2d 100644 --- a/navit/navit/xpm/Makefile.am +++ b/navit/navit/xpm/Makefile.am @@ -107,6 +107,7 @@ svgs += gui_strength_4.svg svgs += gui_strength_5.svg svgs += gui_minus.svg svgs += gui_plus.svg +svgs += gui_log.svg svgs += airport.svg svgs += attraction.svg diff --git a/navit/navit/xpm/gui_log.svg b/navit/navit/xpm/gui_log.svg new file mode 100644 index 000000000..33a1ac9ed --- /dev/null +++ b/navit/navit/xpm/gui_log.svg @@ -0,0 +1,352 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48px" + height="48px" + id="svg5490" + sodipodi:version="0.32" + inkscape:version="0.44" + sodipodi:docbase="/home/andreas/project/gnome-icon-theme/scalable/actions" + sodipodi:docname="format-justify-left.svg" + inkscape:export-filename="/home/andreas/project/gnome-icon-theme/scalable/actions/format-justify-fill.png" + inkscape:export-xdpi="90" + inkscape:export-ydpi="90"> + <defs + id="defs5492"> + <linearGradient + y2="10.982666" + x2="5.4959755" + y1="37.668934" + x1="37.926636" + gradientTransform="matrix(0.982804,0,0,1.3,-40.71647,-6.281051)" + gradientUnits="userSpaceOnUse" + id="linearGradient2457" + xlink:href="#linearGradient6732" + inkscape:collect="always" /> + <linearGradient + id="linearGradient2378"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop2380" /> + <stop + id="stop4146" + offset="0.25" + style="stop-color:#fefede;stop-opacity:0.91836733;" /> + <stop + id="stop2386" + offset="0.5" + style="stop-color:#f5f328;stop-opacity:1;" /> + <stop + style="stop-color:#f5f32d;stop-opacity:0.12234043;" + offset="1" + id="stop2382" /> + </linearGradient> + <linearGradient + y2="39.999443" + x2="25.058096" + y1="47.027729" + x1="25.058096" + gradientUnits="userSpaceOnUse" + id="linearGradient2098" + xlink:href="#linearGradient3702" + inkscape:collect="always" /> + <radialGradient + r="2.5" + fy="43.5" + fx="4.9929786" + cy="43.5" + cx="4.9929786" + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" + gradientUnits="userSpaceOnUse" + id="radialGradient2096" + xlink:href="#linearGradient3688" + inkscape:collect="always" /> + <radialGradient + r="2.5" + fy="43.5" + fx="4.9929786" + cy="43.5" + cx="4.9929786" + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" + gradientUnits="userSpaceOnUse" + id="radialGradient2094" + xlink:href="#linearGradient3688" + inkscape:collect="always" /> + <linearGradient + id="linearGradient3688" + inkscape:collect="always"> + <stop + id="stop3690" + offset="0" + style="stop-color:black;stop-opacity:1;" /> + <stop + id="stop3692" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient3702"> + <stop + id="stop3704" + offset="0" + style="stop-color:black;stop-opacity:0;" /> + <stop + style="stop-color:black;stop-opacity:1;" + offset="0.5" + id="stop3710" /> + <stop + id="stop3706" + offset="1" + style="stop-color:black;stop-opacity:0;" /> + </linearGradient> + <linearGradient + id="linearGradient6732"> + <stop + id="stop6734" + offset="0" + style="stop-color:#ffffff;stop-opacity:1;" /> + <stop + id="stop6736" + offset="1" + style="stop-color:#dddddd;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient4585"> + <stop + id="stop4587" + offset="0" + style="stop-color:#9e9e9e;stop-opacity:1;" /> + <stop + id="stop4589" + offset="1" + style="stop-color:#dddddd;stop-opacity:0;" /> + </linearGradient> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="14" + inkscape:cx="27.606432" + inkscape:cy="27.154804" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:grid-bbox="true" + inkscape:document-units="px" + inkscape:window-width="1674" + inkscape:window-height="970" + inkscape:window-x="0" + inkscape:window-y="25" /> + <metadata + id="metadata5495"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Justify fill</dc:title> + <dc:date>October 2006</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Andreas Nilsson</dc:title> + </cc:Agent> + </dc:creator> + <dc:source>http://www.gnome.org</dc:source> + <dc:subject> + <rdf:Bag> + <rdf:li>justify</rdf:li> + <rdf:li>format</rdf:li> + <rdf:li>align</rdf:li> + <rdf:li>left</rdf:li> + </rdf:Bag> + </dc:subject> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g5646" + transform="translate(41.34165,-0.918943)"> + <g + inkscape:label="Shadow" + id="layer6" + transform="matrix(1.1,0,0,1,-43.74165,5.918957)"> + <g + transform="matrix(1,0,0,0.555556,-4.549998e-7,13.88887)" + inkscape:label="Shadow" + id="g2043"> + <g + inkscape:label="Shadow" + id="g2036" + style="display:inline"> + <g + transform="matrix(1.052632,0,0,1.285713,-1.263158,-13.42854)" + style="opacity:0.4" + id="g3712"> + <rect + style="opacity:1;fill:url(#radialGradient2094);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect2801" + width="5" + height="7" + x="38" + y="40" /> + <rect + style="opacity:1;fill:url(#radialGradient2096);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3696" + width="5" + height="7" + x="-10" + y="-47" + transform="scale(-1,-1)" /> + <rect + style="opacity:1;fill:url(#linearGradient2098);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect3700" + width="28" + height="7.0000005" + x="10" + y="40" /> + </g> + </g> + </g> + <g + transform="translate(50.6887,6.21499)" + style="display:inline" + inkscape:label="pixmap" + id="g2285" /> + <g + id="g891" + transform="matrix(0.186703,0,0,0.186703,29.5814,63.83798)" /> + </g> + <g + id="g5657" + inkscape:label="Base" + style="display:inline" /> + <g + style="display:inline" + inkscape:label="Text" + id="layer5"> + <rect + inkscape:r_cy="true" + inkscape:r_cx="true" + ry="1.4314268" + rx="1.4314268" + y="5.4189425" + x="-36.785221" + height="39" + width="38.943569" + id="rect2373" + style="color:black;fill:url(#linearGradient2457);fill-opacity:1;fill-rule:evenodd;stroke:#939393;stroke-width:1.00000012;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" /> + <rect + style="color:black;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:white;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect2423" + width="36.999981" + height="37.000008" + x="-35.841633" + y="6.4189281" + rx="0.5728178" + ry="0.5728178" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + </g> + </g> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6916" + width="16" + height="0.99999905" + x="10" + y="11.000001" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6919" + width="28" + height="0.99999809" + x="10" + y="16.000002" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6921" + width="24" + height="0.99999809" + x="10" + y="21.000002" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6925" + width="13" + height="0.99999809" + x="10" + y="26.000002" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6927" + width="21" + height="0.99999809" + x="10" + y="31.000002" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + <rect + style="opacity:0.4;color:black;fill:black;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" + id="rect6933" + width="12" + height="1.0187454" + x="10" + y="35.981255" + rx="0" + ry="0" + inkscape:r_cx="true" + inkscape:r_cy="true" /> + </g> +</svg> |