Evas_Coord w, h;
Evas_Object *obj, *bubble, *sc, *bx, *rect;
Eina_Bool open : 1;
- Eina_Bool raise : 1;
+ Eina_Bool bringin : 1;
};
struct _Grid_Item
static void _group_open_cb(void *data, Evas_Object *obj, const char *emission, const char *soure);
+static void _group_bringin_cb(void *data, Evas_Object *obj, const char *emission, const char *soure);
static void _group_bubble_create(Marker_Group *group);
static void _group_bubble_free(Marker_Group *group);
static void _group_bubble_place(Marker_Group *group);
elm_widget_sub_object_add(obj, group->obj);
edje_object_signal_callback_add(group->obj, "open", "elm", _group_open_cb, group);
-
+ edje_object_signal_callback_add(group->obj, "bringin", "elm", _group_bringin_cb, group);
if(group->open)
_group_bubble_create(group);
}
gi->want = EINA_FALSE;
gi->download = EINA_FALSE;
evas_object_image_file_set(gi->img, gi->file, NULL);
+ if( evas_object_image_load_error_get(gi->img) != EVAS_LOAD_ERROR_NONE )
+ remove(gi->file);
+
evas_object_show(gi->img);
//evas_object_text_text_set(gi->txt, gi->file);
_tile_update(gi);
if(status)
- DBG("Download failed (%d) %s", status, gi->file);
+ {
+ DBG("Download failed %s (%d,%s) ", status, gi->file, curl_easy_strerror(status));
+ remove(gi->file);
+ }
}
static Grid *
}
static void
-_group_bubble_mouse_in_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_group_bubble_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Marker_Group *group = data;
- if(group->raise)
- {
- group->raise = EINA_FALSE;
- return ;
- }
-
+
if(!evas_object_above_get(group->rect))
return ;
- group->raise = EINA_TRUE;
evas_object_raise(group->bubble);
evas_object_raise(group->sc);
evas_object_raise(group->rect);
group->wd->obj);
elm_widget_sub_object_add(group->wd->obj, group->rect);
- evas_object_event_callback_add(group->rect, EVAS_CALLBACK_MOUSE_UP, _group_bubble_mouse_in_cb, group);
-
+ evas_object_event_callback_add(group->rect, EVAS_CALLBACK_MOUSE_UP, _group_bubble_mouse_up_cb, group);
_group_bubble_place(group);
}
evas_object_show(group->rect);
}
+static void
+_group_bringin_cb(void *data, Evas_Object *obj, const char *emission, const char *soure)
+{
+ Marker_Group *group = data;
+ double lon, lat;
+
+ group->bringin = EINA_TRUE;
+
+ elm_map_utils_convert_coord_into_geo(group->x, group->y, group->wd->size.w, &lon, &lat);
+ elm_map_geo_region_bring_in(group->wd->obj, lon, lat);
+}
static void
_group_open_cb(void *data, Evas_Object *obj, const char *emission, const char *soure)
{
Marker_Group *group = data;
+ if(group->bringin)
+ {
+ group->bringin = EINA_FALSE;
+ return ;
+ }
+
if(group->bubble)
{
group->open = EINA_FALSE;