3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.1 (the License);
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://floralicense.org/license/
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an AS IS BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 #include <setting-viewtype.h>
20 #define UG_MODULE_API __attribute__ ((visibility("default")))
23 setting_view *__get_viewtype_view_to_load(service_h service)
27 const char *viewtype = NULL;
28 service_get_extra_data(service, "viewtype", &viewtype);
32 SETTING_TRACE("viewtype:%s", viewtype);
34 if (!safeStrCmp(viewtype, "taskswitcher")) {
35 return &setting_view_task_switcher_viewtype;
37 return NULL; /* &setting_view_viewtype_main; */
42 Evas_Object *__get_viewtype_layout_to_return(service_h service, void *priv)
45 SettingViewTypeUG *viewtypeUG = priv;
46 const char *viewtype = NULL;
47 service_get_extra_data(service, "viewtype", &viewtype);
51 SETTING_TRACE("viewtype:%s", viewtype);
53 if (!safeStrCmp(viewtype, "taskswitcher")) {
54 return viewtypeUG->ly_task;
56 return NULL; /* &setting_view_viewtype_main; */
61 static void setting_viewtype_ug_cb_resize(void *data, Evas *e,
62 Evas_Object *obj, void *event_info)
64 SettingViewTypeUG *ad = (SettingViewTypeUG *) data;
65 /* setting_view_update(&setting_view_about_main, ad); */
66 setting_view_update(ad->view_to_load, ad);
69 static void *setting_viewtype_ug_on_create(ui_gadget_h ug,
70 enum ug_mode mode, service_h service,
73 setting_retvm_if((!priv), NULL, "!priv");
75 SettingViewTypeUG *viewtypeUG = priv;
78 viewtypeUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
79 viewtypeUG->win_get = (Evas_Object *) ug_get_window();
80 evas_object_show(viewtypeUG->win_main_layout);
81 viewtypeUG->evas = evas_object_evas_get(viewtypeUG->win_main_layout);
83 setting_retvm_if(viewtypeUG->win_main_layout == NULL, NULL,
84 "cannot get main window ");
87 setting_create_Gendial_itc("dialogue/1text.1icon.2",
88 &(viewtypeUG->itc_1text_1icon_2));
90 viewtypeUG->itc_seperator.item_style = "dialogue/separator";
91 viewtypeUG->itc_seperator.func.text_get = NULL;
92 viewtypeUG->itc_seperator.func.content_get = NULL;
93 viewtypeUG->itc_seperator.func.state_get = NULL;
94 viewtypeUG->itc_seperator.func.del = NULL;
96 /* creating a view. */
97 /* setting_view_create(&setting_view_viewtype_main, (void *)viewtypeUG); */
98 viewtypeUG->view_to_load = __get_viewtype_view_to_load(data);
99 setting_retvm_if(NULL == viewtypeUG->view_to_load, NULL,
100 "NULL == viewtypeUG->view_to_load");
101 setting_view_create(viewtypeUG->view_to_load, (void *)viewtypeUG);
102 evas_object_event_callback_add(viewtypeUG->win_main_layout,
103 EVAS_CALLBACK_RESIZE,
104 setting_viewtype_ug_cb_resize,
106 return __get_viewtype_layout_to_return(data, viewtypeUG);
109 static void setting_viewtype_ug_on_start(ui_gadget_h ug, service_h service,
114 static void setting_viewtype_ug_on_pause(ui_gadget_h ug, service_h service,
119 static void setting_viewtype_ug_on_resume(ui_gadget_h ug, service_h service,
124 static void setting_viewtype_ug_on_destroy(ui_gadget_h ug, service_h service,
128 setting_retm_if((!priv), "!priv");
129 SettingViewTypeUG *viewtypeUG = priv;
131 evas_object_event_callback_del(viewtypeUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_viewtype_ug_cb_resize); /* fix flash issue for gallery */
134 /* called when this shared gadget is terminated. similar with app_exit */
135 if (&setting_view_task_switcher_viewtype == viewtypeUG->view_to_load) {
136 setting_view_destroy(&setting_view_task_switcher_viewtype,
140 if (NULL != ug_get_layout(viewtypeUG->ug)) {
141 evas_object_hide((Evas_Object *) ug_get_layout(viewtypeUG->ug));
142 evas_object_del((Evas_Object *) ug_get_layout(viewtypeUG->ug));
148 static void setting_viewtype_ug_on_message(ui_gadget_h ug, service_h msg,
149 service_h service, void *priv)
154 static void setting_viewtype_ug_on_event(ui_gadget_h ug,
155 enum ug_event event, service_h service,
160 case UG_EVENT_LOW_MEMORY:
162 case UG_EVENT_LOW_BATTERY:
164 case UG_EVENT_LANG_CHANGE:
166 case UG_EVENT_ROTATE_PORTRAIT:
168 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
170 case UG_EVENT_ROTATE_LANDSCAPE:
172 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
174 case UG_EVENT_REGION_CHANGE:
181 static void setting_viewtype_ug_on_key_event(ui_gadget_h ug,
182 enum ug_key_event event,
183 service_h service, void *priv)
188 case UG_KEY_EVENT_END:
196 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
199 SettingViewTypeUG *viewtypeUG = calloc(1, sizeof(SettingViewTypeUG));
200 setting_retvm_if(!viewtypeUG, -1,
201 "Create SettingViewTypeUG obj failed");
203 ops->create = setting_viewtype_ug_on_create;
204 ops->start = setting_viewtype_ug_on_start;
205 ops->pause = setting_viewtype_ug_on_pause;
206 ops->resume = setting_viewtype_ug_on_resume;
207 ops->destroy = setting_viewtype_ug_on_destroy;
208 ops->message = setting_viewtype_ug_on_message;
209 ops->event = setting_viewtype_ug_on_event;
210 ops->key_event = setting_viewtype_ug_on_key_event;
211 ops->priv = viewtypeUG;
212 ops->opt = UG_OPT_INDICATOR_ENABLE;
217 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
220 struct SettingViewTypeUG *viewtypeUG;
221 setting_retm_if(!ops, "ops == NULL");
223 viewtypeUG = ops->priv;
228 /* ***************************************************
232 ***************************************************/
235 * Reset function to 'reset' the settings of the UG, it will be invoked by 'Reset' UG
237 UG_MODULE_API int setting_plugin_reset(service_h service, void *priv)
241 #if SUPPORT_RUN_SYSTEM_COMMAND
242 ret += excuteCmd(SETTING_POSTINST_FILE, 1, "viewtype");
244 #ifdef UNUSED_VCONFKEY
245 ret += vconf_set_int(VCONFKEY_TASKSWITCHER_VIEWTYPE, VCONFKEY_TASKSWITCHER_VIEWTYPE_LIST);