diff options
-rw-r--r-- | navit/attr.c | 7 | ||||
-rw-r--r-- | navit/navigation.c | 103 | ||||
-rw-r--r-- | navit/navigation.h | 23 | ||||
-rw-r--r-- | navit/osd/core/osd_core.c | 170 | ||||
-rw-r--r-- | navit/xpm/Makefile.am | 12 | ||||
-rw-r--r-- | navit/xpm/status_calculating_bk.svg | 86 | ||||
-rw-r--r-- | navit/xpm/status_calculating_wh.svg | 86 | ||||
-rw-r--r-- | navit/xpm/status_no_destination_bk.svg | 97 | ||||
-rw-r--r-- | navit/xpm/status_no_destination_wh.svg | 97 | ||||
-rw-r--r-- | navit/xpm/status_no_route_bk.svg | 68 | ||||
-rw-r--r-- | navit/xpm/status_no_route_wh.svg | 69 | ||||
-rw-r--r-- | navit/xpm/status_position_wait_bk.svg | 67 | ||||
-rw-r--r-- | navit/xpm/status_position_wait_wh.svg | 68 | ||||
-rw-r--r-- | navit/xpm/status_recalculating_bk.svg | 86 | ||||
-rw-r--r-- | navit/xpm/status_recalculating_wh.svg | 86 | ||||
-rw-r--r-- | navit/xpm/status_routing_bk.svg | 67 | ||||
-rw-r--r-- | navit/xpm/status_routing_wh.svg | 68 | ||||
-rw-r--r-- | navit/xslt/osd_minimum.xslt | 10 |
18 files changed, 1252 insertions, 18 deletions
diff --git a/navit/attr.c b/navit/attr.c index 7b7e1376b..26acdd156 100644 --- a/navit/attr.c +++ b/navit/attr.c @@ -35,6 +35,7 @@ #include "coord.h" #include "transform.h" #include "color.h" +#include "navigation.h" #include "attr.h" #include "map.h" #include "config.h" @@ -354,6 +355,9 @@ flags_to_text(int flags) * @param map The translation map. This is only needed for string type attributes or group type * attributes which might contain strings. It can be NULL for other attribute types. If a string * type attribute is encountered and {@code map} is NULL, the string will be returned unchanged. + * + * @return The attribute data in human-readable form. The caller is responsible for calling {@code g_free()} on + * the result when it is no longer needed. */ char * attr_to_text_ext(struct attr *attr, char *sep, enum attr_format fmt, enum attr_format def_fmt, struct map *map) @@ -464,6 +468,9 @@ attr_to_text_ext(struct attr *attr, char *sep, enum attr_format fmt, enum attr_f if (type >= attr_type_item_type_begin && type <= attr_type_item_type_end) { return g_strdup_printf("0x%ld[%s]",attr->u.num,item_to_name(attr->u.num)); } + if (type == attr_nav_status) { + return nav_status_to_text(attr->u.num); + } return g_strdup_printf("(no text[%s])", attr_to_name(type)); } diff --git a/navit/navigation.c b/navit/navigation.c index a78ce1e1a..ba9b5aaeb 100644 --- a/navit/navigation.c +++ b/navit/navigation.c @@ -146,15 +146,6 @@ struct suffix { }; -enum nav_status { - status_no_route = -1, - status_no_destination = 0, - status_position_wait = 1, - status_calculating = 2, - status_recalculating = 3, - status_routing = 4, -}; - enum nav_status_int { status_none = 0, status_busy = 1, @@ -681,6 +672,46 @@ select_announced_destinations(struct navigation_command *current_command) } +/** + * @brief Converts navigation status to human-readable text. + * + * @param The status. This must be one of the values for {@code enum nav_status}. + * + * @return A string which corresponds to the constant value. The caller is responsible for calling + * {@code g_free()} when the result is no longer needed. + */ +char *nav_status_to_text(int status) { + char *ret; + + switch (status) { + case status_invalid: + ret = g_strdup("status_invalid"); + break; + case status_no_route: + ret = g_strdup("status_no_route"); + break; + case status_no_destination: + ret = g_strdup("status_no_destination"); + break; + case status_position_wait: + ret = g_strdup("status_position_wait"); + break; + case status_calculating: + ret = g_strdup("status_calculating"); + break; + case status_recalculating: + ret = g_strdup("status_recalculating"); + break; + case status_routing: + ret = g_strdup("status_routing"); + break; + default: + ret = g_strdup_printf("status_unknown_%d)", status); + } + return ret; +} + + int navigation_get_attr(struct navigation *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter) { @@ -740,13 +771,11 @@ navigation_set_turnaround(struct navigation *this_, int val) int navigation_set_attr(struct navigation *this_, struct attr *attr) { - int attr_updated=0; switch (attr->type) { case attr_speech: this_->speech=attr->u.speech; break; case attr_nav_status: - attr_updated = (this_->nav_status != attr->u.num); this_->nav_status = attr->u.num; break; default: @@ -3860,23 +3889,71 @@ navigation_destroy(struct navigation *this_) g_free(this_); } +/** + * @brief Registers a new callback function. + * + * Callback functions are called whenever the attribute for which they are registered changes. + * It is possible to register callbacks for {@code attr_any}, which will fire on any change. + * + * The {@code navigation} object has three callback lists. They differ by the arguments which are + * passed to the callback function and are selected based on the attribute type: + * <ul> + * <li>Callbacks for the {@code navigation_speech} attribute are added to the + * {@code callback_speech} list.</li> + * <li>Callbacks for the {@code navigation_long} attribute are added to the {@code callback} list. + * </li> + * <li>Callbacks for any other attribute, including {@code attr_any}, are added to the list stored + * in the {@code callback_list} attribute. This functionality is inherited from + * {@code navit_object}.</li> + * </ul> + * + * @param this_ The navigation object. + * @param type The attribute type + * @param cb The callback function + * + * @return true on success, false on failure + */ int navigation_register_callback(struct navigation *this_, enum attr_type type, struct callback *cb) { + struct attr attr_cbl; + if (type == attr_navigation_speech) callback_list_add(this_->callback_speech, cb); - else + else if (type == attr_navigation_long) callback_list_add(this_->callback, cb); + else { + if (navigation_get_attr(this_, attr_callback_list, &attr_cbl, NULL)) + callback_list_add(attr_cbl.u.callback_list, cb); + else + return 0; + } return 1; } +/** + * @brief Unregisters a callback function. + * + * This function removes a previously registered callback function from the callback list to which + * it was added. See the documentation on + * {@link navigation_register_callback(struct navigation *, enum attr_type, struct callback *)} for + * details on callback lists. + * + * @param this_ The navigation object. + * @param type The attribute type + * @param cb The callback function + */ void navigation_unregister_callback(struct navigation *this_, enum attr_type type, struct callback *cb) { + struct attr attr_cbl; + if (type == attr_navigation_speech) callback_list_remove(this_->callback_speech, cb); - else + else if (type == attr_navigation_long) callback_list_remove(this_->callback, cb); + else if (navigation_get_attr(this_, attr_callback_list, &attr_cbl, NULL)) + callback_list_remove(attr_cbl.u.callback_list, cb); } struct map * diff --git a/navit/navigation.h b/navit/navigation.h index 45c74025c..28faa015c 100644 --- a/navit/navigation.h +++ b/navit/navigation.h @@ -27,6 +27,28 @@ #ifdef __cplusplus extern "C" { #endif + + +/** + * Values for the {@code nav_status} attribute + */ +enum nav_status { + status_invalid = -2, /*!< Status is unknown. The {@code nav_status} attribute will never return this + value but code that listens to changes to this attribute may use this value + as a placeholder until the first actual status has been obtained. */ + status_no_route = -1, /*!< No route was found */ + status_no_destination = 0, /*!< No destination set, not routing */ + status_position_wait = 1, /*!< Destination is set but current position is unknown */ + status_calculating = 2, /*!< A new route is being calculated and turn instructions are being generated */ + status_recalculating = 3, /*!< The existing route is being recalculated, along with its turn instructions. + Note that as the vehicle follows a route, status will flip between + {@code status_routing} and {@code status_recalculating} with every position + update. */ + status_routing = 4, /*!< A route with turn instructions has been calculated and the user is being + guided along it */ +}; + + /* prototypes */ enum attr_type; enum item_type; @@ -36,6 +58,7 @@ struct callback; struct map; struct navigation; struct route; +char *nav_status_to_text(int status); int navigation_get_attr(struct navigation *this_, enum attr_type type, struct attr *attr, struct attr_iter *iter); int navigation_set_attr(struct navigation *this_, struct attr *attr); struct navigation *navigation_new(struct attr *parent, struct attr **attrs); diff --git a/navit/osd/core/osd_core.c b/navit/osd/core/osd_core.c index ab522f97f..56bcd2325 100644 --- a/navit/osd/core/osd_core.c +++ b/navit/osd/core/osd_core.c @@ -478,7 +478,7 @@ osd_route_guard_new(struct navit *nav, struct osd_methods *meth, return (struct osd_priv *) opc; } - + static int odometers_saved = 0; static GList* odometer_list = NULL; @@ -1679,6 +1679,173 @@ osd_image_new(struct navit *nav, struct osd_methods *meth, return NULL; } + +/** + * Internal data for {@code navigation_status} OSD. + */ +struct navigation_status { + char *icon_src; /**< Source for icon, with a placeholder */ + int icon_h; + int icon_w; + int last_status; /**< Last status displayed. + Apart from the usual values of {@code nav_status}, -2 is used to + indicate we have not yet received a status. */ +}; + + +/** + * @brief Draws a {@code navigation_status} OSD. + * + * @param opc The OSD to draw + * @param status The status of the navigation engine (the value of the {@code nav_status} attribute) + */ +static void osd_navigation_status_draw(struct osd_priv_common *opc, int status) { + struct navigation_status *this = (struct navigation_status *)opc->data; + struct point p; + int do_draw = opc->osd_item.do_draw; + struct graphics_image *gr_image; + char *image; + + /* When we're routing, the status will flip from 4 (routing) to 3 (recalculating) and back on + * every position update. This hack prevents unnecessary (and even undesirable) updates. + */ + int status2 = (status == 3) ? 4 : status; + + + if ((status2 != this->last_status) && (status2 != status_invalid)) { + this->last_status = status2; + do_draw = 1; + } + + if (do_draw) { + osd_fill_with_bgcolor(&opc->osd_item); + image = g_strdup_printf(this->icon_src, nav_status_to_text(status2)); + dbg(lvl_debug, "image=%s\n", image); + gr_image = + graphics_image_new_scaled(opc->osd_item.gr, + image, this->icon_w, + this->icon_h); + if (!gr_image) { + dbg(lvl_error,"failed to load %s in %dx%d\n",image,this->icon_w,this->icon_h); + g_free(image); + image = graphics_icon_path("unknown.png"); + gr_image = + graphics_image_new_scaled(opc-> + osd_item.gr, + image, + this->icon_w, + this-> + icon_h); + } + dbg(lvl_debug, "gr_image=%p\n", gr_image); + if (gr_image) { + p.x = + (opc->osd_item.w - + gr_image->width) / 2; + p.y = + (opc->osd_item.h - + gr_image->height) / 2; + graphics_draw_image(opc->osd_item.gr, + opc->osd_item. + graphic_fg_white, &p, + gr_image); + graphics_image_free(opc->osd_item.gr, + gr_image); + } + g_free(image); + graphics_draw_mode(opc->osd_item.gr, draw_mode_end); + } +} + + +/** + * @brief Initializes a new {@code navigation_status} OSD. + * + * This function is registered as a callback function in {@link osd_navigation_status_new(struct navit *, struct osd_methods *, struct attr **)}. + * It is called after graphics initialization has finished and can be used for any initialization + * tasks which rely on a functional graphics system. + * + * @param opc The OSD to initialize + * @param navit The navit instance + */ +static void osd_navigation_status_init(struct osd_priv_common *opc, struct navit *navit) { + struct navigation *nav = NULL; + struct attr attr; + + dbg(lvl_debug, "enter, opc=%p\n", opc); + osd_set_std_graphic(navit, &opc->osd_item, (struct osd_priv *)opc); + if (navit) + nav = navit_get_navigation(navit); + if (nav) { + navigation_register_callback(nav, attr_nav_status, callback_new_attr_1(callback_cast(osd_navigation_status_draw), attr_nav_status, opc)); + if (navigation_get_attr(nav, attr_nav_status, &attr, NULL)) + osd_navigation_status_draw(opc, attr.u.num); + } + else + dbg(lvl_error, "navigation instance is NULL, OSD will never update\n"); + //navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_std_click), attr_button, &opc->osd_item)); // FIXME do we need this? +} + + +/** + * @brief Creates a new {@code navigation_status} OSD. + * + * This initializes the data structures and registers {@link osd_navigation_status_init(struct osd_priv_common *, struct navit *)} + * as a callback. + * + * Note that this function runs before the graphics system has been initialized. Therefore, code + * that requires a functional graphics system must be placed in + * {@link osd_navigation_status_init(struct osd_priv_common *, struct navit *)}. + * + * @param nav The navit instance + * @param meth The methods for the new OSD + * @param attrs The attributes for the new OSD + */ +static struct osd_priv *osd_navigation_status_new(struct navit *nav, struct osd_methods *meth, struct attr **attrs) { + struct navigation_status *this = g_new0(struct navigation_status, 1); + struct osd_priv_common *opc = g_new0(struct osd_priv_common,1); + struct attr *attr; + + opc->data = (void*)this; + opc->osd_item.rel_x = 20; + opc->osd_item.rel_y = -80; + opc->osd_item.rel_w = 70; + opc->osd_item.navit = nav; + opc->osd_item.rel_h = 70; + opc->osd_item.font_size = 200; // FIXME may not be needed + opc->osd_item.meth.draw = osd_draw_cast(osd_navigation_status_draw); + meth->set_attr = set_std_osd_attr; + osd_set_std_attr(attrs, &opc->osd_item, 0); + + this->icon_w = -1; + this->icon_h = -1; + this->last_status = status_invalid; + + attr = attr_search(attrs, NULL, attr_icon_w); + if (attr) + this->icon_w = attr->u.num; + + attr = attr_search(attrs, NULL, attr_icon_h); + if (attr) + this->icon_h = attr->u.num; + + attr = attr_search(attrs, NULL, attr_icon_src); + if (attr) { + struct file_wordexp *we; + char **array; + we = file_wordexp_new(attr->u.str); + array = file_wordexp_get_array(we); + this->icon_src = graphics_icon_path(array[0]); + file_wordexp_destroy(we); + } else { + this->icon_src = graphics_icon_path("%s_wh.svg"); + } + + navit_add_callback(nav, callback_new_attr_1(callback_cast(osd_navigation_status_init), attr_graphics_ready, opc)); + return (struct osd_priv *) opc; +} + + struct nav_next_turn { char *test_text; char *icon_src; @@ -3666,4 +3833,5 @@ plugin_init(void) plugin_register_osd_type("auxmap", osd_auxmap_new); plugin_register_osd_type("cmd_interface", osd_cmd_interface_new); plugin_register_osd_type("route_guard", osd_route_guard_new); + plugin_register_osd_type("navigation_status", osd_navigation_status_new); } diff --git a/navit/xpm/Makefile.am b/navit/xpm/Makefile.am index 4ed86efbb..2ba0d3a5c 100644 --- a/navit/xpm/Makefile.am +++ b/navit/xpm/Makefile.am @@ -184,6 +184,18 @@ svgs += sikh.svg svgs += skiing.svg svgs += sport.svg svgs += stadium.svg +svgs += status_calculating_bk.svg +svgs += status_calculating_wh.svg +svgs += status_no_destination_bk.svg +svgs += status_no_destination_wh.svg +svgs += status_no_route_bk.svg +svgs += status_no_route_wh.svg +svgs += status_position_wait_bk.svg +svgs += status_position_wait_wh.svg +svgs += status_recalculating_bk.svg +svgs += status_recalculating_wh.svg +svgs += status_routing_bk.svg +svgs += status_routing_wh.svg svgs += swimming.svg svgs += taoist.svg svgs += taxi.svg diff --git a/navit/xpm/status_calculating_bk.svg b/navit/xpm/status_calculating_bk.svg new file mode 100644 index 000000000..6617ce8d4 --- /dev/null +++ b/navit/xpm/status_calculating_bk.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_calculating_bk.svg"> + <metadata + id="metadata12"> + <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 /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10"> + <inkscape:path-effect + effect="skeletal" + id="path-effect4838" + is_visible="true" + pattern="M 0,5 C 0,2.24 2.24,0 5,0 7.76,0 10,2.24 10,5 10,7.76 7.76,10 5,10 2.24,10 0,7.76 0,5 Z" + copytype="single_stretched" + prop_scale="1" + scale_y_rel="false" + spacing="0" + normal_offset="0" + tang_offset="0" + prop_units="false" + vertical_pattern="false" + fuse_tolerance="0" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="24" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-grids="true" + inkscape:snap-others="true" + inkscape:snap-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0V0z" + fill="none" + id="path6" /> + <path + style="fill:#000000;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 5.5 0 C 4.669 0 4 0.669 4 1.5 C 4 2.331 4.669 3 5.5 3 L 8 3 L 8 10 C 8 12.385139 9.3458567 14.173982 10.585938 15.414062 L 17.085938 21.914062 C 17.84156 22.669687 18 22.968366 18 24 C 18 24.940922 17.809128 25.362748 17.085938 26.085938 L 14.585938 28.585938 L 10.585938 32.585938 C 9.3458567 33.826017 8 35.61486 8 38 L 8 45 L 5.5 45 C 4.669 45 4 45.669 4 46.5 C 4 47.331 4.669 48 5.5 48 L 42.5 48 C 43.331 48 44 47.331 44 46.5 C 44 45.669 43.331 45 42.5 45 L 40 45 L 40 38 C 40 35.61486 38.654145 33.826017 37.414062 32.585938 L 33.414062 28.585938 L 30.914062 26.085938 C 30.190872 25.362748 30 24.940922 30 24 C 30 22.968366 30.15844 22.669687 30.914062 21.914062 L 37.414062 15.414062 C 38.654145 14.173982 40 12.385139 40 10 L 40 3 L 42.5 3 C 43.331 3 44 2.331 44 1.5 C 44 0.669 43.331 0 42.5 0 L 5.5 0 z M 12 3 L 36 3 L 36 10 C 36 10.460018 35.606946 11.292533 35.080078 12 L 12.919922 12 C 12.393054 11.292534 12 10.460018 12 10 L 12 3 z M 22 24 L 22 38 C 22 40 20 42 18 42 L 12 42 L 12 38 C 12 37.403716 12.654143 36.173983 13.414062 35.414062 L 17.414062 31.414062 L 19.914062 28.914062 C 21.190872 27.637252 22 25.884674 22 24 z M 26 24 C 26 25.884674 26.809128 27.637252 28.085938 28.914062 L 30.585938 31.414062 L 34.585938 35.414062 C 35.345855 36.173983 36 37.403716 36 38 L 36 42 L 30 42 C 28 42 26 40 26 38 L 26 24 z " + transform="scale(0.5,0.5)" + id="rect4780" /> +</svg> diff --git a/navit/xpm/status_calculating_wh.svg b/navit/xpm/status_calculating_wh.svg new file mode 100644 index 000000000..fcdf60960 --- /dev/null +++ b/navit/xpm/status_calculating_wh.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_calculating_bk.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10"> + <inkscape:path-effect + effect="skeletal" + id="path-effect4838" + is_visible="true" + pattern="M 0,5 C 0,2.24 2.24,0 5,0 7.76,0 10,2.24 10,5 10,7.76 7.76,10 5,10 2.24,10 0,7.76 0,5 Z" + copytype="single_stretched" + prop_scale="1" + scale_y_rel="false" + spacing="0" + normal_offset="0" + tang_offset="0" + prop_units="false" + vertical_pattern="false" + fuse_tolerance="0" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="24" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-grids="true" + inkscape:snap-others="true" + inkscape:snap-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0V0z" + fill="none" + id="path6" /> + <path + style="fill:#ffffff;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 5.5 0 C 4.669 0 4 0.669 4 1.5 C 4 2.331 4.669 3 5.5 3 L 8 3 L 8 10 C 8 12.385139 9.3458567 14.173982 10.585938 15.414062 L 17.085938 21.914062 C 17.84156 22.669687 18 22.968366 18 24 C 18 24.940922 17.809128 25.362748 17.085938 26.085938 L 14.585938 28.585938 L 10.585938 32.585938 C 9.3458567 33.826017 8 35.61486 8 38 L 8 45 L 5.5 45 C 4.669 45 4 45.669 4 46.5 C 4 47.331 4.669 48 5.5 48 L 42.5 48 C 43.331 48 44 47.331 44 46.5 C 44 45.669 43.331 45 42.5 45 L 40 45 L 40 38 C 40 35.61486 38.654145 33.826017 37.414062 32.585938 L 33.414062 28.585938 L 30.914062 26.085938 C 30.190872 25.362748 30 24.940922 30 24 C 30 22.968366 30.15844 22.669687 30.914062 21.914062 L 37.414062 15.414062 C 38.654145 14.173982 40 12.385139 40 10 L 40 3 L 42.5 3 C 43.331 3 44 2.331 44 1.5 C 44 0.669 43.331 0 42.5 0 L 5.5 0 z M 12 3 L 36 3 L 36 10 C 36 10.460018 35.606946 11.292533 35.080078 12 L 12.919922 12 C 12.393054 11.292534 12 10.460018 12 10 L 12 3 z M 22 24 L 22 38 C 22 40 20 42 18 42 L 12 42 L 12 38 C 12 37.403716 12.654143 36.173983 13.414062 35.414062 L 17.414062 31.414062 L 19.914062 28.914062 C 21.190872 27.637252 22 25.884674 22 24 z M 26 24 C 26 25.884674 26.809128 27.637252 28.085938 28.914062 L 30.585938 31.414062 L 34.585938 35.414062 C 35.345855 36.173983 36 37.403716 36 38 L 36 42 L 30 42 C 28 42 26 40 26 38 L 26 24 z " + transform="scale(0.5,0.5)" + id="rect4780" /> +</svg> diff --git a/navit/xpm/status_no_destination_bk.svg b/navit/xpm/status_no_destination_bk.svg new file mode 100644 index 000000000..271af0075 --- /dev/null +++ b/navit/xpm/status_no_destination_bk.svg @@ -0,0 +1,97 @@ +<?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://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="64" + height="64" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="status_no_destination_bk.svg"> + <metadata + id="metadata29"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview27" + showgrid="true" + inkscape:zoom="11.5625" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid4178" /> + </sodipodi:namedview> + <defs + id="defs11"> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="DistanceIn"> + <g + id="g2300"> + <path + d="M 0,0 L 2,0" + style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" + id="path2306" /> + <path + d="M 0,0 L 13,4 L 9,0 L 13,-4 L 0,0 z " + style="fill:#000000;fill-rule:evenodd;stroke:none" + id="path2302" /> + <path + d="M 0,-4 L 0,40" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" + id="path2304" /> + </g> + </marker> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="SemiCircleOut"> + <path + d="M -2.5,-0.80913858 C -2.5,1.9508614 -4.74,4.1908614 -7.5,4.1908614 L -7.5,-5.8091386 C -4.74,-5.8091386 -2.5,-3.5691386 -2.5,-0.80913858 z " + transform="matrix(0.6,0,0,0.6,4.2752958,0.4580676)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" + id="path8204" /> + </marker> + </defs> + <path + style="stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" + d="M 13.181641 3.0214844 L 18 7.8398438 L 18 6.8867188 L 25 8.0820312 L 25 14.388672 L 32 15.623047 L 32 9.2773438 L 39 10.470703 L 39 16.857422 L 46 18.091797 L 46 11.666016 L 52.5 12.775391 L 52.5 19.238281 L 46 18.091797 L 46 25.091797 L 52.5 26.238281 L 52.5 33.238281 L 46 32.091797 L 46 35.839844 L 53.009766 42.849609 L 55.5 43.289062 L 55.5 10.244141 L 13.181641 3.0214844 z M 46 32.091797 L 46 25.091797 L 39 23.857422 L 39 28.839844 L 41.449219 31.289062 L 46 32.091797 z M 39 23.857422 L 39 16.857422 L 32 15.623047 L 32 21.839844 L 32.951172 22.791016 L 39 23.857422 z M 25 14.388672 L 24.453125 14.292969 L 25 14.839844 L 25 14.388672 z M 7.3867188 4 L 4 7.3867188 L 8.5 11.886719 L 8.5 33.744141 L 8.5 35.001953 L 8.5 62 A 1.50015 1.50015 0 1 0 11.5 62 L 11.5 35.53125 L 36.564453 39.951172 L 56.613281 60 L 60 56.613281 L 44.787109 41.400391 L 41.089844 37.703125 L 39 35.613281 L 33.226562 29.839844 L 32 28.613281 L 25 21.613281 L 24.726562 21.339844 L 18 14.613281 L 16.228516 12.841797 L 8.5 5.1132812 L 7.3867188 4 z M 11.5 14.886719 L 16.503906 19.890625 L 11.5 19.007812 L 11.5 14.886719 z M 18 21.386719 L 25 28.386719 L 25 28.388672 L 25.001953 28.388672 L 32 35.386719 L 32 36.099609 L 25 34.865234 L 25 28.388672 L 18 27.154297 L 18 33.630859 L 11.5 32.484375 L 11.5 26.007812 L 18 27.154297 L 18 21.386719 z " + id="rect4126" /> +</svg> diff --git a/navit/xpm/status_no_destination_wh.svg b/navit/xpm/status_no_destination_wh.svg new file mode 100644 index 000000000..ecad90f6a --- /dev/null +++ b/navit/xpm/status_no_destination_wh.svg @@ -0,0 +1,97 @@ +<?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://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.0" + width="64" + height="64" + id="svg2" + inkscape:version="0.91 r13725" + sodipodi:docname="status_no_destination_wh.svg"> + <metadata + id="metadata29"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview27" + showgrid="true" + inkscape:zoom="11.5625" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true"> + <inkscape:grid + type="xygrid" + id="grid4178" /> + </sodipodi:namedview> + <defs + id="defs11"> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="DistanceIn"> + <g + id="g2300"> + <path + d="M 0,0 L 2,0" + style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" + id="path2306" /> + <path + d="M 0,0 L 13,4 L 9,0 L 13,-4 L 0,0 z " + style="fill:#000000;fill-rule:evenodd;stroke:none" + id="path2302" /> + <path + d="M 0,-4 L 0,40" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" + id="path2304" /> + </g> + </marker> + <marker + refX="0" + refY="0" + orient="auto" + style="overflow:visible" + id="SemiCircleOut"> + <path + d="M -2.5,-0.80913858 C -2.5,1.9508614 -4.74,4.1908614 -7.5,4.1908614 L -7.5,-5.8091386 C -4.74,-5.8091386 -2.5,-3.5691386 -2.5,-0.80913858 z " + transform="matrix(0.6,0,0,0.6,4.2752958,0.4580676)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none;marker-end:none" + id="path8204" /> + </marker> + </defs> + <path + style="stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;fill:#ffffff" + d="M 13.181641 3.0214844 L 18 7.8398438 L 18 6.8867188 L 25 8.0820312 L 25 14.388672 L 32 15.623047 L 32 9.2773438 L 39 10.470703 L 39 16.857422 L 46 18.091797 L 46 11.666016 L 52.5 12.775391 L 52.5 19.238281 L 46 18.091797 L 46 25.091797 L 52.5 26.238281 L 52.5 33.238281 L 46 32.091797 L 46 35.839844 L 53.009766 42.849609 L 55.5 43.289062 L 55.5 10.244141 L 13.181641 3.0214844 z M 46 32.091797 L 46 25.091797 L 39 23.857422 L 39 28.839844 L 41.449219 31.289062 L 46 32.091797 z M 39 23.857422 L 39 16.857422 L 32 15.623047 L 32 21.839844 L 32.951172 22.791016 L 39 23.857422 z M 25 14.388672 L 24.453125 14.292969 L 25 14.839844 L 25 14.388672 z M 7.3867188 4 L 4 7.3867188 L 8.5 11.886719 L 8.5 33.744141 L 8.5 35.001953 L 8.5 62 A 1.50015 1.50015 0 1 0 11.5 62 L 11.5 35.53125 L 36.564453 39.951172 L 56.613281 60 L 60 56.613281 L 44.787109 41.400391 L 41.089844 37.703125 L 39 35.613281 L 33.226562 29.839844 L 32 28.613281 L 25 21.613281 L 24.726562 21.339844 L 18 14.613281 L 16.228516 12.841797 L 8.5 5.1132812 L 7.3867188 4 z M 11.5 14.886719 L 16.503906 19.890625 L 11.5 19.007812 L 11.5 14.886719 z M 18 21.386719 L 25 28.386719 L 25 28.388672 L 25.001953 28.388672 L 32 35.386719 L 32 36.099609 L 25 34.865234 L 25 28.388672 L 18 27.154297 L 18 33.630859 L 11.5 32.484375 L 11.5 26.007812 L 18 27.154297 L 18 21.386719 z " + id="rect4126" /> +</svg> diff --git a/navit/xpm/status_no_route_bk.svg b/navit/xpm/status_no_route_bk.svg new file mode 100644 index 000000000..6862cfdc2 --- /dev/null +++ b/navit/xpm/status_no_route_bk.svg @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_no_route_bk.svg"> + <metadata + id="metadata12"> + <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 /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="true" + inkscape:object-paths="true" + inkscape:zoom="15.416667" + inkscape:cx="21.248534" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0z" + fill="none" + id="path4" /> + <path + d="M 12,0 C 5.376,0 0,5.376 0,12 0,18.624 5.376,24 12,24 18.624,24 24,18.624 24,12 24,5.376 18.624,0 12,0 Z M 21,15 3,15 3,9 21,9 Z" + id="path6" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssccccc" /> +</svg> diff --git a/navit/xpm/status_no_route_wh.svg b/navit/xpm/status_no_route_wh.svg new file mode 100644 index 000000000..7c7544916 --- /dev/null +++ b/navit/xpm/status_no_route_wh.svg @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_no_route_wh.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-nodes="true" + inkscape:snap-intersection-paths="true" + inkscape:object-paths="true" + inkscape:zoom="15.416667" + inkscape:cx="21.248534" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0z" + fill="none" + id="path4" /> + <path + d="M 12,0 C 5.376,0 0,5.376 0,12 0,18.624 5.376,24 12,24 18.624,24 24,18.624 24,12 24,5.376 18.624,0 12,0 Z M 21,15 3,15 3,9 21,9 Z" + id="path6" + inkscape:connector-curvature="0" + sodipodi:nodetypes="sssssccccc" + style="fill:#ffffff" /> +</svg> diff --git a/navit/xpm/status_position_wait_bk.svg b/navit/xpm/status_position_wait_bk.svg new file mode 100644 index 000000000..9d1b7ca33 --- /dev/null +++ b/navit/xpm/status_position_wait_bk.svg @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_position_wait_bk.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="12.765499" + inkscape:cx="24" + inkscape:cy="23.015625" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M 24 0 C 14.712 0 7.1992187 7.5127812 7.1992188 16.800781 C 7.1992188 29.400781 24 48 24 48 C 24 48 40.800781 29.400781 40.800781 16.800781 C 40.800781 7.5127812 33.288 2.3684758e-15 24 0 z M 24 4 C 31.131238 4 36.800781 9.6695427 36.800781 16.800781 C 36.800781 21.323004 33.110977 28.921035 29.085938 34.886719 C 26.543988 38.654253 25.528858 39.652618 24 41.476562 C 22.471142 39.652618 21.456012 38.654253 18.914062 34.886719 C 14.889022 28.921035 11.199219 21.323004 11.199219 16.800781 C 11.199219 9.6695427 16.868761 4 24 4 z " + transform="scale(0.5,0.5)" + id="path4" /> + <path + d="M0 0h24v24H0z" + fill="none" + id="path6" /> +</svg> diff --git a/navit/xpm/status_position_wait_wh.svg b/navit/xpm/status_position_wait_wh.svg new file mode 100644 index 000000000..8bce336df --- /dev/null +++ b/navit/xpm/status_position_wait_wh.svg @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_position_wait_wh.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="12.765499" + inkscape:cx="24" + inkscape:cy="23.015625" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M 24 0 C 14.712 0 7.1992187 7.5127812 7.1992188 16.800781 C 7.1992188 29.400781 24 48 24 48 C 24 48 40.800781 29.400781 40.800781 16.800781 C 40.800781 7.5127812 33.288 2.3684758e-15 24 0 z M 24 4 C 31.131238 4 36.800781 9.6695427 36.800781 16.800781 C 36.800781 21.323004 33.110977 28.921035 29.085938 34.886719 C 26.543988 38.654253 25.528858 39.652618 24 41.476562 C 22.471142 39.652618 21.456012 38.654253 18.914062 34.886719 C 14.889022 28.921035 11.199219 21.323004 11.199219 16.800781 C 11.199219 9.6695427 16.868761 4 24 4 z " + transform="scale(0.5,0.5)" + id="path4" + style="fill:#ffffff" /> + <path + d="M0 0h24v24H0z" + fill="none" + id="path6" /> +</svg> diff --git a/navit/xpm/status_recalculating_bk.svg b/navit/xpm/status_recalculating_bk.svg new file mode 100644 index 000000000..937937e2b --- /dev/null +++ b/navit/xpm/status_recalculating_bk.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_calculating_bk.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10"> + <inkscape:path-effect + effect="skeletal" + id="path-effect4838" + is_visible="true" + pattern="M 0,5 C 0,2.24 2.24,0 5,0 7.76,0 10,2.24 10,5 10,7.76 7.76,10 5,10 2.24,10 0,7.76 0,5 Z" + copytype="single_stretched" + prop_scale="1" + scale_y_rel="false" + spacing="0" + normal_offset="0" + tang_offset="0" + prop_units="false" + vertical_pattern="false" + fuse_tolerance="0" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="24" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-grids="true" + inkscape:snap-others="true" + inkscape:snap-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0V0z" + fill="none" + id="path6" /> + <path + style="fill:#000000;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 5.5 0 C 4.669 0 4 0.669 4 1.5 C 4 2.331 4.669 3 5.5 3 L 8 3 L 8 10 C 8 12.385139 9.3458567 14.173982 10.585938 15.414062 L 17.085938 21.914062 C 17.84156 22.669687 18 22.968366 18 24 C 18 24.940922 17.809128 25.362748 17.085938 26.085938 L 14.585938 28.585938 L 10.585938 32.585938 C 9.3458567 33.826017 8 35.61486 8 38 L 8 45 L 5.5 45 C 4.669 45 4 45.669 4 46.5 C 4 47.331 4.669 48 5.5 48 L 42.5 48 C 43.331 48 44 47.331 44 46.5 C 44 45.669 43.331 45 42.5 45 L 40 45 L 40 38 C 40 35.61486 38.654145 33.826017 37.414062 32.585938 L 33.414062 28.585938 L 30.914062 26.085938 C 30.190872 25.362748 30 24.940922 30 24 C 30 22.968366 30.15844 22.669687 30.914062 21.914062 L 37.414062 15.414062 C 38.654145 14.173982 40 12.385139 40 10 L 40 3 L 42.5 3 C 43.331 3 44 2.331 44 1.5 C 44 0.669 43.331 0 42.5 0 L 5.5 0 z M 12 3 L 36 3 L 36 10 C 36 10.460018 35.606946 11.292533 35.080078 12 L 12.919922 12 C 12.393054 11.292534 12 10.460018 12 10 L 12 3 z M 22 24 L 22 38 C 22 40 20 42 18 42 L 12 42 L 12 38 C 12 37.403716 12.654143 36.173983 13.414062 35.414062 L 17.414062 31.414062 L 19.914062 28.914062 C 21.190872 27.637252 22 25.884674 22 24 z M 26 24 C 26 25.884674 26.809128 27.637252 28.085938 28.914062 L 30.585938 31.414062 L 34.585938 35.414062 C 35.345855 36.173983 36 37.403716 36 38 L 36 42 L 30 42 C 28 42 26 40 26 38 L 26 24 z " + transform="scale(0.5,0.5)" + id="rect4780" /> +</svg> diff --git a/navit/xpm/status_recalculating_wh.svg b/navit/xpm/status_recalculating_wh.svg new file mode 100644 index 000000000..728055baa --- /dev/null +++ b/navit/xpm/status_recalculating_wh.svg @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_recalculating_wh.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10"> + <inkscape:path-effect + effect="skeletal" + id="path-effect4838" + is_visible="true" + pattern="M 0,5 C 0,2.24 2.24,0 5,0 7.76,0 10,2.24 10,5 10,7.76 7.76,10 5,10 2.24,10 0,7.76 0,5 Z" + copytype="single_stretched" + prop_scale="1" + scale_y_rel="false" + spacing="0" + normal_offset="0" + tang_offset="0" + prop_units="false" + vertical_pattern="false" + fuse_tolerance="0" /> + </defs> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="14.27027" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" + inkscape:snap-grids="true" + inkscape:snap-others="true" + inkscape:snap-bbox="true"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0V0z" + fill="none" + id="path6" /> + <path + style="fill:#ffffff;stroke:none;stroke-width:8;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + d="M 5.5 0 C 4.669 0 4 0.669 4 1.5 C 4 2.331 4.669 3 5.5 3 L 8 3 L 8 10 C 8 12.385139 9.3458567 14.173982 10.585938 15.414062 L 17.085938 21.914062 C 17.84156 22.669687 18 22.968366 18 24 C 18 24.940922 17.809128 25.362748 17.085938 26.085938 L 14.585938 28.585938 L 10.585938 32.585938 C 9.3458567 33.826017 8 35.61486 8 38 L 8 45 L 5.5 45 C 4.669 45 4 45.669 4 46.5 C 4 47.331 4.669 48 5.5 48 L 42.5 48 C 43.331 48 44 47.331 44 46.5 C 44 45.669 43.331 45 42.5 45 L 40 45 L 40 38 C 40 35.61486 38.654145 33.826017 37.414062 32.585938 L 33.414062 28.585938 L 30.914062 26.085938 C 30.190872 25.362748 30 24.940922 30 24 C 30 22.968366 30.15844 22.669687 30.914062 21.914062 L 37.414062 15.414062 C 38.654145 14.173982 40 12.385139 40 10 L 40 3 L 42.5 3 C 43.331 3 44 2.331 44 1.5 C 44 0.669 43.331 0 42.5 0 L 5.5 0 z M 12 3 L 36 3 L 36 10 C 36 10.460018 35.606946 11.292533 35.080078 12 L 12.919922 12 C 12.393054 11.292534 12 10.460018 12 10 L 12 3 z M 22 24 L 22 38 C 22 40 20 42 18 42 L 12 42 L 12 38 C 12 37.403716 12.654143 36.173983 13.414062 35.414062 L 17.414062 31.414062 L 19.914062 28.914062 C 21.190872 27.637252 22 25.884674 22 24 z M 26 24 C 26 25.884674 26.809128 27.637252 28.085938 28.914062 L 30.585938 31.414062 L 34.585938 35.414062 C 35.345855 36.173983 36 37.403716 36 38 L 36 42 L 30 42 C 28 42 26 40 26 38 L 26 24 z " + transform="scale(0.5,0.5)" + id="rect4780" /> +</svg> diff --git a/navit/xpm/status_routing_bk.svg b/navit/xpm/status_routing_bk.svg new file mode 100644 index 000000000..307b26434 --- /dev/null +++ b/navit/xpm/status_routing_bk.svg @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_routing_bk.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="24" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0z" + fill="none" + id="path4" /> + <path + d="M 12,0 2.9210526,22.140526 3.7805263,23 12,19.368421 20.219474,23 21.078947,22.140526 Z" + id="path6" + inkscape:connector-curvature="0" /> +</svg> diff --git a/navit/xpm/status_routing_wh.svg b/navit/xpm/status_routing_wh.svg new file mode 100644 index 000000000..32cfecd7b --- /dev/null +++ b/navit/xpm/status_routing_wh.svg @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + 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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + fill="#000000" + height="48" + viewBox="0 0 24 24" + width="48" + id="svg2" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="status_routing_bk.svg"> + <metadata + id="metadata12"> + <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></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs10" /> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1280" + inkscape:window-height="948" + id="namedview8" + showgrid="true" + inkscape:object-paths="true" + inkscape:snap-intersection-paths="true" + inkscape:object-nodes="true" + inkscape:zoom="15.416667" + inkscape:cx="24" + inkscape:cy="24" + inkscape:window-x="0" + inkscape:window-y="24" + inkscape:window-maximized="1" + inkscape:current-layer="svg2"> + <inkscape:grid + type="xygrid" + id="grid4140" /> + </sodipodi:namedview> + <path + d="M0 0h24v24H0z" + fill="none" + id="path4" /> + <path + d="M 12,0 2.9210526,22.140526 3.7805263,23 12,19.368421 20.219474,23 21.078947,22.140526 Z" + id="path6" + inkscape:connector-curvature="0" + style="fill:#ffffff" /> +</svg> diff --git a/navit/xslt/osd_minimum.xslt b/navit/xslt/osd_minimum.xslt index 8d39255c5..cda88dc88 100644 --- a/navit/xslt/osd_minimum.xslt +++ b/navit/xslt/osd_minimum.xslt @@ -4,13 +4,15 @@ <xsl:param name="NEXT_TURN_SIZE"><xsl:value-of select="round(12*number($OSD_SIZE)+number($ICON_BIG))"/></xsl:param> <xsl:param name="NEXT_TURN_TEXT_HIGHT"><xsl:value-of select="round(20*number($OSD_SIZE))"/></xsl:param> - <osd type="compass" enabled="yes" x="{round(-60*number($OSD_SIZE))}" y="{round(-80*number($OSD_SIZE))}" w="{round(60*number($OSD_SIZE))}" h="{round(80*number($OSD_SIZE))}" font_size="{round(200*number($OSD_SIZE))}" osd_configuration="1"/> + <osd type="compass" enabled="yes" x="{round(-60*number($OSD_SIZE))}" y="{round(-80*number($OSD_SIZE))}" w="{round(60*number($OSD_SIZE))}" h="{round(80*number($OSD_SIZE))}" font_size="{round(200*number($OSD_SIZE))}" enable_expression="vehicle.position_valid"/> <xsl:text>
 </xsl:text> - <osd type="text" label="${{navigation.item.destination_length[named]}}\n${{navigation.item.destination_time[arrival]}}" x="{round(-60*number($OSD_SIZE))}" y="0" w="{round(60*number($OSD_SIZE))}" h="{round(40*number($OSD_SIZE))}" font_size="{round(200*number($OSD_SIZE))}" osd_configuration="1"/> + <osd type="text" label="${{navigation.item.destination_length[named]}}\n${{navigation.item.destination_time[arrival]}}" x="{round(-60*number($OSD_SIZE))}" y="0" w="{round(60*number($OSD_SIZE))}" h="{round(40*number($OSD_SIZE))}" font_size="{round(200*number($OSD_SIZE))}" enable_expression="navigation.nav_status>=3"/> <xsl:text>
 </xsl:text> - <osd type="navigation_next_turn" x="0" y="{-($NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT)}" w="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" h="{$NEXT_TURN_SIZE}" icon_src="%s_wh_{$ICON_BIG}_{$ICON_BIG}.png" osd_configuration="1"/> + <osd type="navigation_status" x="0" y="{-($NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT)}" w="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" h="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" icon_src="%s_wh_{$ICON_BIG}_{$ICON_BIG}.png" enable_expression="navigation.nav_status==-1 || navigation.nav_status==1 || navigation.nav_status==2"/> <xsl:text>
 </xsl:text> - <osd type="text" label="${{navigation.item[1].length[named]}}" x="0" y="{-$NEXT_TURN_TEXT_HIGHT}" w="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" h="{$NEXT_TURN_TEXT_HIGHT}" font_size="{round(200*number($OSD_SIZE))}" osd_configuration="1"/> + <osd type="navigation_next_turn" x="0" y="{-($NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT)}" w="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" h="{$NEXT_TURN_SIZE}" icon_src="%s_wh_{$ICON_BIG}_{$ICON_BIG}.png" enable_expression="navigation.nav_status>=3"/> + <xsl:text>
 </xsl:text> + <osd type="text" label="${{navigation.item[1].length[named]}}" x="0" y="{-$NEXT_TURN_TEXT_HIGHT}" w="{$NEXT_TURN_SIZE+$NEXT_TURN_TEXT_HIGHT}" h="{$NEXT_TURN_TEXT_HIGHT}" font_size="{round(200*number($OSD_SIZE))}" enable_expression="navigation.nav_status>=3"/> <xsl:text>
 </xsl:text> <osd type="button" src="gui_zoom_in_{number($ICON_BIG)}_{number($ICON_BIG)}.png" command="zoom_in()" x="0" y="0" osd_configuration="1"/> <xsl:text>
 </xsl:text> |