forked from enlightenment/efl
parent
8cf97b3ef8
commit
6b88bee7e5
|
@ -420,6 +420,36 @@ if test "x$want_elementary_eweather" = "xyes" -a "x$have_elementary_eweather" =
|
||||||
fi
|
fi
|
||||||
AC_SUBST(ELM_EWEATHER_DEF)
|
AC_SUBST(ELM_EWEATHER_DEF)
|
||||||
|
|
||||||
|
ELM_EMAP_DEF="#undef"
|
||||||
|
have_elementary_emap="no"
|
||||||
|
want_elementary_emap="auto"
|
||||||
|
AC_ARG_ENABLE([emap],
|
||||||
|
[AC_HELP_STRING([--disable-emap], [disable emap support. @<:@default=detect@:>@])],
|
||||||
|
[want_elementary_emap=$enableval], [])
|
||||||
|
|
||||||
|
if test "x$want_elementary_emap" != "xno"; then
|
||||||
|
PKG_CHECK_MODULES([ELEMENTARY_EMAP],
|
||||||
|
[
|
||||||
|
emap
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_DEFINE(HAVE_ELEMENTARY_EMAP, 1, [EMap support for Elementary])
|
||||||
|
have_elementary_emap="yes"
|
||||||
|
ELM_EMAP_DEF="#define"
|
||||||
|
requirement_elm="emap ${requirement_elm}"
|
||||||
|
],
|
||||||
|
[have_elementary_emap="no"]
|
||||||
|
)
|
||||||
|
else
|
||||||
|
have_elementary_emap="no"
|
||||||
|
fi
|
||||||
|
if test "x$want_elementary_emap" = "xyes" -a "x$have_elementary_emap" = "xno"; then
|
||||||
|
AC_MSG_ERROR([Emap support requested, but no emap found by pkg-config.])
|
||||||
|
fi
|
||||||
|
AC_SUBST(ELM_EMAP_DEF)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ELM_ETHUMB_DEF="#undef"
|
ELM_ETHUMB_DEF="#undef"
|
||||||
have_elementary_ethumb="no"
|
have_elementary_ethumb="no"
|
||||||
want_elementary_ethumb="auto"
|
want_elementary_ethumb="auto"
|
||||||
|
@ -559,6 +589,7 @@ echo " Features:"
|
||||||
echo " EDBus..................: ${have_elementary_edbus}"
|
echo " EDBus..................: ${have_elementary_edbus}"
|
||||||
echo " EFreet.................: ${have_elementary_efreet}"
|
echo " EFreet.................: ${have_elementary_efreet}"
|
||||||
echo " EWeather...............: ${have_elementary_eweather}"
|
echo " EWeather...............: ${have_elementary_eweather}"
|
||||||
|
echo " EMap...................: ${have_elementary_emap}"
|
||||||
echo " Ethumb.................: ${have_elementary_ethumb}"
|
echo " Ethumb.................: ${have_elementary_ethumb}"
|
||||||
echo " Quick Launch...........: ${have_fork}"
|
echo " Quick Launch...........: ${have_fork}"
|
||||||
echo " eio....................: ${have_eio}"
|
echo " eio....................: ${have_eio}"
|
||||||
|
|
|
@ -59,7 +59,12 @@ my_map_gpx_fileselector_done(void *data, Evas_Object *obj __UNUSED__, void *even
|
||||||
if (selected)
|
if (selected)
|
||||||
{
|
{
|
||||||
printf("Selected file: %s\n", selected);
|
printf("Selected file: %s\n", selected);
|
||||||
track = elm_map_track_add(data, selected);
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
|
EMap_Route *emap = emap_route_gpx_new(selected);
|
||||||
|
track = elm_map_track_add(data, emap);
|
||||||
|
#else
|
||||||
|
printf("libEMap is required !\n");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
evas_object_del(fs_win);
|
evas_object_del(fs_win);
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,10 @@ Pants
|
||||||
@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
|
@ELM_ALLOCA_H_DEF@ ELM_ALLOCA_H
|
||||||
@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
|
@ELM_LIBINTL_H_DEF@ ELM_LIBINTL_H
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
# include "elementary_config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Standard headers for standard system calls etc. */
|
/* Standard headers for standard system calls etc. */
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -164,6 +168,10 @@ Pants
|
||||||
# include <Ethumb_Client.h>
|
# include <Ethumb_Client.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
|
# include <EMap.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef EAPI
|
#ifdef EAPI
|
||||||
# undef EAPI
|
# undef EAPI
|
||||||
#endif
|
#endif
|
||||||
|
@ -4161,7 +4169,9 @@ EAPI Elm_Genlist_Item *elm_genlist_item_sorted_insert(Evas_Object *obj, const El
|
||||||
EAPI void elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy) EINA_ARG_NONNULL(1, 2, 3, 4);
|
EAPI void elm_map_rotate_get(const Evas_Object *obj, double *degree, Evas_Coord *cx, Evas_Coord *cy) EINA_ARG_NONNULL(1, 2, 3, 4);
|
||||||
EAPI void elm_map_wheel_disabled_set(Evas_Object *obj, Eina_Bool disabled) EINA_ARG_NONNULL(1);
|
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);
|
EAPI Eina_Bool elm_map_wheel_disabled_get(const Evas_Object *obj) EINA_ARG_NONNULL(1);
|
||||||
EAPI Elm_Map_Track *elm_map_track_add(Evas_Object *obj, const char *gpx_file) EINA_ARG_NONNULL(1);
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
|
EAPI Elm_Map_Track *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_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_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_color_get(const Elm_Map_Track *track, int *r, int *g , int *b, int *a) EINA_ARG_NONNULL(1);
|
||||||
|
|
|
@ -21,6 +21,7 @@ AM_CPPFLAGS = \
|
||||||
@ELEMENTARY_EDBUS_CFLAGS@ \
|
@ELEMENTARY_EDBUS_CFLAGS@ \
|
||||||
@ELEMENTARY_EFREET_CFLAGS@ \
|
@ELEMENTARY_EFREET_CFLAGS@ \
|
||||||
@ELEMENTARY_ETHUMB_CFLAGS@ \
|
@ELEMENTARY_ETHUMB_CFLAGS@ \
|
||||||
|
@ELEMENTARY_EMAP_CFLAGS@ \
|
||||||
@EVIL_CFLAGS@ \
|
@EVIL_CFLAGS@ \
|
||||||
@EFL_PTHREAD_CFLAGS@
|
@EFL_PTHREAD_CFLAGS@
|
||||||
|
|
||||||
|
@ -130,6 +131,7 @@ libelementary_la_LIBADD = \
|
||||||
@ELEMENTARY_EDBUS_LIBS@ \
|
@ELEMENTARY_EDBUS_LIBS@ \
|
||||||
@ELEMENTARY_EFREET_LIBS@ \
|
@ELEMENTARY_EFREET_LIBS@ \
|
||||||
@ELEMENTARY_ETHUMB_LIBS@ \
|
@ELEMENTARY_ETHUMB_LIBS@ \
|
||||||
|
@ELEMENTARY_EMAP_LIBS@ \
|
||||||
@EVIL_LIBS@ \
|
@EVIL_LIBS@ \
|
||||||
@EFL_PTHREAD_LIBS@
|
@EFL_PTHREAD_LIBS@
|
||||||
libelementary_la_LDFLAGS = \
|
libelementary_la_LDFLAGS = \
|
||||||
|
|
|
@ -608,6 +608,10 @@ elm_quicklaunch_init(int argc,
|
||||||
|
|
||||||
eet_init();
|
eet_init();
|
||||||
ecore_init();
|
ecore_init();
|
||||||
|
|
||||||
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
|
emap_init();
|
||||||
|
#endif
|
||||||
ecore_app_args_set(argc, (const char **)argv);
|
ecore_app_args_set(argc, (const char **)argv);
|
||||||
|
|
||||||
memset(_elm_policies, 0, sizeof(_elm_policies));
|
memset(_elm_policies, 0, sizeof(_elm_policies));
|
||||||
|
@ -745,6 +749,11 @@ elm_quicklaunch_shutdown(void)
|
||||||
_elm_unneed_e_dbus();
|
_elm_unneed_e_dbus();
|
||||||
_elm_unneed_ethumb();
|
_elm_unneed_ethumb();
|
||||||
ecore_file_shutdown();
|
ecore_file_shutdown();
|
||||||
|
|
||||||
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
|
emap_shutdown();
|
||||||
|
#endif
|
||||||
|
|
||||||
ecore_shutdown();
|
ecore_shutdown();
|
||||||
eet_shutdown();
|
eet_shutdown();
|
||||||
|
|
||||||
|
|
|
@ -291,22 +291,13 @@ struct _Elm_Map_Track
|
||||||
{
|
{
|
||||||
Widget_Data *wd;
|
Widget_Data *wd;
|
||||||
|
|
||||||
Path_Node *n;
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
Path_Waypoint *w;
|
EMap_Route *emap;
|
||||||
|
#endif
|
||||||
|
|
||||||
int x, y;
|
int x, y;
|
||||||
double flon, flat, tlon, tlat;
|
|
||||||
|
|
||||||
Eina_List *nodes, *path;
|
Eina_List *nodes, *path;
|
||||||
Eina_List *waypoint;
|
|
||||||
|
|
||||||
struct {
|
|
||||||
int node_count;
|
|
||||||
int waypoint_count;
|
|
||||||
const char *nodes;
|
|
||||||
const char *waypoints;
|
|
||||||
double distance; /* unit : km */
|
|
||||||
} info;
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
int r;
|
int r;
|
||||||
|
@ -840,15 +831,15 @@ obj_rotate_zoom(void *data, Evas_Object *obj)
|
||||||
static void
|
static void
|
||||||
track_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py, Evas_Coord ox __UNUSED__, Evas_Coord oy __UNUSED__, Evas_Coord ow, Evas_Coord oh)
|
track_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py, Evas_Coord ox __UNUSED__, Evas_Coord oy __UNUSED__, Evas_Coord ow, Evas_Coord oh)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
ELM_CHECK_WIDTYPE(obj, widtype);
|
ELM_CHECK_WIDTYPE(obj, widtype);
|
||||||
Widget_Data *wd = elm_widget_data_get(obj);
|
Widget_Data *wd = elm_widget_data_get(obj);
|
||||||
Eina_List *lr, *lp, *ln;
|
Eina_List *lr, *lp, *ln;
|
||||||
Path_Node *n;
|
EMap_Route_Node *n;
|
||||||
Evas_Object *p;
|
Evas_Object *p;
|
||||||
Elm_Map_Track *t;
|
Elm_Map_Track *t;
|
||||||
int nodes;
|
int nodes;
|
||||||
int x, y, rx, ry;
|
int x, y, rx, ry;
|
||||||
double a;
|
|
||||||
|
|
||||||
if (!wd) return;
|
if (!wd) return;
|
||||||
Evas_Coord size = pow(2.0, wd->zoom)*wd->tsize;
|
Evas_Coord size = pow(2.0, wd->zoom)*wd->tsize;
|
||||||
|
@ -861,35 +852,29 @@ track_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py,
|
||||||
}
|
}
|
||||||
|
|
||||||
evas_object_geometry_get(wd->rect, &rx, &ry, NULL, NULL);
|
evas_object_geometry_get(wd->rect, &rx, &ry, NULL, NULL);
|
||||||
nodes = eina_list_count(t->nodes);
|
nodes = eina_list_count(emap_route_nodes_get(t->emap));
|
||||||
|
|
||||||
EINA_LIST_FOREACH(t->nodes, ln, n)
|
int i = 0;
|
||||||
|
EINA_LIST_FOREACH(emap_route_nodes_get(t->emap), ln, n)
|
||||||
{
|
{
|
||||||
if (t->inbound)
|
if (t->inbound)
|
||||||
{
|
{
|
||||||
elm_map_utils_convert_geo_into_coord(wd->obj, n->pos.lon, n->pos.lat, size, &x, &y);
|
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)) &&
|
if ((x >= px - ow) && (x <= (px + ow*2)) &&
|
||||||
(y >= py - oh) && (y <= (py + oh*2)))
|
(y >= py - oh) && (y <= (py + oh*2)))
|
||||||
{
|
{
|
||||||
x = x - px + rx;
|
x = x - px + rx;
|
||||||
y = y - py + ry;
|
y = y - py + ry;
|
||||||
|
|
||||||
p = eina_list_nth(t->path, n->idx);
|
p = eina_list_nth(t->path, i);
|
||||||
a = (double)(y - t->y) / (double)(x - t->x);
|
if(!p)
|
||||||
if ((abs(a) >= 1) || (t->x == x))
|
{
|
||||||
{
|
p = evas_object_line_add(evas_object_evas_get(t->wd->obj));
|
||||||
evas_object_polygon_point_add(p, t->x - 3, t->y);
|
evas_object_smart_member_add(p, t->wd->pan_smart);
|
||||||
evas_object_polygon_point_add(p, t->x + 3, t->y);
|
t->path = eina_list_append(t->path, p);
|
||||||
evas_object_polygon_point_add(p, x + 3, y);
|
}
|
||||||
evas_object_polygon_point_add(p, x - 3, y);
|
|
||||||
}
|
evas_object_line_xy_set(p, t->x, t->y, x, y);
|
||||||
else
|
|
||||||
{
|
|
||||||
evas_object_polygon_point_add(p, t->x, t->y - 3);
|
|
||||||
evas_object_polygon_point_add(p, t->x, t->y + 3);
|
|
||||||
evas_object_polygon_point_add(p, x, y + 3);
|
|
||||||
evas_object_polygon_point_add(p, x, y - 3);
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_object_color_set(p, t->color.r, t->color.g, t->color.b, t->color.a);
|
evas_object_color_set(p, t->color.r, t->color.g, t->color.b, t->color.a);
|
||||||
evas_object_raise(p);
|
evas_object_raise(p);
|
||||||
|
@ -902,7 +887,7 @@ track_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
elm_map_utils_convert_geo_into_coord(wd->obj, n->pos.lon, n->pos.lat, size, &x, &y);
|
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)) &&
|
if ((x >= px - ow) && (x <= (px + ow*2)) &&
|
||||||
(y >= py - oh) && (y <= (py + oh*2)))
|
(y >= py - oh) && (y <= (py + oh*2)))
|
||||||
{
|
{
|
||||||
|
@ -912,9 +897,11 @@ track_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py,
|
||||||
}
|
}
|
||||||
else t->inbound = EINA_FALSE;
|
else t->inbound = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
t->inbound = EINA_FALSE;
|
t->inbound = EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
static void
|
static void
|
||||||
route_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py, Evas_Coord ox __UNUSED__, Evas_Coord oy __UNUSED__, Evas_Coord ow, Evas_Coord oh)
|
route_place(Evas_Object *obj, Grid *g __UNUSED__, Evas_Coord px, Evas_Coord py, Evas_Coord ox __UNUSED__, Evas_Coord oy __UNUSED__, Evas_Coord ow, Evas_Coord oh)
|
||||||
|
@ -3211,66 +3198,6 @@ _utils_convert_name(const Evas_Object *obj, int method, char *address, double lo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
cb_dump_track_attr(void *data, const char *key, const char *value)
|
|
||||||
{
|
|
||||||
Track_Dump *dump = data;
|
|
||||||
Evas_Object *path;
|
|
||||||
double d;
|
|
||||||
|
|
||||||
if (!dump) return EINA_FALSE;
|
|
||||||
if (!strcmp(GPX_LON, key))
|
|
||||||
{
|
|
||||||
sscanf(value, "%lf", &d);
|
|
||||||
dump->lon = d;
|
|
||||||
}
|
|
||||||
else if (!strcmp(GPX_LAT, key))
|
|
||||||
{
|
|
||||||
sscanf(value, "%lf", &d);
|
|
||||||
dump->lat = d;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((dump->lon) && (dump->lat))
|
|
||||||
{
|
|
||||||
Path_Node *n = ELM_NEW(Path_Node);
|
|
||||||
if (n)
|
|
||||||
{
|
|
||||||
n->wd = dump->track->wd;
|
|
||||||
n->pos.lon = dump->lon;
|
|
||||||
n->pos.lat = dump->lat;
|
|
||||||
n->idx = dump->idx++;
|
|
||||||
INF("[%d] %lf:%lf", n->idx, dump->lon, dump->lat);
|
|
||||||
n->pos.address = NULL;
|
|
||||||
dump->track->nodes = eina_list_append(dump->track->nodes, n);
|
|
||||||
|
|
||||||
path = evas_object_polygon_add(evas_object_evas_get(dump->track->wd->obj));
|
|
||||||
evas_object_smart_member_add(path, dump->track->wd->pan_smart);
|
|
||||||
dump->track->path = eina_list_append(dump->track->path, path);
|
|
||||||
dump->lon = 0.0;
|
|
||||||
dump->lat = 0.0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
cb_track_dump(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset __UNUSED__, unsigned length __UNUSED__)
|
|
||||||
{
|
|
||||||
Track_Dump *d = data;
|
|
||||||
|
|
||||||
if (!d) return EINA_FALSE;
|
|
||||||
if (type == EINA_SIMPLE_XML_OPEN)
|
|
||||||
{
|
|
||||||
if (!strncmp(GPX_COORDINATES, content, strlen(GPX_COORDINATES)))
|
|
||||||
{
|
|
||||||
const char *tags = eina_simple_xml_tag_attributes_find(content, length);
|
|
||||||
eina_simple_xml_attributes_parse(tags, length - (tags - content), cb_dump_track_attr, d);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return EINA_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int idnum = 1;
|
static int idnum = 1;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5042,6 +4969,7 @@ elm_map_route_add(Evas_Object *obj,
|
||||||
return route;
|
return route;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a route from the map
|
* Remove a route from the map
|
||||||
*
|
*
|
||||||
|
@ -5329,18 +5257,19 @@ elm_map_wheel_disabled_get(const Evas_Object *obj)
|
||||||
return wd->wheel_disabled;
|
return wd->wheel_disabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_ELEMENTARY_EMAP
|
||||||
/**
|
/**
|
||||||
* Add a track on the map
|
* Add a track on the map
|
||||||
*
|
*
|
||||||
* @param obj The map object
|
* @param obj The map object
|
||||||
* @param gpx_file the name of the gpx file
|
* @param emap the emap object
|
||||||
*
|
*
|
||||||
* @return The Track object
|
* @return The Track object
|
||||||
*
|
*
|
||||||
* @ingroup Map
|
* @ingroup Map
|
||||||
*/
|
*/
|
||||||
EAPI Elm_Map_Track *
|
EAPI Elm_Map_Track *
|
||||||
elm_map_track_add(Evas_Object *obj, const char *gpx_file)
|
elm_map_track_add(Evas_Object *obj, EMap_Route *emap)
|
||||||
{
|
{
|
||||||
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||||
Widget_Data *wd = elm_widget_data_get(obj);
|
Widget_Data *wd = elm_widget_data_get(obj);
|
||||||
|
@ -5356,52 +5285,13 @@ elm_map_track_add(Evas_Object *obj, const char *gpx_file)
|
||||||
track->color.g = 0;
|
track->color.g = 0;
|
||||||
track->color.b = 255;
|
track->color.b = 255;
|
||||||
track->color.a = 255;
|
track->color.a = 255;
|
||||||
|
track->emap = emap;
|
||||||
Track_Dump dump = {track, 0, 0.0, 0.0};
|
|
||||||
if (!wd->gpx_file) wd->gpx_file = eina_stringshare_add(gpx_file);
|
|
||||||
else eina_stringshare_replace(&wd->gpx_file, gpx_file);
|
|
||||||
|
|
||||||
f = fopen(gpx_file, "rb");
|
|
||||||
if (f)
|
|
||||||
{
|
|
||||||
long sz;
|
|
||||||
|
|
||||||
fseek(f, 0, SEEK_END);
|
|
||||||
sz = ftell(f);
|
|
||||||
if (sz > 0)
|
|
||||||
{
|
|
||||||
char *buf;
|
|
||||||
|
|
||||||
fseek(f, 0, SEEK_SET);
|
|
||||||
buf = malloc(sz);
|
|
||||||
if (buf)
|
|
||||||
{
|
|
||||||
if (fread(buf, 1, sz, f))
|
|
||||||
{
|
|
||||||
eina_simple_xml_parse(buf, sz, EINA_TRUE, cb_track_dump, &dump);
|
|
||||||
free(buf);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(f);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ERR("can't open the file %s", gpx_file);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
DBG("[Done] Load GPX file %s", gpx_file);
|
|
||||||
|
|
||||||
wd->track = eina_list_append(wd->track, track);
|
wd->track = eina_list_append(wd->track, track);
|
||||||
if (wd->grids)
|
|
||||||
{
|
|
||||||
Evas_Coord ox, oy, ow, oh;
|
|
||||||
evas_object_geometry_get(wd->obj, &ox, &oy, &ow, &oh);
|
|
||||||
track_place(wd->obj, eina_list_data_get(wd->grids), wd->pan_x, wd->pan_y, ox, oy, ow, oh);
|
|
||||||
}
|
|
||||||
|
|
||||||
return track;
|
return track;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove a track from the map
|
* Remove a track from the map
|
||||||
|
|
Loading…
Reference in New Issue