#include "elm_widget_map.h"
#include "elm_interface_scrollable.h"
-EAPI Eo_Op ELM_OBJ_MAP_PAN_BASE_ID = EO_NOOP;
-
#define MY_PAN_CLASS ELM_OBJ_MAP_PAN_CLASS
#define MY_PAN_CLASS_NAME "Elm_Map_Pan"
#define MY_PAN_CLASS_NAME_LEGACY "elm_map_pan"
-EAPI Eo_Op ELM_OBJ_MAP_BASE_ID = EO_NOOP;
-
#define MY_CLASS ELM_OBJ_MAP_CLASS
#define MY_CLASS_NAME "Elm_Map"
};
static void
-_edj_overlay_size_get(Elm_Map_Smart_Data *sd,
+_edj_overlay_size_get(Elm_Map_Data *sd,
Evas_Coord *w,
Evas_Coord *h)
{
}
static void
-_obj_rotate(Elm_Map_Smart_Data *sd,
+_obj_rotate(Elm_Map_Data *sd,
Evas_Object *obj)
{
Evas_Coord w, h, ow, oh;
}
static void
-_coord_to_region_convert(Elm_Map_Smart_Data *sd,
+_coord_to_region_convert(Elm_Map_Data *sd,
Evas_Coord x,
Evas_Coord y,
Evas_Coord size,
}
static void
-_region_to_coord_convert(Elm_Map_Smart_Data *sd,
+_region_to_coord_convert(Elm_Map_Data *sd,
double lon,
double lat,
Evas_Coord size,
}
static void
-_viewport_coord_get(Elm_Map_Smart_Data *sd,
+_viewport_coord_get(Elm_Map_Data *sd,
Evas_Coord *vx,
Evas_Coord *vy,
Evas_Coord *vw,
// Map coordinates to canvas geometry without rotate
static void
-_coord_to_canvas_no_rotation(Elm_Map_Smart_Data *sd,
+_coord_to_canvas_no_rotation(Elm_Map_Data *sd,
Evas_Coord x,
Evas_Coord y,
Evas_Coord *xx,
// Map coordinates to canvas geometry
static void
-_coord_to_canvas(Elm_Map_Smart_Data *sd,
+_coord_to_canvas(Elm_Map_Data *sd,
Evas_Coord x,
Evas_Coord y,
Evas_Coord *xx,
// Canvas geometry to map coordinates
static void
-_canvas_to_coord(Elm_Map_Smart_Data *sd,
+_canvas_to_coord(Elm_Map_Data *sd,
Evas_Coord x,
Evas_Coord y,
Evas_Coord *xx,
}
static void
-_grid_place(Elm_Map_Smart_Data *sd)
+_grid_place(Elm_Map_Data *sd)
{
Eina_List *l;
Grid *g;
}
static void
-_grid_all_create(Elm_Map_Smart_Data *sd)
+_grid_all_create(Elm_Map_Data *sd)
{
int zoom;
}
static void
-_grid_all_clear(Elm_Map_Smart_Data *sd)
+_grid_all_clear(Elm_Map_Data *sd)
{
Grid *g;
}
static void
-_track_place(Elm_Map_Smart_Data *sd)
+_track_place(Elm_Map_Data *sd)
{
#ifdef ELM_EMAP
Eina_List *l;
}
static void
-_calc_job(Elm_Map_Smart_Data *sd)
+_calc_job(Elm_Map_Data *sd)
{
if (sd->calc_job.region_show_bring_in)
{
}
static void
-_smooth_update(Elm_Map_Smart_Data *sd)
+_smooth_update(Elm_Map_Data *sd)
{
Eina_List *l;
Grid *g;
}
static void
-_zoom_do(Elm_Map_Smart_Data *sd,
+_zoom_do(Elm_Map_Data *sd,
double zoom)
{
Evas_Coord vx, vy, vw, vh;
}
static void
-_zoom_with_animation(Elm_Map_Smart_Data *sd,
+_zoom_with_animation(Elm_Map_Data *sd,
double zoom,
int cnt)
{
}
static Overlay_Group *
-_overlay_group_new(Elm_Map_Smart_Data *sd)
+_overlay_group_new(Elm_Map_Data *sd)
{
Overlay_Group *grp;
Color c = {0x90, 0xee, 0x90, 0xff};
}
static Overlay_Class *
-_overlay_class_new(Elm_Map_Smart_Data *sd)
+_overlay_class_new(Elm_Map_Data *sd)
{
Overlay_Class *ovl;
}
static Overlay_Route *
-_overlay_route_new(Elm_Map_Smart_Data *sd,
+_overlay_route_new(Elm_Map_Data *sd,
const Elm_Map_Route *route,
Color c)
{
_overlay_line_show(Overlay_Line *ovl)
{
Evas_Coord fx, fy, tx, ty;
- Elm_Map_Smart_Data *sd = ovl->wsd;
+ Elm_Map_Data *sd = ovl->wsd;
_region_to_coord_convert(sd, ovl->flon, ovl->flat, sd->size.w, &fx, &fy);
_region_to_coord_convert(sd, ovl->tlon, ovl->tlat, sd->size.w, &tx, &ty);
}
static Overlay_Line *
-_overlay_line_new(Elm_Map_Smart_Data *sd,
+_overlay_line_new(Elm_Map_Data *sd,
double flon,
double flat,
double tlon,
{
Eina_List *l;
Region *r;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(ovl);
}
static Overlay_Polygon *
-_overlay_polygon_new(Elm_Map_Smart_Data *sd, Color c)
+_overlay_polygon_new(Elm_Map_Data *sd, Color c)
{
Overlay_Polygon *ovl;
{
double r;
Evas_Coord x, y;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(ovl);
}
static Overlay_Circle *
-_overlay_circle_new(Elm_Map_Smart_Data *sd,
+_overlay_circle_new(Elm_Map_Data *sd,
double lon,
double lat,
double radius,
char buf[32];
double meter;
double lon, lat;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(ovl);
}
static Overlay_Scale *
-_overlay_scale_new(Elm_Map_Smart_Data *sd,
+_overlay_scale_new(Elm_Map_Data *sd,
Evas_Coord x,
Evas_Coord y,
Color c)
static void
_overlay_show(Elm_Map_Overlay *overlay)
{
- Elm_Map_Smart_Data *sd = overlay->wsd;
+ Elm_Map_Data *sd = overlay->wsd;
if (overlay->paused) return;
if ((overlay->grp) && (overlay->grp->klass) && (overlay->grp->klass->paused))
}
static void
-_overlay_place(Elm_Map_Smart_Data *sd)
+_overlay_place(Elm_Map_Data *sd)
{
Eina_List *l, *ll;
Elm_Map_Overlay *overlay;
int status)
{
Elm_Map_Route *route;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(file);
int status)
{
Elm_Map_Name *name;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(file);
int status)
{
Elm_Map_Name_List *name_list;
- Elm_Map_Smart_Data *sd;
+ Elm_Map_Data *sd;
EINA_SAFETY_ON_NULL_RETURN(data);
EINA_SAFETY_ON_NULL_RETURN(file);
}
static void
-_source_tile_set(Elm_Map_Smart_Data *sd,
+_source_tile_set(Elm_Map_Data *sd,
const char *source_name)
{
Source_Tile *s;
}
static void
-_source_route_set(Elm_Map_Smart_Data *sd,
+_source_route_set(Elm_Map_Data *sd,
const char *source_name)
{
Source_Route *s;
}
static void
-_source_name_set(Elm_Map_Smart_Data *sd,
+_source_name_set(Elm_Map_Data *sd,
const char *source_name)
{
Source_Name *s;
void *data)
{
const char *file;
- Elm_Map_Smart_Data *sd = data;
+ Elm_Map_Data *sd = data;
Elm_Map_Module_Source_Name_Func name_cb;
Elm_Map_Module_Tile_Url_Func tile_url_cb;
}
static void
-_source_all_unload(Elm_Map_Smart_Data *sd)
+_source_all_unload(Elm_Map_Data *sd)
{
int idx = 0;
Source_Tile *s;
}
static void
-_source_all_load(Elm_Map_Smart_Data *sd)
+_source_all_load(Elm_Map_Data *sd)
{
Source_Tile *src_tile;
Source_Route *src_route;
}
static void
-_zoom_mode_set(Elm_Map_Smart_Data *sd, double zoom)
+_zoom_mode_set(Elm_Map_Data *sd, double zoom)
{
EINA_SAFETY_ON_NULL_RETURN(sd);
}
static void
-_region_show_bring_in(Elm_Map_Smart_Data *wsd, double lon, double lat, Eina_Bool bring_in)
+_region_show_bring_in(Elm_Map_Data *wsd, double lon, double lat, Eina_Bool bring_in)
{
int x, y, w, h;
}
static void
-_overlays_show(Elm_Map_Smart_Data *sd, Eina_List *overlays)
+_overlays_show(Elm_Map_Data *sd, Eina_List *overlays)
{
double max_lon, min_lon, max_lat, min_lat, lon, lat;
int zoom, zoom_max;
_region_show_bring_in(sd, lon, lat, EINA_FALSE);
}
-static void
-_elm_map_pan_smart_pos_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_pan_elm_pan_pos_set(Eo *obj, Elm_Map_Pan_Data *psd, Evas_Coord x, Evas_Coord y)
{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- Elm_Map_Pan_Smart_Data *psd = _pd;
-
if ((x == psd->wsd->pan_x) && (y == psd->wsd->pan_y)) return;
psd->wsd->pan_x = x;
evas_object_smart_changed(obj);
}
-static void
-_elm_map_pan_smart_pos_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_pan_elm_pan_pos_get(Eo *obj EINA_UNUSED, Elm_Map_Pan_Data *psd, Evas_Coord *x, Evas_Coord *y)
{
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
- Elm_Map_Pan_Smart_Data *psd = _pd;
-
if (x) *x = psd->wsd->pan_x;
if (y) *y = psd->wsd->pan_y;
}
-static void
-_elm_map_pan_smart_pos_max_get(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_pan_elm_pan_pos_max_get(Eo *obj, Elm_Map_Pan_Data *psd, Evas_Coord *x, Evas_Coord *y)
{
Evas_Coord ow, oh;
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
-
- Elm_Map_Pan_Smart_Data *psd = _pd;
evas_object_geometry_get(obj, NULL, NULL, &ow, &oh);
ow = psd->wsd->size.w - ow;
if (y) *y = oh;
}
-static void
-_elm_map_pan_smart_pos_min_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_map_pan_elm_pan_pos_min_get(Eo *obj EINA_UNUSED, Elm_Map_Pan_Data *_pd EINA_UNUSED, Evas_Coord *x, Evas_Coord *y)
{
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
if (x) *x = 0;
if (y) *y = 0;
}
-static void
-_elm_map_pan_smart_content_size_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_pan_elm_pan_content_size_get(Eo *obj EINA_UNUSED, Elm_Map_Pan_Data *psd, Evas_Coord *w, Evas_Coord *h)
{
- Evas_Coord *w = va_arg(*list, Evas_Coord *);
- Evas_Coord *h = va_arg(*list, Evas_Coord *);
- Elm_Map_Pan_Smart_Data *psd = _pd;
-
if (w) *w = psd->wsd->size.w;
if (h) *h = psd->wsd->size.h;
}
-static void
-_elm_map_pan_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_pan_evas_smart_resize(Eo *obj, Elm_Map_Pan_Data *psd, Evas_Coord _gen_param2 EINA_UNUSED, Evas_Coord _gen_param3 EINA_UNUSED)
{
- va_arg(*list, Evas_Coord);
- va_arg(*list, Evas_Coord);
-
- Elm_Map_Pan_Smart_Data *psd = _pd;
-
_sizing_eval(psd->wsd->obj);
elm_map_zoom_mode_set(psd->wobj, psd->wsd->mode);
evas_object_smart_changed(obj);
}
-static void
-_elm_map_pan_smart_calculate(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_map_pan_evas_smart_calculate(Eo *obj, Elm_Map_Pan_Data *psd)
{
Evas_Coord w, h;
- Elm_Map_Pan_Smart_Data *psd = _pd;
-
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
if (w <= 0 || h <= 0) return;
_calc_job(psd->wsd);
}
-static void
-_elm_map_pan_smart_move(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static void
+_elm_map_pan_evas_smart_move(Eo *obj, Elm_Map_Pan_Data *_pd EINA_UNUSED, Evas_Coord x EINA_UNUSED, Evas_Coord y EINA_UNUSED)
{
- va_arg(*list, Evas_Coord);
- va_arg(*list, Evas_Coord);
evas_object_smart_changed(obj);
}
-static void
-_elm_map_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_map_elm_widget_on_focus(Eo *obj, Elm_Map_Data *_pd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
- ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, EINA_FALSE);
Eina_Bool int_ret = EINA_FALSE;
eo_do_super(obj, MY_CLASS, elm_obj_widget_on_focus(&int_ret));
- if (!int_ret) return;
+ if (!int_ret) return EINA_FALSE;
if (elm_widget_focus_get(obj))
{
evas_object_focus_set(wd->resize_obj, EINA_FALSE);
}
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_map_pan_destructor(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_map_pan_eo_base_destructor(Eo *obj, Elm_Map_Pan_Data *psd)
{
- Elm_Map_Pan_Smart_Data *psd = _pd;
eo_data_unref(psd->wobj, psd->wsd);
eo_do_super(obj, MY_PAN_CLASS, eo_destructor());
}
static void
_elm_map_pan_class_constructor(Eo_Class *klass)
{
- const Eo_Op_Func_Description func_desc[] = {
- EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_DESTRUCTOR), _elm_map_pan_destructor),
-
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_map_pan_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_map_pan_smart_move),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_CALCULATE), _elm_map_pan_smart_calculate),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_SET), _elm_map_pan_smart_pos_set),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_GET), _elm_map_pan_smart_pos_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MAX_GET), _elm_map_pan_smart_pos_max_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_POS_MIN_GET), _elm_map_pan_smart_pos_min_get),
- EO_OP_FUNC(ELM_OBJ_PAN_ID(ELM_OBJ_PAN_SUB_ID_CONTENT_SIZE_GET), _elm_map_pan_smart_content_size_get),
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
- evas_smart_legacy_type_register(MY_PAN_CLASS_NAME_LEGACY, klass);
-}
-
-static const Eo_Class_Description _elm_map_pan_class_desc = {
- EO_VERSION,
- MY_PAN_CLASS_NAME,
- EO_CLASS_TYPE_REGULAR,
- EO_CLASS_DESCRIPTION_OPS(NULL, NULL, 0),
- NULL,
- sizeof(Elm_Map_Pan_Smart_Data),
- _elm_map_pan_class_constructor,
- NULL
-};
+ evas_smart_legacy_type_register(MY_PAN_CLASS_NAME_LEGACY, klass);
+}
-EO_DEFINE_CLASS(elm_obj_map_pan_class_get, &_elm_map_pan_class_desc, ELM_OBJ_PAN_CLASS, NULL);
+#include "elm_map_pan.eo.c"
-static void
-_elm_map_smart_theme(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+EOLIAN static Eina_Bool
+_elm_map_elm_widget_theme_apply(Eo *obj, Elm_Map_Data *sd EINA_UNUSED)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- if (ret) *ret = EINA_FALSE;
Eina_Bool int_ret = EINA_FALSE;
-
eo_do_super(obj, MY_CLASS, elm_obj_widget_theme_apply(&int_ret));
- if (!int_ret) return;
+ if (!int_ret) return EINA_FALSE;
_sizing_eval(obj);
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_map_smart_event(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_map_elm_widget_event(Eo *obj, Elm_Map_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info)
{
- Evas_Object *src = va_arg(*list, Evas_Object *);
- Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type);
- Evas_Event_Key_Down *ev = va_arg(*list, void *);
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Map_Smart_Data *sd = _pd;
-
- if (ret) *ret = EINA_FALSE;
(void) src;
+ Evas_Event_Key_Down *ev = event_info;
Evas_Coord vh;
Evas_Coord x, y;
Evas_Coord step_x, step_y, page_x, page_y;
- if (elm_widget_disabled_get(obj)) return;
- if (type != EVAS_CALLBACK_KEY_DOWN) return;
- if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+ if (elm_widget_disabled_get(obj)) return EINA_FALSE;
+ if (type != EVAS_CALLBACK_KEY_DOWN) return EINA_FALSE;
+ if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return EINA_FALSE;
eo_do(obj,
elm_interface_scrollable_content_pos_get(&x, &y),
else if (!strcmp(ev->key, "KP_Add"))
{
_zoom_with_animation(sd, sd->zoom + 1, 10);
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
else if (!strcmp(ev->key, "KP_Subtract"))
{
_zoom_with_animation(sd, sd->zoom - 1, 10);
- if (ret) *ret = EINA_TRUE;
- return;
+ return EINA_TRUE;
}
- else return;
+ else return EINA_FALSE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
eo_do(obj, elm_interface_scrollable_content_pos_set(x, y, EINA_TRUE));
- if (ret) *ret = EINA_TRUE;
+ return EINA_TRUE;
}
-static void
-_elm_map_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_map_evas_smart_add(Eo *obj, Elm_Map_Data *priv)
{
Evas_Coord minw, minh;
- Elm_Map_Pan_Smart_Data *pan_data;
+ Elm_Map_Pan_Data *pan_data;
Evas_Object *edje;
- Elm_Map_Smart_Data *priv = _pd;
-
elm_widget_sub_object_parent_add(obj);
edje = edje_object_add(evas_object_evas_get(obj));
ERR("Ecore must be built with curl support for the map widget!");
}
-static void
-_elm_map_smart_del(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_map_evas_smart_del(Eo *obj, Elm_Map_Data *sd)
{
Elm_Map_Route *r;
Elm_Map_Name *na;
Evas_Object *track;
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
EINA_LIST_FOREACH_SAFE(sd->routes, l, ll, r)
elm_map_route_del(r);
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());
}
-static void
-_elm_map_smart_move(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_evas_smart_move(Eo *obj, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y)
{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- Elm_Map_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_move(x, y));
evas_object_move(sd->hit_rect, x, y);
}
-static void
-_elm_map_smart_resize(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_evas_smart_resize(Eo *obj, Elm_Map_Data *sd, Evas_Coord w, Evas_Coord h)
{
- Evas_Coord w = va_arg(*list, Evas_Coord);
- Evas_Coord h = va_arg(*list, Evas_Coord);
- Elm_Map_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_resize(w, h));
evas_object_resize(sd->hit_rect, w, h);
}
-static void
-_elm_map_smart_member_add(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_evas_smart_member_add(Eo *obj, Elm_Map_Data *sd, Evas_Object *member)
{
- Evas_Object *member = va_arg(*list, Evas_Object *);
- Elm_Map_Smart_Data *sd = _pd;
-
eo_do_super(obj, MY_CLASS, evas_obj_smart_member_add(member));
if (sd->hit_rect)
return obj;
}
-static void
-_constructor(Eo *obj, void *_pd EINA_UNUSED, va_list *list EINA_UNUSED)
+EOLIAN static void
+_elm_map_eo_base_constructor(Eo *obj, Elm_Map_Data *sd)
{
- Elm_Map_Smart_Data *sd = _pd;
sd->obj = obj;
eo_do_super(obj, MY_CLASS, eo_constructor());
evas_obj_smart_callbacks_descriptions_set(_smart_callbacks, NULL));
}
-EAPI void
-elm_map_zoom_set(Evas_Object *obj,
- int zoom)
+EOLIAN static void
+_elm_map_zoom_set(Eo *obj, Elm_Map_Data *sd, int zoom)
{
- eo_do(obj, elm_obj_map_zoom_set(zoom));
-}
-
-static void
-_zoom_set(Eo *obj, void *_pd, va_list *list)
-{
- int zoom = va_arg(*list, int);
-
ELM_MAP_CHECK(obj);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
if (sd->mode != ELM_MAP_ZOOM_MODE_MANUAL) return;
evas_object_smart_changed(sd->pan_obj);
}
-EAPI int
-elm_map_zoom_get(const Evas_Object *obj)
+EOLIAN static int
+_elm_map_zoom_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj) 0;
- int ret = 0;
- eo_do((Eo *) obj, elm_obj_map_zoom_get(&ret));
- return ret;
+ return sd->zoom;
}
-static void
-_zoom_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- int *ret = va_arg(*list, int *);
- Elm_Map_Smart_Data *sd = _pd;
-
- *ret = sd->zoom;
-}
-
-EAPI void
-elm_map_zoom_mode_set(Evas_Object *obj,
- Elm_Map_Zoom_Mode mode)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_zoom_mode_set(mode));
-}
-
-static void
-_zoom_mode_set_eo(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_zoom_mode_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Elm_Map_Zoom_Mode mode)
{
- Elm_Map_Zoom_Mode mode = va_arg(*list, Elm_Map_Zoom_Mode);
- Elm_Map_Smart_Data *sd = _pd;
-
if ((mode == ELM_MAP_ZOOM_MODE_MANUAL) && (sd->mode == !!mode)) return;
sd->mode = mode;
evas_object_smart_changed(sd->pan_obj);
}
-EAPI Elm_Map_Zoom_Mode
-elm_map_zoom_mode_get(const Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) ELM_MAP_ZOOM_MODE_MANUAL;
- Elm_Map_Zoom_Mode ret = ELM_MAP_ZOOM_MODE_MANUAL;
- eo_do((Eo *) obj, elm_obj_map_zoom_mode_get(&ret));
- return ret;
-}
-
-static void
-_zoom_mode_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Map_Zoom_Mode *ret = va_arg(*list, Elm_Map_Zoom_Mode *);
- Elm_Map_Smart_Data *sd = _pd;
-
- *ret = sd->mode;
-}
-
-EAPI void
-elm_map_zoom_max_set(Evas_Object *obj,
- int zoom)
+EOLIAN static Elm_Map_Zoom_Mode
+_elm_map_zoom_mode_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_zoom_max_set(zoom));
+ return sd->mode;
}
-static void
-_zoom_max_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_zoom_max_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, int zoom)
{
- int zoom = va_arg(*list, int);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
sd->zoom_max = zoom;
}
-EAPI int
-elm_map_zoom_max_get(const Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) - 1;
- int ret = - 1;
- eo_do((Eo *) obj, elm_obj_map_zoom_max_get(&ret));
- return ret;
-}
-
-static void
-_zoom_max_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static int
+_elm_map_zoom_max_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- int *ret = va_arg(*list, int *);
- *ret = -1;
- Elm_Map_Smart_Data *sd = _pd;
- EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(sd->src_tile, -1);
- *ret = sd->zoom_max;
+ return sd->zoom_max;
}
-EAPI void
-elm_map_zoom_min_set(Evas_Object *obj,
- int zoom)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_zoom_min_set(zoom));
-}
-
-static void
-_zoom_min_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_zoom_min_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, int zoom)
{
- int zoom = va_arg(*list, int);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
sd->zoom_min = zoom;
}
-EAPI int
-elm_map_zoom_min_get(const Evas_Object *obj)
+EOLIAN static int
+_elm_map_zoom_min_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj) - 1;
- int ret = - 1;
- eo_do((Eo *) obj, elm_obj_map_zoom_min_get(&ret));
- return ret;
-}
+ EINA_SAFETY_ON_NULL_RETURN_VAL(sd->src_tile, -1);
-static void
-_zoom_min_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- int *ret = va_arg(*list, int *);
- *ret = -1;
- Elm_Map_Smart_Data *sd = _pd;
- EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
-
- *ret = sd->zoom_min;
-}
-
-EAPI void
-elm_map_region_bring_in(Evas_Object *obj,
- double lon,
- double lat)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_region_bring_in(lon, lat));
+ return sd->zoom_min;
}
-static void
-_region_bring_in(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_region_bring_in(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double lon, double lat)
{
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- Elm_Map_Smart_Data *sd = _pd;
-
sd->calc_job.bring_in = EINA_TRUE;
sd->calc_job.lon = lon;
sd->calc_job.lat = lat;
evas_object_smart_changed(sd->pan_obj);
}
-EAPI void
-elm_map_region_show(Evas_Object *obj,
- double lon,
- double lat)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_region_show(lon, lat));
-}
-
-static void
-_region_show(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_region_show(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double lon, double lat)
{
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- Elm_Map_Smart_Data *sd = _pd;
-
sd->calc_job.bring_in = EINA_FALSE;
sd->calc_job.lon = lon;
sd->calc_job.lat = lat;
evas_object_smart_changed(sd->pan_obj);
}
-EAPI void
-elm_map_region_get(const Evas_Object *obj,
- double *lon,
- double *lat)
-{
- ELM_MAP_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_map_region_get(lon, lat));
-}
-
-static void
-_region_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_region_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double *lon, double *lat)
{
- double *lon = va_arg(*list, double *);
- double *lat = va_arg(*list, double *);
double tlon, tlat;
Evas_Coord vx, vy, vw, vh;
- Elm_Map_Smart_Data *sd = _pd;
-
_viewport_coord_get(sd, &vx, &vy, &vw, &vh);
_coord_to_region_convert
(sd, vx + vw / 2, vy + vh / 2, sd->size.w, &tlon, &tlat);
if (lat) *lat = tlat;
}
-EAPI void
-elm_map_paused_set(Evas_Object *obj,
- Eina_Bool paused)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_paused_set(paused));
-}
-
-static void
-_paused_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_paused_set(Eo *obj, Elm_Map_Data *sd, Eina_Bool paused)
{
- Eina_Bool paused = va_arg(*list, int);
- Elm_Map_Smart_Data *sd = _pd;
ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
if (sd->paused == !!paused) return;
}
}
-EAPI Eina_Bool
-elm_map_paused_get(const Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_map_paused_get(&ret));
- return ret;
-}
-
-static void
-_paused_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Map_Smart_Data *sd = _pd;
-
- *ret = sd->paused;
-}
-
-EAPI void
-elm_map_rotate_set(Evas_Object *obj,
- double degree,
- Evas_Coord cx,
- Evas_Coord cy)
+EOLIAN static Eina_Bool
+_elm_map_paused_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_rotate_set(degree, cx, cy));
+ return sd->paused;
}
-static void
-_rotate_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_rotate_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double degree, Evas_Coord cx, Evas_Coord cy)
{
- double degree = va_arg(*list, double);
- Evas_Coord cx = va_arg(*list, Evas_Coord);
- Evas_Coord cy = va_arg(*list, Evas_Coord);
- Elm_Map_Smart_Data *sd = _pd;
-
sd->rotate.d = degree;
sd->rotate.cx = cx;
sd->rotate.cy = cy;
evas_object_smart_changed(sd->pan_obj);
}
-EAPI void
-elm_map_rotate_get(const Evas_Object *obj,
- double *degree,
- Evas_Coord *cx,
- Evas_Coord *cy)
-{
- ELM_MAP_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_map_rotate_get(degree, cx, cy));
-}
-
-static void
-_rotate_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_rotate_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double *degree, Evas_Coord *cx, Evas_Coord *cy)
{
- double *degree = va_arg(*list, double *);
- Evas_Coord *cx = va_arg(*list, Evas_Coord *);
- Evas_Coord *cy = va_arg(*list, Evas_Coord *);
- Elm_Map_Smart_Data *sd = _pd;
-
if (degree) *degree = sd->rotate.d;
if (cx) *cx = sd->rotate.cx;
if (cy) *cy = sd->rotate.cy;
}
-EAPI void
-elm_map_wheel_disabled_set(Evas_Object *obj,
- Eina_Bool disabled)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_wheel_disabled_set(disabled));
-}
-
-static void
-_wheel_disabled_set(Eo *obj, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_wheel_disabled_set(Eo *obj, Elm_Map_Data *sd, Eina_Bool disabled)
{
- Eina_Bool disabled = va_arg(*list, int);
- Elm_Map_Smart_Data *sd = _pd;
-
if ((!sd->wheel_disabled) && (disabled))
evas_object_event_callback_del_full
(obj, EVAS_CALLBACK_MOUSE_WHEEL, _mouse_wheel_cb, obj);
sd->wheel_disabled = !!disabled;
}
-EAPI Eina_Bool
-elm_map_wheel_disabled_get(const Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) EINA_FALSE;
- Eina_Bool ret = EINA_FALSE;
- eo_do((Eo *) obj, elm_obj_map_wheel_disabled_get(&ret));
- return ret;
-}
-
-static void
-_wheel_disabled_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_Bool
+_elm_map_wheel_disabled_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- Eina_Bool *ret = va_arg(*list, Eina_Bool *);
- Elm_Map_Smart_Data *sd = _pd;
-
- *ret = sd->wheel_disabled;
+ return sd->wheel_disabled;
}
-EAPI void
-elm_map_tile_load_status_get(const Evas_Object *obj,
- int *try_num,
- int *finish_num)
+EOLIAN static void
+_elm_map_tile_load_status_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, int *try_num, int *finish_num)
{
- ELM_MAP_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_map_tile_load_status_get(try_num, finish_num));
-}
-
-static void
-_tile_load_status_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- int *try_num = va_arg(*list, int *);
- int *finish_num = va_arg(*list, int *);
- Elm_Map_Smart_Data *sd = _pd;
-
if (try_num) *try_num = sd->try_num;
if (finish_num) *finish_num = sd->finish_num;
}
-EAPI void
-elm_map_canvas_to_region_convert(const Evas_Object *obj,
- Evas_Coord x,
- Evas_Coord y,
- double *lon,
- double *lat)
+EOLIAN static void
+_elm_map_canvas_to_region_convert(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y, double *lon, double *lat)
{
- ELM_MAP_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_map_canvas_to_region_convert(x, y, lon, lat));
-}
-
-static void
-_canvas_to_region_convert(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- double *lon = va_arg(*list, double *);
- double *lat = va_arg(*list, double *);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(lon);
EINA_SAFETY_ON_NULL_RETURN(lat);
_coord_to_region_convert(sd, x, y, sd->size.w, lon, lat);
}
-EAPI void
-elm_map_region_to_canvas_convert(const Evas_Object *obj,
- double lon,
- double lat,
- Evas_Coord *x,
- Evas_Coord *y)
+EOLIAN static void
+_elm_map_region_to_canvas_convert(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double lon, double lat, Evas_Coord *x, Evas_Coord *y)
{
- ELM_MAP_CHECK(obj);
- eo_do((Eo *) obj, elm_obj_map_region_to_canvas_convert(lon, lat, x, y));
-}
-
-static void
-_region_to_canvas_convert(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- Evas_Coord *x = va_arg(*list, Evas_Coord *);
- Evas_Coord *y = va_arg(*list, Evas_Coord *);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(x);
EINA_SAFETY_ON_NULL_RETURN(y);
_coord_to_canvas(sd, *x, *y, x, y);
}
-EAPI void
-elm_map_user_agent_set(Evas_Object *obj,
- const char *user_agent)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_user_agent_set(user_agent));
-}
-
-static void
-_user_agent_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_user_agent_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, const char *user_agent)
{
- const char *user_agent = va_arg(*list, const char *);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(user_agent);
eina_stringshare_replace(&sd->user_agent, user_agent);
eina_hash_set(sd->ua, "User-Agent", sd->user_agent);
}
-EAPI const char *
-elm_map_user_agent_get(const Evas_Object *obj)
+EOLIAN static const char*
+_elm_map_user_agent_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj) NULL;
- const char *ret = NULL;
- eo_do((Eo *) obj, elm_obj_map_user_agent_get(&ret));
- return ret;
-}
-
-static void
-_user_agent_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- const char **ret = va_arg(*list, const char **);
- Elm_Map_Smart_Data *sd = _pd;
-
- *ret = sd->user_agent;
-}
-
-EAPI void
-elm_map_source_set(Evas_Object *obj,
- Elm_Map_Source_Type type,
- const char *source_name)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_source_set(type, source_name));
+ return sd->user_agent;
}
-static void
-_source_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_source_set(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Elm_Map_Source_Type type, const char *source_name)
{
- Elm_Map_Source_Type type = va_arg(*list, Elm_Map_Source_Type);
- const char *source_name = va_arg(*list, const char *);
- Elm_Map_Smart_Data *sd = _pd;
EINA_SAFETY_ON_NULL_RETURN(source_name);
if (type == ELM_MAP_SOURCE_TYPE_TILE) _source_tile_set(sd, source_name);
}
-EAPI const char *
-elm_map_source_get(const Evas_Object *obj,
- Elm_Map_Source_Type type)
-{
- ELM_MAP_CHECK(obj) NULL;
- const char *ret = NULL;
- eo_do((Eo *) obj, elm_obj_map_source_get(type, &ret));
- return ret;
-}
-
-static void
-_source_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const char*
+_elm_map_source_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Elm_Map_Source_Type type)
{
- Elm_Map_Source_Type type = va_arg(*list, Elm_Map_Source_Type);
- const char **ret = va_arg(*list, const char **);
- *ret = NULL;
- Elm_Map_Smart_Data *sd = _pd;
-
- EINA_SAFETY_ON_NULL_RETURN(sd->src_tile);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(sd->src_tile, NULL);
- if (type == ELM_MAP_SOURCE_TYPE_TILE) *ret = sd->src_tile->name;
+ if (type == ELM_MAP_SOURCE_TYPE_TILE) return sd->src_tile->name;
else if (type == ELM_MAP_SOURCE_TYPE_ROUTE)
- *ret = sd->src_route->name;
+ return sd->src_route->name;
else if (type == ELM_MAP_SOURCE_TYPE_NAME)
- *ret = sd->src_name->name;
+ return sd->src_name->name;
else ERR("Not supported map source type: %d", type);
+ return NULL;
}
-EAPI const char **
-elm_map_sources_get(const Evas_Object *obj,
- Elm_Map_Source_Type type)
-{
- ELM_MAP_CHECK(obj) NULL;
- const char **ret = NULL;
- eo_do((Eo *) obj, elm_obj_map_sources_get(type, &ret));
- return ret;
-}
-
-static void
-_sources_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static const char**
+_elm_map_sources_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Elm_Map_Source_Type type)
{
- Elm_Map_Source_Type type = va_arg(*list, Elm_Map_Source_Type);
- const char ***ret = va_arg(*list, const char ***);
- *ret = NULL;
- Elm_Map_Smart_Data *sd = _pd;
+ const char **ret;
+ ret = NULL;
- if (type == ELM_MAP_SOURCE_TYPE_TILE) *ret = sd->src_tile_names;
+ if (type == ELM_MAP_SOURCE_TYPE_TILE) ret = sd->src_tile_names;
else if (type == ELM_MAP_SOURCE_TYPE_ROUTE)
- *ret = sd->src_route_names;
+ ret = sd->src_route_names;
else if (type == ELM_MAP_SOURCE_TYPE_NAME)
- *ret = sd->src_name_names;
+ ret = sd->src_name_names;
else ERR("Not supported map source type: %d", type);
-}
-EAPI Elm_Map_Route *
-elm_map_route_add(Evas_Object *obj,
- Elm_Map_Route_Type type,
- Elm_Map_Route_Method method,
- double flon,
- double flat,
- double tlon,
- double tlat,
- Elm_Map_Route_Cb route_cb,
- void *data)
-{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Route *ret = NULL;
- eo_do(obj, elm_obj_map_route_add(type, method, flon, flat, tlon, tlat, route_cb, data, &ret));
return ret;
}
-static void
-_route_add(Eo *obj, void *_pd, va_list *list)
-{
- Elm_Map_Route_Type type = va_arg(*list, Elm_Map_Route_Type);
- Elm_Map_Route_Method method = va_arg(*list, Elm_Map_Route_Method);
- double flon = va_arg(*list, double);
- double flat = va_arg(*list, double);
- double tlon = va_arg(*list, double);
- double tlat = va_arg(*list, double);
- Elm_Map_Route_Cb route_cb = va_arg(*list, Elm_Map_Route_Cb);
- void *data = va_arg(*list, void *);
- Elm_Map_Route **ret = va_arg(*list, Elm_Map_Route **);
- *ret = NULL;
+EOLIAN static Elm_Map_Route*
+_elm_map_route_add(Eo *obj, Elm_Map_Data *sd, Elm_Map_Route_Type type, Elm_Map_Route_Method method, double flon, double flat, double tlon, double tlat, Elm_Map_Route_Cb route_cb, void *data)
+{
+ Elm_Map_Route *ret;
+ ret = NULL;
char *url;
char *type_name;
Elm_Map_Route *route;
char fname[PATH_MAX], fname2[PATH_MAX];
- Elm_Map_Smart_Data *sd = _pd;
- ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+ ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
- EINA_SAFETY_ON_NULL_RETURN(sd->src_route);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(sd->src_route, NULL);
{
snprintf(fname, sizeof(fname), "%s" CACHE_ROUTE_ROOT,
{
ERR("Route URL is NULL");
free(type_name);
- return;
+ return ret;
}
free(type_name);
ERR("Can't request Route from %s to %s", url, route->fname);
free(route->fname);
free(route);
- return;
+ return ret;
}
INF("Route requested from %s to %s", url, route->fname);
free(url);
(sd->obj, SIG_ROUTE_LOAD, route);
edje_object_signal_emit(wd->resize_obj,
"elm,state,busy,start", "elm");
- *ret = route;
+ ret = route;
+
+ return ret;
}
EAPI void
return route->info.waypoints;
}
-EAPI Elm_Map_Name *
-elm_map_name_add(const Evas_Object *obj,
- const char *address,
- double lon,
- double lat,
- Elm_Map_Name_Cb name_cb,
- void *data)
+EOLIAN static Elm_Map_Name*
+_elm_map_name_add(Eo *obj, Elm_Map_Data *_pd EINA_UNUSED, const char *address, double lon, double lat, Elm_Map_Name_Cb name_cb, void *data)
{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Name *ret = NULL;
- eo_do((Eo *) obj, elm_obj_map_name_add(address, lon, lat, name_cb, data, &ret));
- return ret;
-}
-
-static void
-_name_add(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
-{
- const char *address = va_arg(*list, const char *);
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- Elm_Map_Name_Cb name_cb = va_arg(*list, Elm_Map_Name_Cb);
- void *data = va_arg(*list, void *);
- Elm_Map_Name **ret = va_arg(*list, Elm_Map_Name **);
if (address)
- *ret = _name_request(obj, ELM_MAP_NAME_METHOD_SEARCH, address, 0, 0,
+ return _name_request(obj, ELM_MAP_NAME_METHOD_SEARCH, address, 0, 0,
name_cb, data);
else
- *ret = _name_request(obj, ELM_MAP_NAME_METHOD_REVERSE, NULL, lon, lat,
+ return _name_request(obj, ELM_MAP_NAME_METHOD_REVERSE, NULL, lon, lat,
name_cb, data);
}
if (lat) *lat = name->lat;
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_add(Evas_Object *obj,
- double lon,
- double lat)
-{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_add(lon, lat, &ret));
- return ret;
-}
-
-static void
-_overlay_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double lon, double lat)
{
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_DEFAULT;
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
-}
-
-EAPI Eina_List *
-elm_map_overlays_get(Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) NULL;
- Eina_List *ret = NULL;
- eo_do(obj, elm_obj_map_overlays_get(&ret));
- return ret;
+ return overlay;
}
-static void
-_overlays_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Eina_List *
+_elm_map_overlays_get(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- Eina_List **ret = va_arg(*list, Eina_List **);
Eina_List *l;
Elm_Map_Overlay *ovl;
- Elm_Map_Smart_Data *sd = _pd;
-
sd->all_overlays = eina_list_free(sd->all_overlays);
EINA_LIST_FOREACH(sd->overlays, l, ovl)
EINA_LIST_FOREACH(sd->group_overlays, l, ovl)
sd->all_overlays = eina_list_append(sd->all_overlays, ovl);
- *ret = sd->all_overlays;
+ return sd->all_overlays;
}
EAPI void
overlay->del_cb_data = data;
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_class_add(Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_class_add(&ret));
- return ret;
-}
-
-static void
-_overlay_class_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_class_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_CLASS;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
+ return overlay;
}
EAPI void
return ovl->members;
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_bubble_add(Evas_Object *obj)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_bubble_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_bubble_add(&ret));
- return ret;
-}
-
-static void
-_overlay_bubble_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_BUBBLE;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
+ return overlay;
}
EAPI void
evas_object_smart_changed(bubble->wsd->pan_obj);
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_route_add(Evas_Object *obj,
- const Elm_Map_Route *route)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_route_add(Eo *obj, Elm_Map_Data *sd, const Elm_Map_Route *route)
{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_route_add(route, &ret));
- return ret;
-}
-
-static void
-_overlay_route_add(Eo *obj, void *_pd, va_list *list)
-{
- const Elm_Map_Route *route = va_arg(*list, const Elm_Map_Route *);
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
- *ret = NULL;
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
- EINA_SAFETY_ON_NULL_RETURN(route);
- EINA_SAFETY_ON_NULL_RETURN(route->wsd);
- EINA_SAFETY_ON_FALSE_RETURN
- (obj == (route->wsd)->obj);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(route, NULL);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(route->wsd, NULL);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL
+ (obj == (route->wsd)->obj, NULL);
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
+ return overlay;
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_line_add(Evas_Object *obj,
- double flon,
- double flat,
- double tlon,
- double tlat)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_line_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double flon, double flat, double tlon, double tlat)
{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_line_add(flon, flat, tlon, tlat, &ret));
- return ret;
-}
-
-static void
-_overlay_line_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- double flon = va_arg(*list, double);
- double flat = va_arg(*list, double);
- double tlon = va_arg(*list, double);
- double tlat = va_arg(*list, double);
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_LINE;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
-}
-
-EAPI Elm_Map_Overlay *
-elm_map_overlay_polygon_add(Evas_Object *obj)
-{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_polygon_add(&ret));
- return ret;
+ return overlay;
}
-static void
-_overlay_polygon_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_polygon_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd)
{
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_POLYGON;
overlay->grp = _overlay_group_new(sd);
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
+ return overlay;
}
EAPI void
evas_object_smart_changed(ovl->wsd->pan_obj);
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_circle_add(Evas_Object *obj,
- double lon,
- double lat,
- double radius)
-{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_circle_add(lon, lat, radius, &ret));
- return ret;
-}
-
-static void
-_overlay_circle_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_circle_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, double lon, double lat, double radius)
{
- double lon = va_arg(*list, double);
- double lat = va_arg(*list, double);
- double radius = va_arg(*list, double);
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_CIRCLE;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
+ return overlay;
}
-EAPI Elm_Map_Overlay *
-elm_map_overlay_scale_add(Evas_Object *obj,
- Evas_Coord x,
- Evas_Coord y)
+EOLIAN static Elm_Map_Overlay*
+_elm_map_overlay_scale_add(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y)
{
- ELM_MAP_CHECK(obj) NULL;
- Elm_Map_Overlay *ret = NULL;
- eo_do(obj, elm_obj_map_overlay_scale_add(x, y, &ret));
- return ret;
-}
-
-static void
-_overlay_scale_add(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
-{
- Evas_Coord x = va_arg(*list, Evas_Coord);
- Evas_Coord y = va_arg(*list, Evas_Coord);
- Elm_Map_Overlay **ret = va_arg(*list, Elm_Map_Overlay **);
Elm_Map_Overlay *overlay;
- Elm_Map_Smart_Data *sd = _pd;
-
overlay = ELM_NEW(Elm_Map_Overlay);
overlay->wsd = sd;
overlay->type = ELM_MAP_OVERLAY_TYPE_SCALE;
sd->overlays = eina_list_append(sd->overlays, overlay);
evas_object_smart_changed(sd->pan_obj);
- *ret = overlay;
-}
-
-#ifdef ELM_EMAP
-EAPI Evas_Object *
-elm_map_track_add(Evas_Object *obj,
- void *emap)
-{
- ELM_MAP_CHECK(obj) NULL;
- Evas_Object *ret = NULL;
- eo_do(obj, elm_obj_map_track_add(emap, &ret));
- return ret;
-}
-
-EAPI void
-elm_map_track_remove(Evas_Object *obj,
- Evas_Object *route)
-{
- ELM_MAP_CHECK(obj);
- eo_do(obj, elm_obj_map_track_remove(route));
-}
-
-#else
-EAPI Evas_Object *
-elm_map_track_add(Evas_Object *obj EINA_UNUSED,
- void *emap EINA_UNUSED)
-{
- return NULL;
-}
-
-EAPI void
-elm_map_track_remove(Evas_Object *obj EINA_UNUSED,
- Evas_Object *route EINA_UNUSED)
-{
+ return overlay;
}
-#endif
-static void
-_track_add(Eo *obj, void *_pd, va_list *list)
+EOLIAN static Evas_Object*
+_elm_map_track_add(Eo *obj, Elm_Map_Data *sd, void *emap)
{
- void *emap = va_arg(*list, void *);
- Evas_Object **ret = va_arg(*list, Evas_Object **);
- *ret = NULL;
#ifdef ELM_EMAP
EMap_Route *emapr = emap;
Evas_Object *route;
- Elm_Map_Smart_Data *sd = _pd;
-
route = elm_route_add(obj);
elm_route_emap_set(route, emapr);
sd->track = eina_list_append(sd->track, route);
- *ret = route;
+ return route;
#else
(void)obj;
- (void)_pd;
+ (void)sd;
(void)emap;
+ return NULL;
#endif
}
-static void
-_track_remove(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
+EOLIAN static void
+_elm_map_track_remove(Eo *obj EINA_UNUSED, Elm_Map_Data *sd, Evas_Object *route)
{
- Evas_Object *route = va_arg(*list, Evas_Object *);
#ifdef ELM_EMAP
- Elm_Map_Smart_Data *sd = _pd;
-
sd->track = eina_list_remove(sd->track, route);
evas_object_del(route);
#else
(void)obj;
- (void)_pd;
+ (void)sd;
(void)route;
#endif
}
static void
-_class_constructor(Eo_Class *klass)
-{
- const Eo_Op_Func_Description func_desc[] = {
- EO_OP_FUNC(EO_BASE_ID(EO_BASE_SUB_ID_CONSTRUCTOR), _constructor),
-
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MEMBER_ADD), _elm_map_smart_member_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_ADD), _elm_map_smart_add),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), _elm_map_smart_del),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_RESIZE), _elm_map_smart_resize),
- EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_MOVE), _elm_map_smart_move),
-
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_ON_FOCUS), _elm_map_smart_on_focus),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_THEME_APPLY), _elm_map_smart_theme),
- EO_OP_FUNC(ELM_OBJ_WIDGET_ID(ELM_OBJ_WIDGET_SUB_ID_EVENT), _elm_map_smart_event),
-
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_SET), _zoom_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_GET), _zoom_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_SET), _zoom_mode_set_eo),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_GET), _zoom_mode_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_SET), _zoom_max_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_GET), _zoom_max_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_SET), _zoom_min_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_GET), _zoom_min_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_BRING_IN), _region_bring_in),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_SHOW), _region_show),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_GET), _region_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_PAUSED_SET), _paused_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_PAUSED_GET), _paused_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROTATE_SET), _rotate_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROTATE_GET), _rotate_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_SET), _wheel_disabled_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_GET), _wheel_disabled_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TILE_LOAD_STATUS_GET), _tile_load_status_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_CANVAS_TO_REGION_CONVERT), _canvas_to_region_convert),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_REGION_TO_CANVAS_CONVERT), _region_to_canvas_convert),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_USER_AGENT_SET), _user_agent_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_USER_AGENT_GET), _user_agent_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCE_SET), _source_set),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCE_GET), _source_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_SOURCES_GET), _sources_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_ROUTE_ADD), _route_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_NAME_ADD), _name_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_ADD), _overlay_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAYS_GET), _overlays_get),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_CLASS_ADD), _overlay_class_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_BUBBLE_ADD), _overlay_bubble_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_ROUTE_ADD), _overlay_route_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_LINE_ADD), _overlay_line_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_POLYGON_ADD), _overlay_polygon_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_CIRCLE_ADD), _overlay_circle_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_OVERLAY_SCALE_ADD), _overlay_scale_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TRACK_ADD), _track_add),
- EO_OP_FUNC(ELM_OBJ_MAP_ID(ELM_OBJ_MAP_SUB_ID_TRACK_REMOVE), _track_remove),
- EO_OP_FUNC_SENTINEL
- };
- eo_class_funcs_set(klass, func_desc);
-
+_elm_map_class_constructor(Eo_Class *klass)
+{
evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass);
}
-static const Eo_Op_Description op_desc[] = {
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_SET, "Set the zoom level of the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_GET, "Get the zoom level of the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_SET, "Set the zoom mode used by the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MODE_GET, "Get the zoom mode used by the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_SET, "Set the maximum zoom of the source."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MAX_GET, "Get the maximum zoom of the source."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_SET, "Set the minimum zoom of the source."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ZOOM_MIN_GET, "Get the minimum zoom of the source."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_REGION_BRING_IN, "Animatedly bring in given coordinates to the center of the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_REGION_SHOW, "Show the given coordinates at the center of the map, immediately."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_REGION_GET, "Get the current geographic coordinates of the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_PAUSED_SET, "Pause or unpause the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_PAUSED_GET, "Get a value whether map is paused or not."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ROTATE_SET, "Rotate the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ROTATE_GET, "Get the rotate degree of the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_SET, "Enable or disable mouse wheel to be used to zoom in / out the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_WHEEL_DISABLED_GET, "Get a value whether mouse wheel is enabled or not."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_TILE_LOAD_STATUS_GET, "Get the information of tile load status."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_CANVAS_TO_REGION_CONVERT, "Convert canvas coordinates into geographic coordinates."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_REGION_TO_CANVAS_CONVERT, "Convert geographic coordinates (longitude, latitude)."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_USER_AGENT_SET, "Set the user agent used by the map object to access routing services."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_USER_AGENT_GET, "Get the user agent used by the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_SOURCE_SET, "Set the current source of the map for a specific type."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_SOURCE_GET, "Get the name of currently used source for a specific type."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_SOURCES_GET, "Get the names of available sources for a specific type."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_ROUTE_ADD, "Add a new route to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_NAME_ADD, "Request a address or geographic coordinates(longitude, latitude)."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_ADD, "Add a new overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAYS_GET, "Return all overlays in the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_CLASS_ADD, "Add a new class overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_BUBBLE_ADD, "Add a new bubble overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_ROUTE_ADD, "Add a new route overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_LINE_ADD, "Add a new line overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_POLYGON_ADD, "Add a new polygon overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_CIRCLE_ADD, "Add a new circle overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_OVERLAY_SCALE_ADD, "Add a new scale overlay to the map object."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_TRACK_ADD, "Add a track on the map."),
- EO_OP_DESCRIPTION(ELM_OBJ_MAP_SUB_ID_TRACK_REMOVE, "Remove a track from the map."),
- EO_OP_DESCRIPTION_SENTINEL
-};
-
-static const Eo_Class_Description class_desc = {
- EO_VERSION,
- MY_CLASS_NAME,
- EO_CLASS_TYPE_REGULAR,
- EO_CLASS_DESCRIPTION_OPS(&ELM_OBJ_MAP_BASE_ID, op_desc, ELM_OBJ_MAP_SUB_ID_LAST),
- NULL,
- sizeof(Elm_Map_Smart_Data),
- _class_constructor,
- NULL
-};
-
-EO_DEFINE_CLASS(elm_obj_map_class_get, &class_desc, ELM_OBJ_WIDGET_CLASS, ELM_INTERFACE_SCROLLABLE_CLASS, NULL);
+#include "elm_map.eo.c"
--- /dev/null
+class Elm_Map (Elm_Widget, Elm_Interface_Scrollable)
+{
+ eo_prefix: elm_obj_map;
+ properties {
+ zoom {
+ set {
+ /*@
+ Set the zoom level of the map.
+
+ This sets the zoom level.
+
+ It will respect limits defined by elm_map_zoom_min_set() and
+ elm_map_zoom_max_set().
+
+ By default these values are 0 (world map) and 18 (maximum zoom).
+
+ This function should be used when zoom mode is set to #ELM_MAP_ZOOM_MODE_MANUAL.
+ This is the default mode, and can be set with elm_map_zoom_mode_set().
+
+ @see elm_map_zoom_mode_set()
+ @see elm_map_zoom_get()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the zoom level of the map.
+
+ @return The current zoom level.
+
+ This returns the current zoom level of the map object.
+
+ Note that if you set the fill mode to other than #ELM_MAP_ZOOM_MODE_MANUAL
+ (which is the default), the zoom level may be changed at any time by the
+ map object itself to account for map size and map viewport size.
+
+ @see elm_map_zoom_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ int zoom; /*@ The zoom level to set. */
+ }
+ }
+ paused {
+ set {
+ /*@
+ Pause or unpause the map.
+
+ This sets the paused state to on (@c EINA_TRUE) or off (@c EINA_FALSE)
+ for map.
+
+ The default is off.
+
+ This will stop zooming using animation, changing zoom levels will
+ change instantly. This will stop any existing animations that are running.
+
+ @see elm_map_paused_get()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get a value whether map is paused or not.
+
+ @return @c EINA_TRUE means map is pause. @c EINA_FALSE indicates
+ it is not.
+
+ This gets the current paused state for the map object.
+
+ @see elm_map_paused_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ Eina_Bool paused; /*@ Use @c EINA_TRUE to pause the map @p obj or @c EINA_FALSE
+ to unpause it. */
+ }
+ }
+ wheel_disabled {
+ set {
+ /*@
+ Enable or disable mouse wheel to be used to zoom in / out the map.
+
+ Mouse wheel can be used for the user to zoom in or zoom out the map.
+
+ It's disabled by default.
+
+ @see elm_map_wheel_disabled_get()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get a value whether mouse wheel is enabled or not.
+
+ @return @c EINA_TRUE means map is disabled. @c EINA_FALSE indicates
+ it is enabled.
+
+ Mouse wheel can be used for the user to zoom in or zoom out the map.
+
+ @see elm_map_wheel_disabled_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ Eina_Bool disabled; /*@ Use @c EINA_TRUE to disable mouse wheel or @c EINA_FALSE
+ to enable it. */
+ }
+ }
+ zoom_min {
+ set {
+ /*@
+ Set the minimum zoom of the source.
+
+ @see elm_map_zoom_min_get() for details.
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the minimum zoom of the source.
+
+ @return Returns the minimum zoom of the source.
+
+ @see elm_map_zoom_min_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ int zoom; /*@ New minimum zoom value to be used. */
+ }
+ }
+ rotate {
+ set {
+ /*@
+ Rotate the map.
+
+ @see elm_map_rotate_get()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the rotate degree of the map
+
+ @see elm_map_rotate_set() to set map rotation.
+
+ @ingroup Map */
+ }
+ values {
+ double degree; /*@ Angle from 0.0 to 360.0 to rotate around Z axis. */
+ Evas_Coord cx; /*@ Rotation's center horizontal position. */
+ Evas_Coord cy; /*@ Rotation's center vertical position. */
+ }
+ }
+ user_agent {
+ set {
+ /*@
+ Set the user agent used by the map object to access routing services.
+
+ User agent is a client application implementing a network protocol used
+ in communications within a client–server distributed computing system
+
+ The @p user_agent identification string will transmitted in a header
+ field @c User-Agent.
+
+ @see elm_map_user_agent_get()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the user agent used by the map object.
+
+ @return The user agent identification string used by the map.
+
+ @see elm_map_user_agent_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ const char *user_agent; /*@ The user agent to be used by the map. */
+ }
+ }
+ zoom_max {
+ set {
+ /*@
+ Set the maximum zoom of the source.
+
+ @see elm_map_zoom_max_get() for details.
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the maximum zoom of the source.
+
+ @return Returns the maximum zoom of the source.
+
+ @see elm_map_zoom_max_set() for details.
+
+ @ingroup Map */
+ }
+ values {
+ int zoom; /*@ New maximum zoom value to be used. */
+ }
+ }
+ zoom_mode {
+ set {
+ /*@
+ Set the zoom mode used by the map object.
+
+ This sets the zoom mode to manual or one of the automatic levels.
+ Manual (#ELM_MAP_ZOOM_MODE_MANUAL) means that zoom is set manually by
+ elm_map_zoom_set() and will stay at that level until changed by code
+ or until zoom mode is changed. This is the default mode.
+
+ The Automatic modes will allow the map object to automatically
+ adjust zoom mode based on properties. #ELM_MAP_ZOOM_MODE_AUTO_FIT will
+ adjust zoom so the map fits inside the scroll frame with no pixels
+ outside this area. #ELM_MAP_ZOOM_MODE_AUTO_FILL will be similar but
+ ensure no pixels within the frame are left unfilled. Do not forget that
+ the valid sizes are 2^zoom, consequently the map may be smaller than
+ the scroller view.
+
+ @see elm_map_zoom_set()
+
+ @ingroup Map */
+ }
+ get {
+ /*@
+ Get the zoom mode used by the map object.
+
+ @return The zoom mode of the map, being it one of #ELM_MAP_ZOOM_MODE_MANUAL
+ (default), #ELM_MAP_ZOOM_MODE_AUTO_FIT, or #ELM_MAP_ZOOM_MODE_AUTO_FILL.
+
+ This function returns the current zoom mode used by the map object.
+
+ @see elm_map_zoom_mode_set() for more details.
+
+ @ingroup Map */
+ }
+ values {
+ Elm_Map_Zoom_Mode mode; /*@ The zoom mode of the map, being it one of #ELM_MAP_ZOOM_MODE_MANUAL
+ (default), #ELM_MAP_ZOOM_MODE_AUTO_FIT, or #ELM_MAP_ZOOM_MODE_AUTO_FILL. */
+ }
+ }
+ region {
+ get {
+ /*@
+ Get the current geographic coordinates of the map.
+
+ This gets the current center coordinates of the map object. It can be
+ set by elm_map_region_bring_in() and elm_map_region_show().
+
+ @see elm_map_region_bring_in()
+ @see elm_map_region_show()
+
+ @ingroup Map */
+ }
+ values {
+ double lon; /*@ Pointer to store longitude. */
+ double lat; /*@ Pointer to store latitude. */
+ }
+ }
+ overlays {
+ get {
+ /*@
+ Return all overlays in the map object.
+
+ @return The list of all overlays or @c NULL upon failure.
+
+ This list includes group overlays also.
+ So this can be changed dynamically while zooming and panning.
+
+ @since 1.7
+
+ @ingroup Map */
+ return Eina_List *;
+ }
+ }
+ tile_load_status {
+ get {
+ /*@
+ Get the information of tile load status.
+
+ This gets the current tile loaded status for the map object.
+
+ @ingroup Map */
+ }
+ values {
+ int try_num; /*@ Pointer to store number of tiles download requested. */
+ int finish_num; /*@ Pointer to store number of tiles successfully downloaded. */
+ }
+ }
+ }
+ methods {
+ source_set {
+ /*@
+ Set the current source of the map for a specific type.
+
+ Map widget retrieves tile images that composes the map from a web service.
+ This web service can be set with this method
+ for ELM_MAP_SOURCE_TYPE_TILE type.
+ A different service can return a different maps with different
+ information and it can use different zoom values.
+
+ Map widget provides route data based on a external web service.
+ This web service can be set with this method
+ for ELM_MAP_SOURCE_TYPE_ROUTE type.
+
+ Map widget also provide geoname data based on a external web service.
+ This web service can be set with this method
+ for ELM_MAP_SOURCE_TYPE_NAME type.
+
+ The @p source_name need to match one of the names provided by
+ elm_map_sources_get().
+
+ The current source can be get using elm_map_source_get().
+
+ @see elm_map_sources_get()
+ @see elm_map_source_get()
+
+ @ingroup Map */
+
+ params {
+ @in Elm_Map_Source_Type type; /*@ source type. */
+ @in const char *source_name; /*@ The source to be used. */
+ }
+ }
+ source_get {
+ /*@
+ Get the name of currently used source for a specific type.
+
+ @return Returns the name of the source in use.
+
+ @see elm_map_sources_get()
+ @see elm_map_source_set()
+
+ @ingroup Map */
+
+ const;
+ return const char *;
+ params {
+ @in Elm_Map_Source_Type type; /*@ source type. */
+ }
+ }
+ route_add {
+ /*@
+ Add a new route to the map object.
+
+ @return The created route or @c NULL upon failure.
+
+ A route will be traced by point on coordinates (@p flat, @p flon)
+ to point on coordinates (@p tlat, @p tlon), using the route service
+ set with elm_map_source_set().
+
+ It will take @p type on consideration to define the route,
+ depending if the user will be walking or driving, the route may vary.
+ One of #ELM_MAP_ROUTE_TYPE_MOTOCAR, #ELM_MAP_ROUTE_TYPE_BICYCLE,
+ or #ELM_MAP_ROUTE_TYPE_FOOT need to be used.
+
+ Another parameter is what the route should prioritize, the minor distance
+ or the less time to be spend on the route. So @p method should be one
+ of #ELM_MAP_ROUTE_METHOD_SHORTEST or #ELM_MAP_ROUTE_METHOD_FASTEST.
+
+ Routes created with this method can be deleted with
+ elm_map_route_del(),
+ and distance can be get with elm_map_route_distance_get().
+
+ @see elm_map_route_del()
+ @see elm_map_route_distance_get()
+ @see elm_map_source_set()
+
+ @ingroup Map */
+
+ return Elm_Map_Route *;
+ params {
+ @in Elm_Map_Route_Type type; /*@ The type of transport to be considered when tracing a route. */
+ @in Elm_Map_Route_Method method; /*@ The routing method, what should be prioritized. */
+ @in double flon; /*@ The start longitude. */
+ @in double flat; /*@ The start latitude. */
+ @in double tlon; /*@ The destination longitude. */
+ @in double tlat; /*@ The destination latitude. */
+ @in Elm_Map_Route_Cb route_cb; /*@ The route to be traced. */
+ @in void *data; /*@ A pointer of user data. */
+ }
+ }
+ track_add {
+ /*@
+ Add a track on the map
+
+ @return The route object. This is an elm object of type Route.
+
+ @see elm_route_add() for details.
+
+ @ingroup Map */
+
+ return Evas_Object *;
+ params {
+ @in void *emap; /*@ The emap route object. */
+ }
+ }
+ region_to_canvas_convert {
+ /*@
+ Convert geographic coordinates (longitude, latitude)
+ into canvas coordinates.
+
+ This gets canvas x, y coordinates from longitude and latitude. The canvas
+ coordinates mean x, y coordinate from current viewport.
+
+ see elm_map_canvas_to_region_convert()
+
+ @ingroup Map */
+
+ const;
+ params {
+ @in double lon; /*@ The longitude to convert. */
+ @in double lat; /*@ The latitude to convert. */
+ @out Evas_Coord x; /*@ A pointer to horizontal coordinate. */
+ @out Evas_Coord y; /*@ A pointer to vertical coordinate. */
+ }
+ }
+ overlay_circle_add {
+ /*@
+ Add a new circle overlay to the map object.
+ This overlay has a circle type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ params {
+ @in double lon; /*@ The center longitude. */
+ @in double lat; /*@ The center latitude. */
+ @in double radius; /*@ The pixel length of radius. */
+ }
+ }
+ overlay_class_add {
+ /*@
+ Add a new class overlay to the map object.
+ This overlay has a class type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ This overlay is not shown before overlay members are appended.
+ if overlay members in the same class are close, group overlays
+ are created. If they are far away, group overlays are hidden.
+ When group overlays are shown, they have default style layouts at first.
+
+ You can change the state (hidden, paused, etc.) or set the content
+ or icon of the group overlays by chaning the state of the class overlay.
+ Do not modify the group overlay itself.
+
+ Also these changes have a influence on the overlays in the same class
+ even if each overlay is alone and is not grouped.
+
+ @see elm_map_overlay_del()
+ @see elm_map_overlay_add()
+ @see elm_map_overlay_bubble_add()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ }
+ overlay_bubble_add {
+ /*@
+ Add a new bubble overlay to the map object.
+ This overlay has a bubble type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ A bubble will not be displayed before geographic coordinates are set or
+ any other overlays are followed.
+
+ This overlay has a bubble style layout and icon or content can not
+ be set.
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+ @see elm_map_overlay_add()
+ @see elm_map_overlay_class_add()
+ @see elm_map_overlay_region_set()
+ @see elm_map_overlay_bubble_follow()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ }
+ sources_get {
+ /*@
+ Get the names of available sources for a specific type.
+
+ @return The char pointer array of source names.
+
+ It will provide a list with all available sources.
+ Current source can be set by elm_map_source_set(), or get with
+ elm_map_source_get().
+
+ At least available sources of tile type:
+ @li "Mapnik"
+ @li "Osmarender"
+ @li "CycleMap"
+ @li "Maplint"
+
+ At least available sources of route type:
+ @li "Yours"
+
+ At least available sources of name type:
+ @li "Nominatim"
+
+ @see elm_map_source_set()
+ @see elm_map_source_get()
+
+ @ingroup Map */
+
+ const;
+ return const char **;
+ params {
+ @in Elm_Map_Source_Type type; /*@ source type. */
+ }
+ }
+ overlay_polygon_add {
+ /*@
+ Add a new polygon overlay to the map object.
+ This overlay has a polygon type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ At least 3 regions should be added to show the polygon overlay.
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_polygon_region_add()
+ @see elm_map_overlay_del()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ }
+ overlay_line_add {
+ /*@
+ Add a new line overlay to the map object.
+ This overlay has a line type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ params {
+ @in double flon; /*@ The start longitude. */
+ @in double flat; /*@ The start latitude. */
+ @in double tlon; /*@ The destination longitude. */
+ @in double tlat; /*@ The destination latitude. */
+ }
+ }
+ region_show {
+ /*@
+ Show the given coordinates at the center of the map, @b immediately.
+
+ This causes map to @b redraw its viewport's contents to the
+ region containing the given @p lat and @p lon, that will be moved to the
+ center of the map.
+
+ @see elm_map_region_bring_in() for a function to move with animation.
+ @see elm_map_region_get()
+
+ @ingroup Map */
+
+ params {
+ @in double lon; /*@ Longitude to center at. */
+ @in double lat; /*@ Latitude to center at. */
+ }
+ }
+ name_add {
+ /*@
+ Request a address or geographic coordinates(longitude, latitude)
+ from a given address or geographic coordinate(longitude, latitude).
+
+ @return name A #Elm_Map_Name handle for this coordinate.
+
+ If you want to get address from geographic coordinates, set input @p address
+ as @c NULL and set @p lon, @p lat as you want to convert.
+ If address is set except NULL, @p lon and @p lat are checked.
+
+ To get the string for this address, elm_map_name_address_get()
+ should be used after callback or "name,loaded" signal is called.
+
+ To get the longitude and latitude, elm_map_name_region_get()
+ should be used.
+
+ @ingroup Map */
+
+ const;
+ return Elm_Map_Name *;
+ params {
+ @in const char *address; /*@ The address. */
+ @in double lon; /*@ The longitude. */
+ @in double lat; /*@ The latitude. */
+ @in Elm_Map_Name_Cb name_cb; /*@ The callback function. */
+ @in void *data; /*@ The user callback data. */
+ }
+ }
+ region_bring_in {
+ /*@
+ Animatedly bring in given coordinates to the center of the map.
+
+ This causes map to jump to the given @p lat and @p lon coordinates
+ and show it (by scrolling) in the center of the viewport, if it is not
+ already centered. This will use animation to do so and take a period
+ of time to complete.
+
+ @see elm_map_region_show() for a function to avoid animation.
+ @see elm_map_region_get()
+
+ @ingroup Map */
+
+ params {
+ @in double lon; /*@ Longitude to center at. */
+ @in double lat; /*@ Latitude to center at. */
+ }
+ }
+ track_remove {
+ /*@
+ Remove a track from the map
+
+ @ingroup Map */
+
+ params {
+ @in Evas_Object *route; /*@ The track to remove. */
+ }
+ }
+ overlay_route_add {
+ /*@
+ Add a new route overlay to the map object.
+ This overlay has a route type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ This overlay has a route style layout and icon or content can not
+ be set.
+
+ The color scheme can be changed by elm_map_overlay_content_set().
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+ @see elm_map_overlay_class_add()
+ @see elm_map_overlay_content_set()
+ @see elm_map_overlay_content_get()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ params {
+ @in const Elm_Map_Route *route; /*@ The route object to make a overlay. */
+ }
+ }
+ overlay_scale_add {
+ /*@
+ Add a new scale overlay to the map object.
+ This overlay has a scale type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ The scale overlay shows the ratio of a distance on the map to the corresponding distance.
+
+ Overlay created with this method can be deleted with elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ params {
+ @in Evas_Coord x; /*@ horizontal pixel coordinate. */
+ @in Evas_Coord y; /*@ vertical pixel coordinate */
+ }
+ }
+ overlay_add {
+ /*@
+ Add a new overlay to the map object. This overlay has a default type.
+
+ @return The created overlay or @c NULL upon failure.
+
+ A overlay will be created and shown in a specific point of the map, defined
+ by @p lon and @p lat.
+
+ The created overlay has a default style layout before content or
+ icon is set.
+ If content or icon is set, those are displayed instead of default style
+ layout.
+ You can set by using elm_map_overlay_content_set() or
+ elm_map_overlay_icon_set(). If NULL is set, default style
+ is shown again.
+
+ Overlay created with this method can be deleted by elm_map_overlay_del().
+
+ @see elm_map_overlay_del()
+ @see elm_map_overlay_class_add()
+ @see elm_map_overlay_bubble_add()
+ @see elm_map_overlay_content_set()
+ @see elm_map_overlay_icon_set()
+
+ @ingroup Map */
+
+ return Elm_Map_Overlay *;
+ params {
+ @in double lon; /*@ The longitude of the overlay. */
+ @in double lat; /*@ The latitude of the overlay. */
+ }
+ }
+ canvas_to_region_convert {
+ /*@
+ Convert canvas coordinates into geographic coordinates
+ (longitude, latitude).
+
+ This gets longitude and latitude from canvas x, y coordinates. The canvas
+ coordinates mean x, y coordinate from current viewport.
+
+ see elm_map_region_to_canvas_convert()
+
+ @ingroup Map */
+
+ const;
+ params {
+ @in Evas_Coord x; /*@ horizontal coordinate of the point to convert. */
+ @in Evas_Coord y; /*@ vertical coordinate of the point to convert. */
+ @out double lon; /*@ A pointer to the longitude. */
+ @out double lat; /*@ A pointer to the latitude. */
+ }
+ }
+ }
+ implements {
+ class::constructor;
+ Eo_Base::constructor;
+ Evas_Smart::move;
+ Evas_Smart::add;
+ Evas_Smart::del;
+ Evas_Smart::member_add;
+ Evas_Smart::resize;
+ Elm_Widget::theme_apply;
+ Elm_Widget::on_focus;
+ Elm_Widget::event;
+ }
+ events {
+ clicked;
+ clicked,double;
+ press;
+ longpressed;
+ scroll;
+ scroll,drag,start;
+ scroll,drag,stop;
+ scroll,anim,start;
+ scroll,anim,stop;
+ zoom,start;
+ zoom,stop;
+ zoom,change;
+ loaded;
+ tile,load;
+ tile,loaded;
+ tile,loaded,fail;
+ route,load;
+ route,loaded;
+ route,loaded,fail;
+ name,load;
+ name,loaded;
+ name,loaded,fail;
+ overlay,clicked;
+ overlay,del;
+ language,changed;
+ access,changed;
+ focused;
+ unfocused;
+ }
+
+}