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,
116 static void setting_fileview_ug_on_resume(ui_gadget_h ug, service_h service,
123 * on_destroy function of the UG
129 static void setting_fileview_ug_on_destroy(ui_gadget_h ug, service_h service,
133 setting_retm_if((!priv), "!priv");
134 SettingFileviewUG *fileviewUG = priv;
136 evas_object_event_callback_del(fileviewUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_fileview_ug_cb_resize); /* fix flash issue for gallery */
138 /* delete the allocated objects. */
139 setting_view_destroy(&setting_view_fileview_main, fileviewUG);
141 if (NULL != ug_get_layout(fileviewUG->ug)) {
142 evas_object_hide((Evas_Object *) ug_get_layout(fileviewUG->ug));
143 evas_object_del((Evas_Object *) ug_get_layout(fileviewUG->ug));
149 static void setting_fileview_ug_on_message(ui_gadget_h ug, service_h msg,
150 service_h service, void *priv)
155 static void setting_fileview_ug_on_event(ui_gadget_h ug, enum ug_event event,
156 service_h service, void *priv)
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_fileview_ug_on_key_event(ui_gadget_h ug,
182 enum ug_key_event event,
183 service_h service, void *priv)
186 SettingFileviewUG *ad = (SettingFileviewUG *) priv;
189 case UG_KEY_EVENT_END:
191 if (elm_naviframe_top_item_get(ad->navi_bar) ==
192 elm_naviframe_bottom_item_get(ad->navi_bar)) {
195 /* elm_naviframe_item_pop(ad->navi_bar); */
196 setting_view_cb_at_endKey(ad);
205 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
208 SettingFileviewUG *fileviewUG = calloc(1, sizeof(SettingFileviewUG));
209 setting_retvm_if(!fileviewUG, -1, "Create SettingFileviewUG obj failed");
211 ops->create = setting_fileview_ug_on_create;
212 ops->start = setting_fileview_ug_on_start;
213 ops->pause = setting_fileview_ug_on_pause;
214 ops->resume = setting_fileview_ug_on_resume;
215 ops->destroy = setting_fileview_ug_on_destroy;
216 ops->message = setting_fileview_ug_on_message;
217 ops->event = setting_fileview_ug_on_event;
218 ops->key_event = setting_fileview_ug_on_key_event;
219 ops->priv = fileviewUG;
220 ops->opt = UG_OPT_INDICATOR_ENABLE;
225 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
228 struct SettingFileviewUG *fileviewUG;
229 setting_retm_if(!ops, "ops == NULL");
231 fileviewUG = ops->priv;
237 /* ***************************************************
241 ****************************************************/