4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
6 * Contact: MyoungJune Park <mj2004.park@samsung.com>
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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.
23 *@defgroup setting-fileview
24 *UG creation code for setting-fileview
28 #include <setting-fileview.h>
30 #define UG_MODULE_API __attribute__ ((visibility("default")))
33 bool __parse_ug_argument(service_h service, void *priv)
36 SettingFileviewUG *ad = priv;
37 ad->input_file = NULL;
39 service_get_extra_data(service, "file", &(ad->input_file));
40 setting_retvm_if(!ad->input_file, FALSE, "no arguement to specialize file");
42 ad->input_title = NULL;
44 service_get_extra_data(service, "title", &(ad->input_title));
45 setting_retvm_if(!ad->input_title, FALSE, "no arguement to title");
46 SETTING_TRACE("ad->input_file:%s", ad->input_file);
47 SETTING_TRACE("ad->input_title:%s", ad->input_title);
52 * Event process when the sizeof UG view changes
59 static void setting_fileview_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
62 SettingFileviewUG *ad = (SettingFileviewUG *) data;
63 setting_view_update(&setting_view_fileview_main, ad);
67 * on_create function of the UG
76 static void *setting_fileview_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
77 service_h service, void *priv)
80 setting_retvm_if((NULL == priv), NULL, "NULL == priv");
81 SettingFileviewUG *fileviewUG = priv;
84 fileviewUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
85 fileviewUG->win_get = (Evas_Object *) ug_get_window();
86 evas_object_show(fileviewUG->win_main_layout);
87 fileviewUG->evas = evas_object_evas_get(fileviewUG->win_main_layout);
89 setting_retvm_if(fileviewUG->win_main_layout == NULL, NULL,
90 "cannot get main window ");
92 /* creating a view. */
93 if (!__parse_ug_argument(service, priv))
95 SETTING_TRACE_ERROR("Invalid arguement");
98 setting_view_create(&setting_view_fileview_main, (void *)fileviewUG);
99 evas_object_event_callback_add(fileviewUG->win_main_layout,
100 EVAS_CALLBACK_RESIZE,
101 setting_fileview_ug_cb_resize, fileviewUG);
102 return fileviewUG->ly_main;
105 static void setting_fileview_ug_on_start(ui_gadget_h ug, service_h service,
110 static void setting_fileview_ug_on_pause(ui_gadget_h ug, service_h service,
114 setting_retm_if(NULL == priv, "NULL == priv");
115 SettingFileviewUG *fileviewUG = priv;
116 if (fileviewUG->webkit) {
117 ewk_view_visibility_set(fileviewUG->webkit, EINA_FALSE);
121 static void setting_fileview_ug_on_resume(ui_gadget_h ug, service_h service,
125 setting_retm_if(NULL == priv, "NULL == priv");
126 SettingFileviewUG *fileviewUG = priv;
127 if (fileviewUG->webkit) {
128 ewk_view_visibility_set(fileviewUG->webkit, EINA_TRUE);
133 * on_destroy function of the UG
139 static void setting_fileview_ug_on_destroy(ui_gadget_h ug, service_h service,
143 setting_retm_if((!priv), "!priv");
144 SettingFileviewUG *fileviewUG = priv;
146 evas_object_event_callback_del(fileviewUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_fileview_ug_cb_resize); /* fix flash issue for gallery */
148 /* delete the allocated objects. */
149 setting_view_destroy(&setting_view_fileview_main, fileviewUG);
151 if (NULL != ug_get_layout(fileviewUG->ug)) {
152 evas_object_hide((Evas_Object *) ug_get_layout(fileviewUG->ug));
153 evas_object_del((Evas_Object *) ug_get_layout(fileviewUG->ug));
159 static void setting_fileview_ug_on_message(ui_gadget_h ug, service_h msg,
160 service_h service, void *priv)
165 static void setting_fileview_ug_on_event(ui_gadget_h ug, enum ug_event event,
166 service_h service, void *priv)
170 case UG_EVENT_LOW_MEMORY:
172 case UG_EVENT_LOW_BATTERY:
174 case UG_EVENT_LANG_CHANGE:
176 case UG_EVENT_ROTATE_PORTRAIT:
178 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
180 case UG_EVENT_ROTATE_LANDSCAPE:
182 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
184 case UG_EVENT_REGION_CHANGE:
191 static void setting_fileview_ug_on_key_event(ui_gadget_h ug,
192 enum ug_key_event event,
193 service_h service, void *priv)
196 SettingFileviewUG *ad = (SettingFileviewUG *) priv;
199 case UG_KEY_EVENT_END:
201 if (elm_naviframe_top_item_get(ad->navi_bar) ==
202 elm_naviframe_bottom_item_get(ad->navi_bar)) {
205 /* elm_naviframe_item_pop(ad->navi_bar); */
206 setting_view_cb_at_endKey(ad);
215 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
218 SettingFileviewUG *fileviewUG = calloc(1, sizeof(SettingFileviewUG));
219 setting_retvm_if(!fileviewUG, -1, "Create SettingFileviewUG obj failed");
221 ops->create = setting_fileview_ug_on_create;
222 ops->start = setting_fileview_ug_on_start;
223 ops->pause = setting_fileview_ug_on_pause;
224 ops->resume = setting_fileview_ug_on_resume;
225 ops->destroy = setting_fileview_ug_on_destroy;
226 ops->message = setting_fileview_ug_on_message;
227 ops->event = setting_fileview_ug_on_event;
228 ops->key_event = setting_fileview_ug_on_key_event;
229 ops->priv = fileviewUG;
230 ops->opt = UG_OPT_INDICATOR_ENABLE;
235 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
238 struct SettingFileviewUG *fileviewUG;
239 setting_retm_if(!ops, "ops == NULL");
241 fileviewUG = ops->priv;
247 /* ***************************************************
251 ****************************************************/