void map_cb(void *data, Evas_Object *obj, void *event_info) { Evas_Object *nf = (Evas_Object *)data; Evas_Object *map; Elm_Map_Overlay *overlay; map = elm_map_add(nf); evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(map); elm_map_zoom_set(map, 10); elm_map_region_bring_in(map, 2.352, 48.857); overlay = elm_map_overlay_add(map, 2.352, 48.857); elm_map_overlay_color_set(overlay, 0x00, 0xfa, 0x9a, 0xff); elm_map_overlay_displayed_zoom_min_set(overlay, 5); elm_naviframe_item_push(nf, "Map", NULL, NULL, map, "empty"); }
EAPI_MAIN int elm_main(int argc, char **argv) { Evas_Object *win, *bg, *map, *box, *bt; Eina_List *ovls = NULL; Elm_Map_Overlay *ovl, *city_clas, *country_clas; char buf[255]; elm_app_info_set(elm_main, "elementary", "images"); data_dir = elm_app_data_dir_get(); snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", "sdf"); data_argentina.file = strdup(buf); snprintf(buf, sizeof(buf), "%s/images/rock_02.jpg", "sdf"); data_chile.file = strdup(buf); snprintf(buf, sizeof(buf), "%s/images/sky_01.jpg", "sdf"); data_sampa.file = strdup(buf); snprintf(buf, sizeof(buf), "%s/images/sky_02.jpg", "sdf"); data_rio.file = strdup(buf); snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", "sdf"); data_brasilia.file = strdup(buf); win = elm_win_add(NULL, "map", ELM_WIN_BASIC); elm_win_title_set(win, "Map Overlay Example"); evas_object_smart_callback_add(win, "delete,request", _on_done, NULL); bg = elm_bg_add(win); elm_win_resize_object_add(win, bg); evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(bg); map = elm_map_add(win); elm_win_resize_object_add(win, map); evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_show(map); box = elm_box_add(win); evas_object_show(box); bt = elm_button_add(win); elm_object_text_set(bt, "+"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_in, map); bt = elm_button_add(win); elm_object_text_set(bt, "-"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_out, map); bt = elm_button_add(win); elm_object_text_set(bt, "X"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fit, map); bt = elm_button_add(win); elm_object_text_set(bt, "#"); elm_box_pack_end(box, bt); evas_object_show(bt); evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map); evas_object_smart_callback_add(map, "overlay,clicked", _overlay_cb, NULL); city_clas = elm_map_overlay_class_add(map); elm_map_overlay_displayed_zoom_min_set(city_clas, 3); elm_map_overlay_icon_set(city_clas, _clas_city_icon_get(map)); country_clas = elm_map_overlay_class_add(map); elm_map_overlay_displayed_zoom_min_set(country_clas, 1); elm_map_overlay_icon_set(country_clas, _clas_country_icon_get(map)); ovl = elm_map_overlay_add(map, -43.2, -22.9); elm_map_overlay_icon_set(ovl, _city_icon_get(map)); elm_map_overlay_data_set(ovl, &data_rio); elm_map_overlay_class_append(city_clas, ovl); ovls = eina_list_append(ovls, ovl); ovl = elm_map_overlay_add(map, -46.63, -23.55); elm_map_overlay_icon_set(ovl, _city_icon_get(map)); elm_map_overlay_data_set(ovl, &data_sampa); elm_map_overlay_class_append(city_clas, ovl); ovls = eina_list_append(ovls, ovl); ovl = elm_map_overlay_add(map, -47.88, -15.78); elm_map_overlay_icon_set(ovl, _city_icon_get(map)); elm_map_overlay_data_set(ovl, &data_brasilia); elm_map_overlay_class_append(city_clas, ovl); ovls = eina_list_append(ovls, ovl); ovl = elm_map_overlay_add(map, -65.23, -35.1); elm_map_overlay_icon_set(ovl, _country_icon_get(map)); elm_map_overlay_data_set(ovl, &data_argentina); elm_map_overlay_class_append(country_clas, ovl); ovls = eina_list_append(ovls, ovl); ovl = elm_map_overlay_add(map, -71.3, -31.75); elm_map_overlay_icon_set(ovl, _country_icon_get(map)); elm_map_overlay_data_set(ovl, &data_chile); elm_map_overlay_class_append(country_clas, ovl); ovls = eina_list_append(ovls, ovl); elm_map_overlays_show(ovls); evas_object_resize(win, 512, 512); evas_object_show(win); ecore_timer_add(1, _nasty_hack, win); elm_run(); elm_shutdown(); return 0; }