Well, this is not fixed. I guess some macros are missing in emap header. For fixing build error, I would define them in elementary temporary.
Thanks. Daniel Juyung Seo (SeoZ) On Mon, Jun 27, 2011 at 11:05 AM, Daniel Juyung Seo <[email protected]> wrote: > Hello watchwolf, it looks like you broke elm. > > --- > elm_route.c: In function ‘_clear_route’: > elm_route.c:129:18: error: ‘EMAP_LON_MAX’ undeclared (first use in > this function) > elm_route.c:129:18: note: each undeclared identifier is reported only > once for each function it appears in > elm_route.c:130:18: error: ‘EMAP_LON_MIN’ undeclared (first use in > this function) > elm_route.c:131:18: error: ‘EMAP_LAT_MAX’ undeclared (first use in > this function) > elm_route.c:132:18: error: ‘EMAP_LAT_MIN’ undeclared (first use in > this function) > elm_route.c: In function ‘elm_route_add’: > elm_route.c:202:18: error: ‘EMAP_LON_MAX’ undeclared (first use in > this function) > elm_route.c:203:18: error: ‘EMAP_LON_MIN’ undeclared (first use in > this function) > elm_route.c:204:18: error: ‘EMAP_LAT_MAX’ undeclared (first use in > this function) > elm_route.c:205:18: error: ‘EMAP_LAT_MIN’ undeclared (first use in > this function) > --- > > EMAP_xxx are not defined even in latest PROTO/emap. > Can you check it? > > Thanks. > Daniel Juyung Seo (SeoZ) > > > On Mon, Jun 27, 2011 at 2:36 AM, Enlightenment SVN > <[email protected]> wrote: >> Log: >> elm: add elm_route: widget to display a route on elm_map. Currently the >> widget use lines, in the futur it will use edje >> >> >> >> Author: watchwolf >> Date: 2011-06-26 10:36:18 -0700 (Sun, 26 Jun 2011) >> New Revision: 60703 >> Trac: http://trac.enlightenment.org/e/changeset/60703 >> >> Added: >> trunk/elementary/src/lib/elm_route.c >> Modified: >> trunk/elementary/src/bin/test_map.c >> trunk/elementary/src/lib/Elementary.h.in >> trunk/elementary/src/lib/Makefile.am trunk/elementary/src/lib/elm_map.c >> >> Modified: trunk/elementary/src/bin/test_map.c >> =================================================================== >> --- trunk/elementary/src/bin/test_map.c 2011-06-26 13:59:11 UTC (rev 60702) >> +++ trunk/elementary/src/bin/test_map.c 2011-06-26 17:36:18 UTC (rev 60703) >> @@ -28,7 +28,7 @@ >> static Elm_Map_Marker *route_from, *route_to; >> static Elm_Map_Route *route; >> static Elm_Map_Name *name; >> -static Elm_Map_Track *track; >> +static Evas_Object *track; >> static const char **source_names = NULL; >> static Evas_Coord old_x, old_y; >> static Evas_Coord old_d; >> @@ -280,13 +280,13 @@ >> } >> >> static void >> -map_show_seoul(void *data, Evas_Object *obj __UNUSED__, void *event_info >> __UNUSED__) >> +map_show_urmatt(void *data, Evas_Object *obj __UNUSED__, void *event_info >> __UNUSED__) >> { >> Eina_Bool b = elm_map_paused_get(data); >> elm_map_paused_set(data, EINA_TRUE); >> elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL); >> - elm_map_geo_region_show(data, 126.977969, 37.566535); >> - elm_map_zoom_set(data, 18); >> + elm_map_geo_region_show(data,7.325201, 48.526813); >> + elm_map_zoom_set(data, 12); >> elm_map_paused_set(data, b); >> } >> >> @@ -388,7 +388,7 @@ >> static void >> map_track_remove(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void >> *event_info __UNUSED__) >> { >> - elm_map_track_remove(track); >> + elm_map_track_remove(data, track); >> } >> >> static void >> @@ -631,7 +631,7 @@ >> menu = elm_menu_add(obj); >> item = elm_menu_item_add(menu, NULL, NULL, "Source", NULL, NULL); >> _populate(data, item); >> - elm_menu_item_add(menu, NULL, NULL, "Show Seoul", map_show_seoul, >> data); >> + elm_menu_item_add(menu, NULL, NULL, "Show Urmatt", map_show_urmatt, >> data); >> elm_menu_item_add(menu, NULL, NULL, "Bring Seoul", map_bring_seoul, >> data); >> elm_menu_item_add(menu, NULL, NULL, "Paused Set", map_paused_set, >> data); >> elm_menu_item_add(menu, NULL, NULL, "Paused Unset", >> map_paused_unset, data); >> >> Modified: trunk/elementary/src/lib/Elementary.h.in >> =================================================================== >> --- trunk/elementary/src/lib/Elementary.h.in 2011-06-26 13:59:11 UTC (rev >> 60702) >> +++ trunk/elementary/src/lib/Elementary.h.in 2011-06-26 17:36:18 UTC (rev >> 60703) >> @@ -4173,12 +4173,9 @@ >> EAPI void elm_map_wheel_disabled_set(Evas_Object *obj, >> Eina_Bool disabled) EINA_ARG_NONNULL(1); >> EAPI Eina_Bool elm_map_wheel_disabled_get(const Evas_Object >> *obj) EINA_ARG_NONNULL(1); >> #ifdef ELM_EMAP >> - EAPI Elm_Map_Track *elm_map_track_add(Evas_Object *obj, >> EMap_Route *emap) EINA_ARG_NONNULL(1); >> - EAPI EMap_Route *elm_map_track_emap_get(Elm_Map_Track >> *track) EINA_ARG_NONNULL(1); >> + EAPI Evas_Object *elm_map_track_add(Evas_Object *obj, >> EMap_Route *emap) EINA_ARG_NONNULL(1); >> #endif >> - EAPI void elm_map_track_remove(Elm_Map_Track *track) >> EINA_ARG_NONNULL(1); >> - EAPI void elm_map_track_color_set(Elm_Map_Track *track, >> int r, int g , int b, int a) EINA_ARG_NONNULL(1); >> - EAPI void elm_map_track_color_get(const Elm_Map_Track >> *track, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1); >> + EAPI void elm_map_track_remove(Evas_Object *obj, >> Evas_Object *route) EINA_ARG_NONNULL(1); >> >> /* smart callbacks called: >> * "clicked" - when image clicked >> @@ -4197,6 +4194,17 @@ >> * "scroll,drag,stop" - dragging the contents around has stopped >> */ >> >> + /* Route */ >> + EAPI Evas_Object *elm_route_add(Evas_Object *parent); >> +#ifdef ELM_EMAP >> + EAPI Eina_Bool elm_route_emap_set(Evas_Object *obj, EMap_Route *emap); >> +#endif >> + EAPI double elm_route_lon_min_get(Evas_Object *obj); >> + EAPI double elm_route_lat_min_get(Evas_Object *obj); >> + EAPI double elm_route_lon_max_get(Evas_Object *obj); >> + EAPI double elm_route_lat_max_get(Evas_Object *obj); >> + >> + >> /* panel */ >> typedef enum _Elm_Panel_Orient >> { >> >> Modified: trunk/elementary/src/lib/Makefile.am >> =================================================================== >> --- trunk/elementary/src/lib/Makefile.am 2011-06-26 13:59:11 UTC (rev >> 60702) >> +++ trunk/elementary/src/lib/Makefile.am 2011-06-26 17:36:18 UTC (rev >> 60703) >> @@ -82,6 +82,7 @@ >> elm_main.c \ >> elm_mapbuf.c \ >> elm_map.c \ >> +elm_route.c \ >> elm_menu.c \ >> elm_module.c \ >> elm_notify.c \ >> >> Modified: trunk/elementary/src/lib/elm_map.c >> =================================================================== >> --- trunk/elementary/src/lib/elm_map.c 2011-06-26 13:59:11 UTC (rev 60702) >> +++ trunk/elementary/src/lib/elm_map.c 2011-06-26 17:36:18 UTC (rev 60703) >> @@ -287,28 +287,6 @@ >> Ecore_Event_Handler *handler; >> }; >> >> -struct _Elm_Map_Track >> -{ >> - Widget_Data *wd; >> - >> -#ifdef ELM_EMAP >> - EMap_Route *emap; >> -#endif >> - >> - int x, y; >> - >> - Eina_List *nodes, *path; >> - >> - struct { >> - int r; >> - int g; >> - int b; >> - int a; >> - } color; >> - >> - Eina_Bool inbound : 1; >> -}; >> - >> struct _Grid_Item >> { >> Widget_Data *wd; >> @@ -505,14 +483,6 @@ >> ZOOM_METHOD_LAST >> } Zoom_Mode; >> >> -struct _Track_Dump >> -{ >> - Elm_Map_Track *track; >> - int idx; >> - double lon; >> - double lat; >> -}; >> - >> enum _Track_Xml_Attribute >> { >> TRACK_XML_NONE, >> @@ -834,72 +804,35 @@ >> #ifdef ELM_EMAP >> ELM_CHECK_WIDTYPE(obj, widtype); >> Widget_Data *wd = elm_widget_data_get(obj); >> - Eina_List *lr, *lp, *ln; >> - EMap_Route_Node *n; >> - Evas_Object *p; >> - Elm_Map_Track *t; >> - int nodes; >> - int x, y, rx, ry; >> + Eina_List *l; >> + Evas_Object *route; >> + int xmin, xmax, ymin, ymax; >> >> if (!wd) return; >> Evas_Coord size = pow(2.0, wd->zoom)*wd->tsize; >> >> - EINA_LIST_FOREACH(wd->track, lr, t) >> + EINA_LIST_FOREACH(wd->track, l, route) >> { >> - EINA_LIST_FOREACH(t->path, lp, p) >> - { >> - evas_object_polygon_points_clear(p); >> - } >> + elm_map_utils_convert_geo_into_coord(wd->obj, >> elm_route_lon_min_get(route), elm_route_lat_max_get(route), size, &xmin, >> &ymin); >> + elm_map_utils_convert_geo_into_coord(wd->obj, >> elm_route_lon_max_get(route), elm_route_lat_min_get(route), size, &xmax, >> &ymax); >> >> - evas_object_geometry_get(wd->rect, &rx, &ry, NULL, NULL); >> - nodes = eina_list_count(emap_route_nodes_get(t->emap)); >> + if( !(xmin < px && xmax < px) && !(xmin > px+ow && xmax > px+ow)) >> + { >> + if( !(ymin < py && ymax < py) && !(ymin > py+oh && ymax > py+oh)) >> + { >> + //display the route >> + evas_object_move(route, xmin - px + ox, ymin - py + oy); >> + evas_object_resize(route, xmax - xmin, ymax - ymin); >> >> - int i = 0; >> - EINA_LIST_FOREACH(emap_route_nodes_get(t->emap), ln, n) >> - { >> - if (t->inbound) >> - { >> - elm_map_utils_convert_geo_into_coord(wd->obj, >> emap_route_node_lon_get(n), emap_route_node_lat_get(n), size, &x, &y); >> - if ((x >= px - ow) && (x <= (px + ow*2)) && >> - (y >= py - oh) && (y <= (py + oh*2))) >> - { >> - x = x - px + rx; >> - y = y - py + ry; >> + evas_object_raise(route); >> + obj_rotate_zoom(obj, route); >> + evas_object_show(route); >> >> - p = eina_list_nth(t->path, i); >> - if(!p) >> - { >> - p = >> evas_object_line_add(evas_object_evas_get(t->wd->obj)); >> - evas_object_smart_member_add(p, t->wd->pan_smart); >> - t->path = eina_list_append(t->path, p); >> - } >> - >> - evas_object_line_xy_set(p, t->x, t->y, x, y); >> - >> - evas_object_color_set(p, t->color.r, t->color.g, >> t->color.b, t->color.a); >> - evas_object_raise(p); >> - obj_rotate_zoom(obj, p); >> - evas_object_show(p); >> - t->x = x; >> - t->y = y; >> - } >> - else t->inbound = EINA_FALSE; >> - } >> - else >> - { >> - elm_map_utils_convert_geo_into_coord(wd->obj, >> emap_route_node_lon_get(n), emap_route_node_lat_get(n), size, &x, &y); >> - if ((x >= px - ow) && (x <= (px + ow*2)) && >> - (y >= py - oh) && (y <= (py + oh*2))) >> - { >> - t->x = x - px + rx; >> - t->y = y - py + ry; >> - t->inbound = EINA_TRUE; >> - } >> - else t->inbound = EINA_FALSE; >> - } >> - i++; >> - } >> - t->inbound = EINA_FALSE; >> + continue; >> + } >> + } >> + //the route is not display >> + evas_object_hide(route); >> } >> #endif >> } >> @@ -2111,7 +2044,7 @@ >> Ecore_Event_Handler *h; >> Elm_Map_Route *r; >> Elm_Map_Name *na; >> - Elm_Map_Track *t; >> + Evas_Object *route; >> >> if (!wd) return; >> EINA_LIST_FREE(wd->groups_clas, group_clas) >> @@ -2174,18 +2107,9 @@ >> } >> } >> >> - EINA_LIST_FOREACH(wd->track, l, t) >> + EINA_LIST_FREE(wd->track, route) >> { >> - EINA_LIST_FREE(t->path, p) >> - { >> - evas_object_del(p); >> - } >> - >> - EINA_LIST_FREE(t->nodes, n) >> - { >> - if (n->pos.address) eina_stringshare_del(n->pos.address); >> - free(n); >> - } >> + evas_object_del(route); >> } >> >> if (wd->map) evas_map_free(wd->map); >> @@ -3363,7 +3287,7 @@ >> Evas_Coord rx, ry, rw, rh; >> Evas_Object *p; >> Elm_Map_Route *r; >> - Elm_Map_Track *t; >> + Evas_Object *route; >> int z = 0, zoom_changed = 0, started = 0; >> >> if ((!wd) || (!wd->src) || (wd->zoom_animator)) return; >> @@ -3392,15 +3316,9 @@ >> } >> } >> >> - EINA_LIST_FOREACH(wd->track, l, t) >> + EINA_LIST_FOREACH(wd->track, l, route) >> { >> - if (t) >> - { >> - EINA_LIST_FOREACH(t->path, l, p) >> - { >> - evas_object_polygon_points_clear(p); >> - } >> - } >> + evas_object_hide(route); >> } >> >> if (wd->mode != ELM_MAP_ZOOM_MODE_MANUAL) >> @@ -5264,40 +5182,25 @@ >> * @param obj The map object >> * @param emap the emap object >> * >> - * @return The Track object >> + * @return The Route object. This is a elm object of type Elm_Route >> * >> * @ingroup Map >> */ >> -EAPI Elm_Map_Track * >> +EAPI Evas_Object * >> elm_map_track_add(Evas_Object *obj, EMap_Route *emap) >> { >> ELM_CHECK_WIDTYPE(obj, widtype) NULL; >> Widget_Data *wd = elm_widget_data_get(obj); >> - FILE *f; >> >> if (!wd) return EINA_FALSE; >> >> - Elm_Map_Track *track = ELM_NEW(Elm_Map_Track); >> - if (!track) return NULL; >> - track->wd = wd; >> - track->inbound = EINA_FALSE; >> - track->color.r = 0; >> - track->color.g = 0; >> - track->color.b = 255; >> - track->color.a = 255; >> - track->emap = emap; >> + Evas_Object *route = elm_route_add(obj); >> + elm_route_emap_set(route, emap); >> + wd->track = eina_list_append(wd->track, route); >> >> - wd->track = eina_list_append(wd->track, track); >> - >> - return track; >> + return route; >> } >> >> - >> -EMap_Route >> -*elm_map_track_emap_get(Elm_Map_Track *track) >> -{ >> - return track->emap; >> -} >> #endif >> >> /** >> @@ -5309,75 +5212,23 @@ >> */ >> >> EAPI void >> -elm_map_track_remove(Elm_Map_Track *track) >> +elm_map_track_remove(Evas_Object *obj, Evas_Object *route) >> { >> - EINA_SAFETY_ON_NULL_RETURN(track); >> + ELM_CHECK_WIDTYPE(obj, widtype) ; >> + Widget_Data *wd = elm_widget_data_get(obj); >> >> - Path_Node *n; >> - Evas_Object *p; >> + if (!wd) return ; >> >> - EINA_LIST_FREE(track->path, p) >> - { >> - evas_object_del(p); >> - } >> - >> - EINA_LIST_FREE(track->nodes, n) >> - { >> - if (n->pos.address) eina_stringshare_del(n->pos.address); >> - free(n); >> - } >> + wd->track = eina_list_remove(wd->track, route); >> + evas_object_del(route); >> } >> >> -/** >> - * Set the option used for the background color >> - * >> - * @param track The track object >> - * @param r >> - * @param g >> - * @param b >> - * @param a >> - * >> - * This sets the color used for the track >> - * >> - * @ingroup Map >> - */ >> -EAPI void >> -elm_map_track_color_set(Elm_Map_Track *track, int r, int g , int b, int a) >> -{ >> - EINA_SAFETY_ON_NULL_RETURN(track); >> - track->color.r = r; >> - track->color.g = g; >> - track->color.b = b; >> - track->color.a = a; >> -} >> - >> -/** >> - * Get the option used for the background color >> - * >> - * @param track The track object >> - * @param r >> - * @param g >> - * @param b >> - * @param a >> - * >> - * @ingroup Map >> - */ >> -EAPI void >> -elm_map_track_color_get(const Elm_Map_Track *track, int *r, int *g , int >> *b, int *a) >> -{ >> - EINA_SAFETY_ON_NULL_RETURN(track); >> - if (r) *r = track->color.r; >> - if (g) *g = track->color.g; >> - if (b) *b = track->color.b; >> - if (a) *a = track->color.a; >> -} >> - >> static char * >> _mapnik_url_cb(Evas_Object *obj __UNUSED__, int x, int y, int zoom) >> { >> char buf[PATH_MAX]; >> snprintf(buf, sizeof(buf), "http://tile.openstreetmap.org/%d/%d/%d.png", >> - zoom, x, y); >> + zoom, x, y); >> return strdup(buf); >> } >> >> >> >> ------------------------------------------------------------------------------ >> All of the data generated in your IT infrastructure is seriously valuable. >> Why? It contains a definitive record of application performance, security >> threats, fraudulent activity, and more. Splunk takes this data and makes >> sense of it. IT sense. And common sense. >> http://p.sf.net/sfu/splunk-d2d-c2 >> _______________________________________________ >> enlightenment-svn mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn >> > ------------------------------------------------------------------------------ All of the data generated in your IT infrastructure is seriously valuable. Why? It contains a definitive record of application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-d2d-c2 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
