Merge "fix default language"
[apps/core/preloaded/settings.git] / setting-datausage / src / setting-datausage.c
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21
22 /**
23  *@defgroup setting-datausage
24  *UG creation code for setting-datausage
25  */
26
27 #include <setting-datausage.h>
28 #ifndef UG_MODULE_API
29 #define UG_MODULE_API __attribute__ ((visibility("default")))
30 #endif
31
32 setting_view *__get_datausage_view_to_load(service_h service)
33 {
34         SETTING_TRACE_BEGIN;
35
36         setting_view_node_table_register(&setting_view_datausage_main, NULL);
37
38         return &setting_view_datausage_main;
39 }
40
41 static void setting_datausage_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
42                                       void *event_info)
43 {
44         SettingDatausageUG *ad = (SettingDatausageUG *) data;
45         setting_view_update(ad->view_to_load, ad);
46 }
47
48 static void *setting_datausage_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
49                                        service_h service, void *priv)
50 {
51         setting_retvm_if((!ug || !priv), NULL, "!ug || !priv");
52
53         SettingDatausageUG *datausageUG = priv;
54         datausageUG->ug = ug;
55         datausageUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
56         datausageUG->win_get = (Evas_Object *) ug_get_window();
57         evas_object_show(datausageUG->win_main_layout);
58         datausageUG->evas = evas_object_evas_get(datausageUG->win_main_layout);
59
60         setting_retvm_if(datausageUG->win_main_layout == NULL, NULL,
61                          "cannot get main window ");
62
63         datausageUG->itc_seperator.item_style = "dialogue/separator";
64         datausageUG->itc_seperator.func.text_get = NULL;
65         datausageUG->itc_seperator.func.content_get = NULL;
66         datausageUG->itc_seperator.func.state_get = NULL;
67         datausageUG->itc_seperator.func.del = NULL;
68
69         setting_create_Gendial_itc("dialogue/2text.3/expandable", &(datausageUG->itc_2text_3_parent));
70         setting_create_Gendial_itc("dialogue/1text.1icon/expandable2", &(datausageUG->itc_1icon_1text_sub));
71         setting_create_Gendial_itc("dialogue/2text.3", &(datausageUG->itc_2text_2));
72         setting_create_Gendial_itc("dialogue/1text.1icon.2", &(datausageUG->itc_1text_1icon_2));
73         setting_create_Gendial_itc("dialogue/1text", &(datausageUG->itc_1text));
74         setting_create_Gendial_itc("dialogue/1text.1icon", &(datausageUG->itc_1text_1icon));
75         setting_create_Gendial_itc("dialogue/title", &(datausageUG->itc_group_item));
76         setting_create_Gendial_itc("multiline/1text", &(datausageUG->itc_bg_1icon));
77
78         setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
79
80         /*  creating a view. */
81         datausageUG->view_to_load = __get_datausage_view_to_load(service);
82         setting_retvm_if(NULL == datausageUG->view_to_load, NULL,
83                          "NULL == datausageUG->view_to_load");
84         setting_view_node_set_cur_view(datausageUG->view_to_load);
85         setting_view_create(datausageUG->view_to_load, (void *)datausageUG);
86         evas_object_event_callback_add(datausageUG->win_main_layout,
87                                        EVAS_CALLBACK_RESIZE,
88                                        setting_datausage_ug_cb_resize, datausageUG);
89         return datausageUG->ly_main;
90 }
91
92 static void setting_datausage_ug_on_start(ui_gadget_h ug, service_h service,
93                                      void *priv)
94 {
95 }
96
97 static void setting_datausage_ug_on_pause(ui_gadget_h ug, service_h service,
98                                      void *priv)
99 {
100 }
101
102 static void setting_datausage_ug_on_resume(ui_gadget_h ug, service_h service,
103                                       void *priv)
104 {
105 }
106
107 static void setting_datausage_ug_on_destroy(ui_gadget_h ug, service_h service,
108                                        void *priv)
109 {
110         SETTING_TRACE_BEGIN;
111         setting_retm_if((!ug || !priv), "!ug || !priv");
112         SettingDatausageUG *datausageUG = priv;
113
114         evas_object_event_callback_del(datausageUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_datausage_ug_cb_resize);     /* fix flash issue for gallery */
115         datausageUG->ug = ug;
116
117         /*  delete the allocated objects. */
118         setting_view_destroy(&setting_view_datausage_main, datausageUG);
119         if (NULL != ug_get_layout(datausageUG->ug)) {
120                 evas_object_hide((Evas_Object *) ug_get_layout(datausageUG->ug));
121                 evas_object_del((Evas_Object *) ug_get_layout(datausageUG->ug));
122         }
123
124         SETTING_TRACE_END;
125 }
126
127 static void setting_datausage_ug_on_message(ui_gadget_h ug, service_h msg,
128                                        service_h service, void *priv)
129 {
130         SETTING_TRACE_BEGIN;
131 }
132
133 static void setting_datausage_ug_on_event(ui_gadget_h ug, enum ug_event event,
134                                      service_h service, void *priv)
135 {
136         SETTING_TRACE_BEGIN;
137         setting_retm_if((!ug || !priv), "!ug || !priv");
138         SettingDatausageUG *datausageUG = priv;
139
140         switch (event) {
141         case UG_EVENT_LOW_MEMORY:
142                 break;
143         case UG_EVENT_LOW_BATTERY:
144                 break;
145         case UG_EVENT_LANG_CHANGE:
146                 break;
147         case UG_EVENT_ROTATE_PORTRAIT:
148         case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
149                 {
150                         if (datausageUG->graph_desc) {
151                                 elm_object_item_data_set(datausageUG->graph_desc->item, datausageUG->graph_desc);
152                                 elm_genlist_item_update(datausageUG->graph_desc->item);
153                         }
154                 }
155                 break;
156         case UG_EVENT_ROTATE_LANDSCAPE:
157         case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
158                 {
159                         if (datausageUG->graph_desc) {
160                                 elm_object_item_data_set(datausageUG->graph_desc->item, datausageUG->graph_desc);
161                                 elm_genlist_item_update(datausageUG->graph_desc->item);
162                         }
163                 }
164                 break;
165         case UG_EVENT_REGION_CHANGE:
166                 break;
167         default:
168                 break;
169         }
170 }
171
172 static void setting_datausage_ug_on_key_event(ui_gadget_h ug,
173                                          enum ug_key_event event, service_h service,
174                                          void *priv)
175 {
176         SETTING_TRACE_BEGIN;
177         if (!ug)
178                 return;
179
180         switch (event) {
181         case UG_KEY_EVENT_END:
182                 ug_destroy_me(ug);
183                 break;
184         default:
185                 break;
186         }
187 }
188
189 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
190 {
191         SETTING_TRACE_BEGIN;
192         SettingDatausageUG *datausageUG = calloc(1, sizeof(SettingDatausageUG));
193         setting_retvm_if(!datausageUG, -1, "Create SettingDatausageUG obj failed");
194
195         ops->create = setting_datausage_ug_on_create;
196         ops->start = setting_datausage_ug_on_start;
197         ops->pause = setting_datausage_ug_on_pause;
198         ops->resume = setting_datausage_ug_on_resume;
199         ops->destroy = setting_datausage_ug_on_destroy;
200         ops->message = setting_datausage_ug_on_message;
201         ops->event = setting_datausage_ug_on_event;
202         ops->key_event = setting_datausage_ug_on_key_event;
203         ops->priv = datausageUG;
204         ops->opt = UG_OPT_INDICATOR_ENABLE;
205
206         return 0;
207 }
208
209 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
210 {
211         SETTING_TRACE_BEGIN;
212         SettingDatausageUG *datausageUG = NULL;
213         setting_retm_if(!ops, "ops == NULL");
214
215         datausageUG = ops->priv;
216         FREE(datausageUG);
217 }