ccf295df4093308acb14c499505188225c14d99c
[apps/native/sample/adventure.git] / new / src / ui_manager.c
1 #include <Elementary.h>
2 #include "main.h"
3 #include "log.h"
4
5 const char *const UI_MANAGER_EDJE = "ui_manager.edj";
6
7 Evas_Object *ui_manager_create(Evas_Object *parent, moment_info_s *moment_info)
8 {
9         Evas_Object *ui_manager = NULL;
10         Evas_Object *rect = NULL;
11         char *path = NULL;
12         char full_path[] = {0, };
13
14         retv_if(!parent, NULL);
15         retv_if(!moment_info, NULL);
16
17         path = app_get_resource_path();
18         retv_if(!path, NULL);
19
20         snprintf(full_path, sizeof(full_path), "%s/edje/%s", path, MAIN_VIEW_EDJE);
21         free(path);
22
23         ui_manager = elm_layout_add(parent);
24         retv_if(!ui_manager, NULL);
25
26         elm_layout_file_set(ui_manager, full_path, "main");
27         evas_object_size_hint_weight_set(ui_manager, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
28         evas_object_size_hint_align_set(ui_manager, EVAS_HINT_FILL, EVAS_HINT_FILL);
29         evas_object_show(ui_manager);
30
31         rect = evas_object_rectangle_add(moment_info->e);
32         if (rect) {
33                 evas_object_size_hint_min_set(rect, width, height);
34                 evas_object_color_set(rect, 200, 200, 200, 200);
35                 evas_object_show(rect);
36                 elm_object_part_content_set(ui_manager, "bg", rect);
37         } else
38                 _E("cannot add a rectangle");
39
40         moment_info->main_view = main_view_create(ui_manager, moment_info);
41         if (moment_info->main_view)
42                 elm_object_part_content_set(ui_manager, "content", moment_info->main_view);
43         else
44                 _E("cannot add the main view");
45
46         return ui_manager;
47 }
48
49
50
51 extern void ui_manager_destroy(Evas_Object *ui_manager)
52 {
53         Evas_Object *rect = NULL;
54         Evas_Object *content = NULL;
55         void (*destroy_function)(void *data);
56
57         ret_if(!ui_manager);
58
59         rect = elm_object_part_content_unset(ui_manager, "bg");
60         if (rect)
61                 evas_object_del(rect);
62
63         content = elm_object_part_content_unset(ui_manager, "content");
64         if (content) {
65                 destroy_function = evas_object_data_del(ui_manager, DATA_KEY_DESTROY_FUNCTION);
66                 if (destroy_function)
67                         destroy_function(content);
68         }
69
70         evas_object_del(ui_manager);
71 }