4 * Copyright 2012 Samsung Electronics Co., Ltd
\r
6 * Licensed under the Flora License, Version 1.0 (the "License");
\r
7 * you may not use this file except in compliance with the License.
\r
8 * You may obtain a copy of the License at
\r
10 * http://www.tizenopensource.org/license
\r
12 * Unless required by applicable law or agreed to in writing, software
\r
13 * distributed under the License is distributed on an "AS IS" BASIS,
\r
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
15 * See the License for the specific language governing permissions and
\r
16 * limitations under the License.
\r
22 #include "mf-ug-winset.h"
\r
23 #include "mf-ug-cb.h"
\r
24 #include "mf-ug-fm-svc-wrapper.h"
\r
25 #include "mf-ug-util.h"
\r
26 #include "mf-ug-fs-util.h"
\r
27 #include "mf-ug-resource.h"
\r
30 /******************************
\r
31 ** Prototype : __mf_ug_navi_bar_create_group_radio_box
\r
32 ** Description : Samsung
\r
33 ** Input : void *data
\r
40 ** 1.Date : 2010/12/10
\r
42 ** Modification : Created function
\r
44 ******************************/
\r
45 static void __mf_ug_navi_bar_create_group_radio_box(void *data)
\r
48 ugData *ugd = (ugData *)data;
\r
49 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
51 Evas_Object *group_radio = NULL;
\r
53 if (ugd->ug_MainWindow.ug_pRadioGroup != NULL) {
\r
54 evas_object_del(ugd->ug_MainWindow.ug_pRadioGroup);
\r
55 ugd->ug_MainWindow.ug_pRadioGroup = NULL;
\r
58 group_radio = elm_radio_add(ugd->ug_MainWindow.ug_pMainLayout);
\r
59 ug_mf_retm_if(group_radio == NULL, "ugd is NULL");
\r
61 elm_radio_value_set(group_radio, 0);
\r
62 evas_object_hide(group_radio);
\r
63 /*/Internal/invisible Radio Objects used to group the radio buttons in the list. */
\r
64 ugd->ug_MainWindow.ug_pRadioGroup = group_radio;
\r
69 /******************************
\r
70 ** Prototype : __mf_ug_navi_bar_push_content
\r
71 ** Description : Samsung
\r
72 ** Input : ugData *data
\r
73 ** Evas_Object *NaviContent
\r
80 ** 1.Date : 2010/12/10
\r
82 ** Modification : Created function
\r
84 ******************************/
\r
85 static void __mf_ug_navi_bar_push_content(void *data, Evas_Object *NaviContent)
\r
88 ug_mf_retm_if(data == NULL, "pNavi_s is NULL");
\r
89 ugData *ugd = (ugData *)data;
\r
90 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
\r
92 Evas_Object *NaviBar = ugd->ug_MainWindow.ug_pNaviBar;
\r
93 char *title = pNavi_s->ug_pNaviTitle;
\r
95 ugd->ug_MainWindow.ug_pPreNaviItem = ugd->ug_MainWindow.ug_pNaviItem;
\r
97 ugd->ug_MainWindow.ug_pNaviItem = elm_naviframe_item_push(NaviBar, title, NULL, NULL, NaviContent, MF_UG_NAVI_STYLE_ENABLE);
\r
102 static Evas_Object *__mf_ug_navi_bar_create_select_info(void *data, Evas_Object *parent)
\r
106 ugData *ugd = (ugData *)data;
\r
107 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
\r
108 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
110 Evas_Object *pSelectInfo = NULL;
\r
111 pSelectInfo = elm_notify_add(parent);
\r
112 elm_notify_orient_set(pSelectInfo, ELM_NOTIFY_ORIENT_BOTTOM);
\r
114 evas_object_smart_callback_add(pSelectInfo, "selectioninfo,timeout", mf_ug_cb_select_info_timeout_cb, ugd);
\r
115 evas_object_event_callback_add(pSelectInfo, EVAS_CALLBACK_SHOW, mf_ug_cb_select_info_show_cb, ugd);
\r
116 evas_object_event_callback_add(pSelectInfo, EVAS_CALLBACK_HIDE, mf_ug_cb_select_info_hide_cb, ugd);
\r
119 return pSelectInfo;
\r
122 static Evas_Object *__mf_ug_navi_bar_create_select_info_layout(Evas_Object *parent, Evas_Object *select_info)
\r
125 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
126 ug_mf_retvm_if(select_info == NULL, NULL, "select_info is NULL");
\r
128 Evas_Object *pSelectInfoLayout = NULL;
\r
130 pSelectInfoLayout = elm_layout_add(parent);
\r
131 //elm_layout_theme_set(pSelectInfoLayout, "standard", "selectioninfo", "bottom_86");
\r
132 elm_object_content_set(select_info, pSelectInfoLayout);
\r
135 return pSelectInfoLayout;
\r
138 void mf_ug_navi_bar_set_select_info_label(void *data, int dir_count, int file_count)
\r
141 ugData *ugd = (ugData *)data;
\r
142 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
144 ug_debug("dir count is [%d], file count is [%d]", dir_count, file_count);
\r
146 if (ugd->ug_MainWindow.ug_pLabel) {
\r
147 if (ugd->ug_MainWindow.ug_pSelectInfoLayout) {
\r
148 evas_object_del(ugd->ug_MainWindow.ug_pSelectInfoLayout);
\r
149 ugd->ug_MainWindow.ug_pSelectInfoLayout = NULL;
\r
151 if (ugd->ug_MainWindow.ug_pLabel) {
\r
152 evas_object_del(ugd->ug_MainWindow.ug_pLabel);
\r
153 ugd->ug_MainWindow.ug_pLabel = NULL;
\r
157 if (!ugd->ug_MainWindow.ug_pLabel) {
\r
158 /*Note: selectioninfo is kind of popup, so, do not swallow it to part of layout
\r
159 //And it should be attached on main layout because it calculate the position of itself by layout size (elm_layout_theme_set())
\r
160 //Evas_Object *countlabel = elm_selectioninfo_add(ugd->ug_MainWindow.ug_pMainLayout);
\r
163 ugd->ug_MainWindow.ug_pLabel = __mf_ug_navi_bar_create_select_info(ugd, ugd->ug_MainWindow.ug_pMainLayout);
\r
165 ugd->ug_MainWindow.ug_pSelectInfoLayout =
\r
166 __mf_ug_navi_bar_create_select_info_layout(ugd->ug_MainWindow.ug_pMainLayout, ugd->ug_MainWindow.ug_pLabel);
\r
167 elm_layout_theme_set(ugd->ug_MainWindow.ug_pSelectInfoLayout, "standard", "selectioninfo", "vertical/bottom_64");
\r
171 if (dir_count + file_count > 0) {
\r
172 char lable_dir[UG_LABEL_STRING_LENGTH] = { '\0', };
\r
173 char lable_file[UG_LABEL_STRING_LENGTH] = { '\0', };
\r
174 char *select_lable = NULL;
\r
175 /*1 TODO: need to update for multi-language */
\r
177 snprintf(lable_file, sizeof(lable_file), "%d", (dir_count+file_count));
\r
178 select_lable = g_strconcat("Selected (", lable_file, ")", NULL);
\r
180 elm_object_part_text_set(ugd->ug_MainWindow.ug_pSelectInfoLayout, "elm.text", select_lable);
\r
181 edje_object_part_text_set(_EDJ(ugd->ug_MainWindow.ug_pSelectInfoLayout), "elm.text", select_lable);
\r
182 elm_notify_timeout_set(ugd->ug_MainWindow.ug_pLabel, 3);
\r
183 evas_object_show(ugd->ug_MainWindow.ug_pLabel);
\r
185 evas_object_hide(ugd->ug_MainWindow.ug_pLabel);
\r
192 /******************************
\r
193 ** Prototype : mf_ug_navi_bar_create_navi_bar
\r
195 ** Input : Evas_Object* parent
\r
202 ** 1.Date : 2010/12/10
\r
203 ** Author : Samsung
\r
204 ** Modification : Created function
\r
206 ******************************/
\r
207 Evas_Object *mf_ug_navi_bar_create_navi_bar(Evas_Object *parent)
\r
210 Evas_Object *navi_bar = NULL;
\r
211 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
213 navi_bar = elm_naviframe_add(parent);
\r
214 ug_mf_retvm_if(navi_bar == NULL, NULL, "Failed elm_navigationbar_add");
\r
215 elm_naviframe_prev_btn_auto_pushed_set(navi_bar, EINA_FALSE);
\r
217 evas_object_show(navi_bar);
\r
224 /******************************
\r
225 ** Prototype : mf_ug_navi_bar_set_new_content
\r
226 ** Description : Samsung
\r
227 ** Input : Evas_Object *pLayout
\r
228 ** Evas_Object *NaviContent
\r
235 ** 1.Date : 2010/12/10
\r
236 ** Author : Samsung
\r
237 ** Modification : Created function
\r
239 ******************************/
\r
240 void mf_ug_navi_bar_set_new_content(Evas_Object *pLayout, Evas_Object *NaviContent)
\r
243 Evas_Object *unUsed = elm_object_part_content_unset(pLayout, "part1");
\r
244 evas_object_del(unUsed);
\r
245 elm_object_part_content_set(pLayout, "part1", NaviContent);
\r
249 Evas_Object *mf_ug_navi_bar_create_box(Evas_Object * parent)
\r
252 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
254 Evas_Object *box = NULL;
\r
255 box = elm_box_add(parent);
\r
256 ug_mf_retvm_if(box == NULL, NULL, "box is NULL");
\r
257 elm_object_focus_set(box, EINA_FALSE);
\r
258 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
\r
259 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
260 elm_box_clear(box);
\r
261 evas_object_show(box);
\r
267 Evas_Object *mf_ug_navi_bar_create_layout(Evas_Object *parent, const char *edj, const char *grp_name)
\r
270 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
271 ug_mf_retvm_if(edj == NULL, NULL, "edj is NULL");
\r
272 ug_mf_retvm_if(grp_name == NULL, NULL, "grp_name is NULL");
\r
274 Evas_Object *layout = NULL;
\r
276 layout = elm_layout_add(parent);
\r
277 ug_mf_retvm_if(layout == NULL, NULL, "layout is NULL");
\r
278 elm_object_focus_set(layout, EINA_FALSE);
\r
279 elm_layout_file_set(layout, edj, grp_name);
\r
280 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
281 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
282 evas_object_show(layout);
\r
288 /******************************
\r
289 ** Prototype : mf_ug_navi_bar_create_default_view
\r
290 ** Description : Samsung
\r
291 ** Input : void *data
\r
298 ** 1.Date : 2010/12/10
\r
299 ** Author : Samsung
\r
300 ** Modification : Created function
\r
302 ******************************/
\r
303 Evas_Object *__mf_ug_navi_bar_pathinfo_create(Evas_Object *parent, const char *content)
\r
306 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
\r
307 ug_mf_retvm_if(content == NULL, NULL, "content is NULL");
\r
309 Evas_Object *layout = NULL;
\r
311 layout = elm_layout_add(parent);
\r
312 elm_object_focus_set(layout, EINA_FALSE);
\r
313 elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_PATH_INFO);
\r
314 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
\r
315 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
317 elm_object_part_text_set(layout, "info", content);
\r
318 evas_object_show(layout);
\r
323 void mf_ug_navi_bar_title_set(void *data)
\r
326 ugData *ugd = (ugData *)data;
\r
327 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
329 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE) {
\r
331 elm_object_part_text_set(ugd->ug_MainWindow.ug_pNaviBar, "elm.text.title", MF_UG_LABEL_IMPORT);
\r
332 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
\r
333 mf_ug_search_view_enter_search_routine(ugd, NULL, NULL);
\r
334 } else if ((ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true)) {
\r
336 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
\r
337 } else if (!mf_ug_fm_svc_wapper_is_root_path(ugd)) {
\r
339 Evas_Object *home_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
\r
340 elm_object_style_set(home_btn, "naviframe/title/default");
\r
341 elm_object_text_set(home_btn, MF_UG_LABEL_HOME);
\r
342 evas_object_smart_callback_add(home_btn, "clicked", mf_ug_cb_home_button_cb, ugd);
\r
343 evas_object_show(home_btn);
\r
344 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_left_btn", home_btn);
\r
346 Evas_Object *up_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
\r
347 elm_object_style_set(up_btn, "naviframe/title/default");
\r
348 elm_object_text_set(up_btn, MF_UG_LABEL_UPPER);
\r
349 evas_object_smart_callback_add(up_btn, "clicked", mf_ug_cb_upper_click_cb, ugd);
\r
350 evas_object_show(up_btn);
\r
351 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_right_btn", up_btn);
\r
352 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
\r
353 } else if (ugd->ug_Status.ug_iMmcFlag == MMC_OFF && mf_ug_fm_svc_wapper_is_root_path(ugd)) {
\r
355 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
\r
358 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_FALSE);
\r
363 void mf_ug_navi_bar_create_default_view(void *data)
\r
366 ugData *ugd = (ugData *)data;
\r
367 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
369 GString *title = NULL;
\r
370 Evas_Object *pNaviLayout = NULL;
\r
371 Evas_Object *newContent = NULL;
\r
372 Evas_Object *box = NULL;
\r
373 Evas_Object *top_layout = NULL;
\r
374 Evas_Object *upper_genlist = NULL;
\r
375 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
\r
376 ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed");
\r
379 /*if the muisc is playing, destory the play */
\r
380 if (0 != ugd->ug_ListPlay.ug_Player) {
\r
381 mf_ug_list_play_destory_playing_file(ugd);
\r
384 box = mf_ug_navi_bar_create_box(ugd->ug_MainWindow.ug_pNaviBar);
\r
385 pNaviLayout = mf_ug_navi_bar_create_layout(box, UG_EDJ_NAVIGATIONBAR, UG_GRP_NAVI_VIEW);
\r
386 ugd->ug_MainWindow.ug_pNaviLayout = pNaviLayout;
\r
388 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE) {
\r
389 newContent = __mf_ug_genlist_create_gl(ugd);
\r
390 ugd->ug_MainWindow.ug_pContent = newContent;
\r
393 if (ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true) {
\r
394 top_layout = mf_ug_navi_bar_create_box(box);
\r
395 evas_object_size_hint_min_set(top_layout, MF_UG_UPPER_WIDTH, MF_UG_UPPER_HEIGHT);
\r
396 upper_genlist = mf_navi_bar_upper_create(top_layout);
\r
397 mf_ug_genlist_goto_myfile_style_set(ugd);
\r
398 mf_ug_genlist_goto_myfile_item_append(upper_genlist, ugd);
\r
399 ugd->ug_Status.ug_bUpperFlag = true;
\r
400 elm_box_pack_end(top_layout, upper_genlist);
\r
401 } else if (!mf_ug_fm_svc_wapper_is_root_path(ugd)){
\r
402 Evas_Object *pathinfo_layout = NULL;
\r
403 Evas_Object *upper_layout = NULL;
\r
404 char *pathinfo = NULL;
\r
407 top_layout = mf_ug_navi_bar_create_box(box);
\r
408 evas_object_size_hint_weight_set(top_layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
\r
409 evas_object_size_hint_align_set(top_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
\r
410 elm_box_clear(top_layout);
\r
411 //evas_object_size_hint_min_set(top_layout, MF_UG_UPPER_WIDTH, MF_UG_UPPER_HEIGHT);
\r
413 pathinfo = mf_ug_fm_svc_wapper_path_info_get(ugd->ug_Status.ug_pPath->str);
\r
414 info = mf_ug_fm_svc_path_info_translate(pathinfo, MF_UG_PATH_INFO_MAX_LENGTH_PORTRAIT);
\r
416 //Evas_Object *genlist = mf_ug_genlist_create_path_info(top_layout, &ugd->ug_Status.ug_pathinfoitec, info);
\r
418 pathinfo_layout = __mf_ug_navi_bar_pathinfo_create(top_layout, info);
\r
420 elm_box_pack_end(top_layout, pathinfo_layout);
\r
421 ugd->ug_Status.ug_bUpperFlag = true;
\r
425 elm_box_pack_start(box, top_layout);
\r
427 ugd->ug_Status.ug_bUpperFlag = true;
\r
430 if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
\r
431 __mf_ug_navi_bar_create_group_radio_box(ugd);
\r
433 newContent = mf_ug_genlist_create_content_list_view(ugd);
\r
434 ugd->ug_MainWindow.ug_pContent = newContent;
\r
435 /*set title segment or title */
\r
436 if (mf_ug_fm_svc_wapper_is_root_path(ugd)) {
\r
437 title = g_string_new(MF_UG_LABEL_MYFILES);
\r
439 title = mf_ug_fm_svc_wapper_get_file_name(ugd->ug_Status.ug_pPath);
\r
442 if (title != NULL) {
\r
443 pNavi_s->ug_pNaviTitle = g_strdup(title->str);
\r
444 g_string_free(title, TRUE);
\r
449 /*navigation view integration */
\r
450 evas_object_show(newContent);
\r
451 elm_object_part_content_set(pNaviLayout, "part1", newContent);
\r
452 elm_box_pack_end(box, pNaviLayout);
\r
453 ugd->ug_MainWindow.ug_pNaviBox = box;
\r
454 __mf_ug_navi_bar_push_content(ugd, box);
\r
456 /*add control bar for navigation bar */
\r
457 mf_ug_ctrl_bar_set(ugd, pNavi_s);
\r
459 mf_ug_navi_bar_title_set(ugd);
\r
460 mf_ug_navi_bar_remove_previous_contents(ugd);
\r
465 void mf_ug_navi_bar_create_new_folder_view(void *data)
\r
469 ugData *ugd = (ugData *)data;
\r
470 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
472 Evas_Object *newContent = NULL;
\r
474 Evas_Object *pNaviBar = NULL;
\r
475 GString *title = NULL;
\r
477 mf_ug_navi_bar_set_navi_to_main(ugd);
\r
479 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
\r
480 ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
\r
482 pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
\r
485 newContent = mf_ug_genlist_create_list_new_folder_style(ugd);
\r
486 /*set title segment or title*/
\r
487 title = g_string_new(MF_UG_LABEL_CREATE);
\r
489 if (title != NULL) {
\r
490 pNavi_s->ug_pNaviTitle = g_strdup(title->str);
\r
491 g_string_free(title, TRUE);
\r
494 /*navigation view integration*/
\r
495 __mf_ug_navi_bar_push_content(ugd, newContent);
\r
497 Evas_Object *l_bt = NULL;
\r
498 Evas_Object *r_bt = NULL;
\r
499 r_bt = elm_button_add(pNaviBar);
\r
500 elm_object_focus_set(r_bt, EINA_FALSE);
\r
501 elm_object_style_set(r_bt, "naviframe/title/default");
\r
502 elm_object_text_set(r_bt, MF_UG_LABEL_CANCEL);
\r
503 evas_object_smart_callback_add(r_bt, "clicked", mf_ug_cb_cancel_new_folder_cb, ugd);
\r
504 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_right_btn", r_bt);
\r
506 l_bt = elm_button_add(pNaviBar);
\r
507 elm_object_focus_set(l_bt, EINA_FALSE);
\r
508 elm_object_style_set(l_bt, "naviframe/title/default");
\r
509 elm_object_text_set(l_bt, MF_UG_LABEL_SAVE);
\r
510 evas_object_smart_callback_add(l_bt, "clicked", mf_ug_cb_save_cb, ugd);
\r
511 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_left_btn", l_bt);
\r
517 /******************************
\r
518 ** Prototype : mf_ug_navi_bar_get_in_use_navi
\r
519 ** Description : Samsung
\r
520 ** Input : void* data
\r
527 ** 1.Date : 2010/12/10
\r
528 ** Author : Samsung
\r
529 ** Modification : Created function
\r
531 ******************************/
\r
532 ugNaviBar *mf_ug_navi_bar_get_in_use_navi(void *data)
\r
535 ugData *ugd = (ugData *)data;
\r
536 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
\r
538 Eina_List *pNaviList = ugd->ug_MainWindow.ug_pNaviBarList;
\r
539 ug_mf_retvm_if(pNaviList == NULL, NULL, "pNavi_sList is NULL");
\r
541 ugNaviBar *ret = NULL;
\r
542 Eina_List *l = NULL;
\r
545 EINA_LIST_FOREACH(pNaviList, l, item) {
\r
546 ret = (ugNaviBar *)item;
\r
547 if (ret->ug_bNaviFlagInUse == TRUE) {
\r
558 /******************************
\r
559 ** Prototype : mf_ug_navi_bar_reset_navi_object
\r
560 ** Description : Samsung
\r
561 ** Input : ugNaviBar *pNavi_s
\r
568 ** 1.Date : 2010/12/10
\r
569 ** Author : Samsung
\r
570 ** Modification : Created function
\r
572 ******************************/
\r
573 void mf_ug_navi_bar_reset_navi_object(ugNaviBar *pNavi_s)
\r
576 ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
\r
578 pNavi_s->ug_pNaviTitle = NULL;
\r
579 if (pNavi_s->ug_pCurrentPath != NULL) {
\r
580 free(pNavi_s->ug_pCurrentPath);
\r
581 pNavi_s->ug_pCurrentPath = NULL;
\r
583 if (pNavi_s->ug_pNaviLabel != NULL)
\r
584 free(pNavi_s->ug_pNaviLabel);
\r
585 pNavi_s->ug_pNaviLabel = NULL;
\r
589 /******************************
\r
590 ** Prototype : mf_ug_navi_bar_get_navi_struct_by_label
\r
591 ** Description : Samsung
\r
592 ** Input : void* data
\r
593 ** const char* pNaviLabel
\r
600 ** 1.Date : 2010/12/10
\r
601 ** Author : Samsung
\r
602 ** Modification : Created function
\r
604 ******************************/
\r
605 ugNaviBar *mf_ug_navi_bar_get_navi_struct_by_label(void *data, const char *pNaviLabel)
\r
608 ugData *ugd = (ugData *)data;
\r
609 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
\r
610 ug_mf_retvm_if(pNaviLabel == NULL, NULL, "pNaviLabel is NULL");
\r
612 Eina_List *l = NULL;
\r
615 ugNaviBar *ret = NULL;
\r
616 EINA_LIST_FOREACH(ugd->ug_MainWindow.ug_pNaviBarList, l, item) {
\r
617 if (g_strcmp0(((ugNaviBar *)item)->ug_pNaviLabel, pNaviLabel) == 0) {
\r
618 ret = (ugNaviBar *)item;
\r
627 /******************************
\r
628 ** Prototype : mf_ug_navi_bar_remove_navi_list_item_by_label
\r
629 ** Description : Samsung
\r
630 ** Input : void *data
\r
631 ** const char* pNaviLabel
\r
638 ** 1.Date : 2010/12/10
\r
639 ** Author : Samsung
\r
640 ** Modification : Created function
\r
642 ******************************/
\r
643 void mf_ug_navi_bar_remove_navi_list_item_by_label(void *data, const char *pNaviLabel)
\r
646 ugData *ugd = (ugData *)data;
\r
647 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
648 ug_mf_retm_if(pNaviLabel == NULL, "pNaviLabel is NULL");
\r
650 bool bInUseFlag = FALSE;
\r
652 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_navi_struct_by_label(ugd, pNaviLabel);
\r
654 if (pNavi_s == NULL) {
\r
657 Eina_List *plistNaviMMC = eina_list_data_find_list(ugd->ug_MainWindow.ug_pNaviBarList, pNavi_s);
\r
658 ugd->ug_MainWindow.ug_pNaviBarList = eina_list_remove_list(ugd->ug_MainWindow.ug_pNaviBarList, plistNaviMMC);
\r
660 if (pNavi_s->ug_bNaviFlagInUse == TRUE) {
\r
664 mf_ug_navi_bar_reset_navi_object(pNavi_s);
\r
666 if (bInUseFlag == TRUE) {
\r
667 pNavi_s = (ugNaviBar *)eina_list_nth(ugd->ug_MainWindow.ug_pNaviBarList, 0);
\r
668 pNavi_s->ug_bNaviFlagInUse = TRUE;
\r
674 /******************************
\r
675 ** Prototype : mf_ug_navi_bar_refresh_navibar_recovered_view
\r
676 ** Description : Samsung
\r
677 ** Input : void *data
\r
678 ** ugNaviBar* pNaviStruct
\r
685 ** 1.Date : 2010/12/10
\r
686 ** Author : Samsung
\r
687 ** Modification : Created function
\r
689 ******************************/
\r
690 void mf_ug_navi_bar_refresh_navibar_recovered_view(void *data, ugNaviBar *pNaviStruct)
\r
693 ugData *ugd = (ugData *)data;
\r
694 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
\r
695 ug_mf_retm_if(pNaviStruct == NULL, "pNaviStruct is NULL");
\r
697 if (ugd->ug_Status.ug_pPath != NULL) {
\r
698 g_string_free(ugd->ug_Status.ug_pPath, TRUE);
\r
699 ugd->ug_Status.ug_pPath = NULL;
\r
701 ugd->ug_Status.ug_pPath = g_string_new(pNaviStruct->ug_pCurrentPath);
\r
702 Evas_Object *newContent = mf_ug_genlist_create_content_list_view(ugd);
\r
704 ugd->ug_MainWindow.ug_pContent = newContent;
\r
705 mf_ug_navi_bar_set_new_content(ugd->ug_MainWindow.ug_pNaviLayout, newContent);
\r
709 void mf_ug_navi_bar_transition_finished_cb(void *data, Evas_Object *obj, void *event_info)
\r
712 ug_mf_retm_if(data == NULL, "data is NULL");
\r
713 ug_mf_retm_if(obj == NULL, "obj is NULL");
\r
714 ugData *ugd = (ugData *)data;
\r
715 Elm_Object_Item *it = ugd->ug_MainWindow.ug_pPreNaviItem;
\r
716 UG_SAFE_DEL_NAVI_ITEM(it);
\r
717 ugd->ug_MainWindow.ug_pPreNaviItem = NULL;
\r
718 mf_ug_navi_bar_set_blocking(data, false);
\r
719 evas_object_smart_callback_del(obj, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
\r
723 void mf_ug_navi_bar_remove_previous_contents(void *data)
\r
727 ug_mf_retm_if(data == NULL, "data is NULL");
\r
728 ugData *ugd = (ugData *)data;
\r
729 Evas_Object *pNaviBar = NULL;
\r
730 if (ugd->ug_MainWindow.ug_pNaviBar) {
\r
731 pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
\r
732 mf_ug_navi_bar_set_blocking(data, true);
\r
733 evas_object_smart_callback_add(pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb, ugd);
\r
738 void mf_ug_navi_bar_del_item_directly(void *data)
\r
741 ug_mf_retm_if(data == NULL, "data is NULL");
\r
742 ugData *ugd = (ugData *)data;
\r
744 if (ugd->ug_Status.ug_b_NaviPushFlag) {
\r
745 ugNaviBar *pNavi_s_previous = NULL;
\r
746 pNavi_s_previous = mf_ug_navi_bar_get_in_use_navi(ugd) ;
\r
747 if(pNavi_s_previous && ugd->ug_MainWindow.ug_pPreNaviItem)
\r
749 UG_SAFE_DEL_NAVI_ITEM(ugd->ug_MainWindow.ug_pPreNaviItem);
\r
750 mf_ug_navi_bar_set_blocking(ugd, false);
\r
751 evas_object_smart_callback_del(ugd->ug_MainWindow.ug_pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
\r
758 void mf_ug_navi_bar_set_blocking(void *data, bool bblock_during_transition)
\r
760 ug_mf_retm_if(data == NULL, "data is NULL");
\r
761 ugData *ugd = (ugData *)data;
\r
763 ugd->ug_Status.ug_bCancelDisableFlag = bblock_during_transition;
\r
764 ugd->ug_Status.ug_b_NaviPushFlag = bblock_during_transition;
\r
768 ugNaviBar *ug_mf_navi_bar_get_navi_from_navilist(Eina_List *navilist, const char *label)
\r
772 ug_mf_retvm_if(navilist == NULL, NULL, "navilist is NULL");
\r
773 ug_mf_retvm_if(label == NULL, NULL, "label is NULL");
\r
776 ugNaviBar *pNavi = NULL;
\r
777 Eina_List *l = NULL;
\r
778 EINA_LIST_FOREACH(navilist, l, data) {
\r
780 pNavi = (ugNaviBar *)data;
\r
781 if (pNavi && pNavi->ug_pNaviLabel && g_strcmp0(label, pNavi->ug_pNaviLabel) == 0)
\r
790 void mf_ug_navi_bar_set_navi_to_main(void *data)
\r
793 ug_mf_retm_if(data == NULL, "data is NULL");
\r
794 ugData *ugd = (ugData *)data;
\r
796 if (ugd->ug_Status.ug_iMmcFlag != MMC_OFF) {
\r
797 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.content");
\r
798 evas_object_hide(ugd->ug_MainWindow.ug_pTabBar);
\r
799 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.tabbar");
\r
800 evas_object_hide(ugd->ug_MainWindow.ug_pTabLayout);
\r
801 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content");
\r
802 elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pNaviBar);
\r
803 evas_object_show(ugd->ug_MainWindow.ug_pMainLayout);
\r
808 void mf_ug_navi_bar_reset_tab_to_main(void *data)
\r
811 ug_mf_retm_if(data == NULL, "data is NULL");
\r
812 ugData *ugd = (ugData *)data;
\r
813 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
\r
815 if (ugd->ug_Status.ug_iMmcFlag != MMC_OFF) {
\r
816 if (mf_ug_fm_svc_wapper_is_root_path(ugd)) {
\r
817 Evas_Object *pOldContent = NULL;
\r
818 pOldContent = elm_object_part_content_unset(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content");
\r
819 elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.content", pOldContent);
\r
820 elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.tabbar", ugd->ug_MainWindow.ug_pTabBar);
\r
821 elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pTabLayout);
\r
822 evas_object_show(ugd->ug_MainWindow.ug_pTabLayout);
\r
823 evas_object_show(ugd->ug_MainWindow.ug_pTabBar);
\r
824 mf_ug_tab_bar_set_selected_item(mf_ug_tab_bar_get_item_by_label(ugd->ug_MainWindow.ug_pTabBar, pNavi_s->ug_pNaviLabel));
\r
827 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content");
\r
828 elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pNaviBar);
\r
829 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
\r