-static void _item_result_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
- item_destroy_result(obj);
-}
-
-Evas_Object *item_create_result(Evas_Object *parent, int city, int color, int start, int end, struct tm *global_time)
-{
- Evas_Object *item = NULL;
- city_s *city_info = NULL;
- result_info_s *result_info = NULL;
- Evas *e = NULL;
-
- char *path = NULL;
- char full_path[PATH_LEN] = {0, };
- char city_str[PATH_LEN] = {0, };
- char color_str[16] = {0, };
-
- retv_if(!parent, NULL);
-
- path = app_get_resource_path();
- retv_if(!path, NULL);
-
- snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, ITEM_EDJE);
- free(path);
-
- result_info = calloc(1, sizeof(result_info_s));
- retv_if(!result_info, NULL);
-
- item = elm_layout_add(parent);
- goto_if(!item, error);
-
- elm_layout_file_set(item, full_path, "item_result");
-
- evas_object_size_hint_weight_set(item, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(item, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_data_set(item, DATA_KEY_RESULT, result_info);
- evas_object_event_callback_add(item, EVAS_CALLBACK_DEL, _item_result_del_cb, NULL);
- //evas_object_event_callback_add(item, EVAS_CALLBACK_RESIZE, _resize_graph_cb, result_info);
- //evas_object_event_callback_add(item, EVAS_CALLBACK_MOVE, _resize_graph_cb, result_info);
- evas_object_show(item);
-
- city_info = city_get();
- goto_if(!city_info, error);
-
- snprintf(city_str, sizeof(city_str), "%s, %s", city_info[city].name, city_info[city].nation);
- elm_object_part_text_set(item, "city", city_str);
-
- snprintf(color_str, sizeof(color_str), "%d", color);
- elm_object_signal_emit(item, color_str, "mark");
-
- _text_set_local_time(item, "time", city, global_time);
-
- e = evas_object_evas_get(item);
- goto_if(!e, error);
-
- result_info->rect1 = evas_object_rectangle_add(e);
- goto_if(!result_info->rect1, error);
-
- result_info->rect2 = evas_object_rectangle_add(e);
- goto_if(!result_info->rect2, error);
-
- result_info->city = city;
- result_info->start = start;
- result_info->end = end;
-
- return item;
-
-error:
- if (result_info) {
- if (result_info->rect1)
- evas_object_del(result_info->rect1);
- if (result_info->rect2)
- evas_object_del(result_info->rect2);
- free(result_info);
- }
-
- if (item)
- evas_object_del(item);
-
- free(result_info);
- return NULL;
-}
-
-void item_destroy_result(Evas_Object *item)
-{
- result_info_s *result_info = NULL;
-
- ret_if(!item);
-
- evas_object_event_callback_del(item, EVAS_CALLBACK_DEL, _item_result_del_cb);
-
- result_info = evas_object_data_del(item, DATA_KEY_RESULT);
- if (result_info) {
- if (result_info->rect1)
- evas_object_del(result_info->rect1);
- if (result_info->rect2)
- evas_object_del(result_info->rect2);
- free(result_info);
- }
-
- evas_object_del(item);
-}
-