3 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * Licensed under the Flora License, Version 1.0 (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.
19 *@defgroup setting-fileview
20 *UG creation code for setting-fileview
24 #include <setting-fileview.h>
26 #define UG_MODULE_API __attribute__ ((visibility("default")))
29 bool __parse_ug_argument(service_h service, void *priv)
32 SettingFileviewUG *ad = priv;
33 ad->input_file = NULL;
35 service_get_extra_data(service, "file", &(ad->input_file));
36 setting_retvm_if(!ad->input_file, FALSE, "no arguement to specialize file");
38 ad->input_title = NULL;
40 service_get_extra_data(service, "title", &(ad->input_title));
41 setting_retvm_if(!ad->input_title, FALSE, "no arguement to title");
42 SETTING_TRACE("ad->input_file:%s", ad->input_file);
43 SETTING_TRACE("ad->input_title:%s", ad->input_title);
48 * Event process when the sizeof UG view changes
55 static void setting_fileview_ug_cb_resize(void *data, Evas *e, Evas_Object *obj,
58 SettingFileviewUG *ad = (SettingFileviewUG *) data;
59 setting_view_update(&setting_view_fileview_main, ad);
63 * on_create function of the UG
72 static void *setting_fileview_ug_on_create(ui_gadget_h ug, enum ug_mode mode,
73 service_h service, void *priv)
76 setting_retvm_if((NULL == priv), NULL, "NULL == priv");
77 SettingFileviewUG *fileviewUG = priv;
80 fileviewUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
81 fileviewUG->win_get = (Evas_Object *) ug_get_window();
82 evas_object_show(fileviewUG->win_main_layout);
83 fileviewUG->evas = evas_object_evas_get(fileviewUG->win_main_layout);
85 setting_retvm_if(fileviewUG->win_main_layout == NULL, NULL,
86 "cannot get main window ");
88 /* creating a view. */
89 if (!__parse_ug_argument(service, priv))
91 SETTING_TRACE_ERROR("Invalid arguement");
94 setting_view_create(&setting_view_fileview_main, (void *)fileviewUG);
95 evas_object_event_callback_add(fileviewUG->win_main_layout,
97 setting_fileview_ug_cb_resize, fileviewUG);
98 return fileviewUG->ly_main;
101 static void setting_fileview_ug_on_start(ui_gadget_h ug, service_h service,
106 static void setting_fileview_ug_on_pause(ui_gadget_h ug, service_h service,
112 static void setting_fileview_ug_on_resume(ui_gadget_h ug, service_h service,
119 * on_destroy function of the UG
125 static void setting_fileview_ug_on_destroy(ui_gadget_h ug, service_h service,
129 setting_retm_if((!priv), "!priv");
130 SettingFileviewUG *fileviewUG = priv;
132 evas_object_event_callback_del(fileviewUG->win_main_layout, EVAS_CALLBACK_RESIZE, setting_fileview_ug_cb_resize); /* fix flash issue for gallery */
134 /* delete the allocated objects. */
135 setting_view_destroy(&setting_view_fileview_main, fileviewUG);
137 if (NULL != ug_get_layout(fileviewUG->ug)) {
138 evas_object_hide((Evas_Object *) ug_get_layout(fileviewUG->ug));
139 evas_object_del((Evas_Object *) ug_get_layout(fileviewUG->ug));
145 static void setting_fileview_ug_on_message(ui_gadget_h ug, service_h msg,
146 service_h service, void *priv)
151 static void setting_fileview_ug_on_event(ui_gadget_h ug, enum ug_event event,
152 service_h service, void *priv)
156 case UG_EVENT_LOW_MEMORY:
158 case UG_EVENT_LOW_BATTERY:
160 case UG_EVENT_LANG_CHANGE:
162 case UG_EVENT_ROTATE_PORTRAIT:
164 case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
166 case UG_EVENT_ROTATE_LANDSCAPE:
168 case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
170 case UG_EVENT_REGION_CHANGE:
177 static void setting_fileview_ug_on_key_event(ui_gadget_h ug,
178 enum ug_key_event event,
179 service_h service, void *priv)
182 SettingFileviewUG *ad = (SettingFileviewUG *) priv;
185 case UG_KEY_EVENT_END:
187 if (elm_naviframe_top_item_get(ad->navi_bar) ==
188 elm_naviframe_bottom_item_get(ad->navi_bar)) {
191 /* elm_naviframe_item_pop(ad->navi_bar); */
192 setting_view_cb_at_endKey(ad);
201 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
204 SettingFileviewUG *fileviewUG = calloc(1, sizeof(SettingFileviewUG));
205 setting_retvm_if(!fileviewUG, -1, "Create SettingFileviewUG obj failed");
207 ops->create = setting_fileview_ug_on_create;
208 ops->start = setting_fileview_ug_on_start;
209 ops->pause = setting_fileview_ug_on_pause;
210 ops->resume = setting_fileview_ug_on_resume;
211 ops->destroy = setting_fileview_ug_on_destroy;
212 ops->message = setting_fileview_ug_on_message;
213 ops->event = setting_fileview_ug_on_event;
214 ops->key_event = setting_fileview_ug_on_key_event;
215 ops->priv = fileviewUG;
216 ops->opt = UG_OPT_INDICATOR_ENABLE;
221 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
224 struct SettingFileviewUG *fileviewUG;
225 setting_retm_if(!ops, "ops == NULL");
227 fileviewUG = ops->priv;
233 /* ***************************************************
237 ****************************************************/