2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 #include "mf-ug-winset.h"
22 #include "mf-ug-fm-svc-wrapper.h"
23 #include "mf-ug-util.h"
24 #include "mf-ug-fs-util.h"
25 #include "mf-ug-resource.h"
28 /******************************
29 ** Prototype : __mf_ug_navi_bar_create_group_radio_box
30 ** Description : Samsung
38 ** 1.Date : 2010/12/10
40 ** Modification : Created function
42 ******************************/
43 static void __mf_ug_navi_bar_create_group_radio_box(void *data)
46 ugData *ugd = (ugData *)data;
47 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
49 Evas_Object *group_radio = NULL;
51 if (ugd->ug_MainWindow.ug_pRadioGroup != NULL) {
52 evas_object_del(ugd->ug_MainWindow.ug_pRadioGroup);
53 ugd->ug_MainWindow.ug_pRadioGroup = NULL;
56 group_radio = elm_radio_add(ugd->ug_MainWindow.ug_pMainLayout);
57 ug_mf_retm_if(group_radio == NULL, "ugd is NULL");
59 elm_radio_value_set(group_radio, 0);
60 evas_object_hide(group_radio);
61 /*/Internal/invisible Radio Objects used to group the radio buttons in the list. */
62 ugd->ug_MainWindow.ug_pRadioGroup = group_radio;
67 /******************************
68 ** Prototype : __mf_ug_navi_bar_push_content
69 ** Description : Samsung
70 ** Input : ugData *data
71 ** Evas_Object *NaviContent
78 ** 1.Date : 2010/12/10
80 ** Modification : Created function
82 ******************************/
83 static void __mf_ug_navi_bar_push_content(void *data, Evas_Object *NaviContent)
86 ug_mf_retm_if(data == NULL, "pNavi_s is NULL");
87 ugData *ugd = (ugData *)data;
88 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
90 Evas_Object *NaviBar = ugd->ug_MainWindow.ug_pNaviBar;
93 ugd->ug_MainWindow.ug_pPreNaviItem = ugd->ug_MainWindow.ug_pNaviItem;
96 if(!g_strcmp0(pNavi_s->ug_pNaviTitle, "Ringtones")) {
97 if (pNavi_s->ug_pNaviTitle) {
98 g_free(pNavi_s->ug_pNaviTitle);
99 pNavi_s->ug_pNaviTitle = NULL;
101 pNavi_s->ug_pNaviTitle = g_strdup(MF_UG_LABEL_RINGTONES);
102 } else if(!g_strcmp0(pNavi_s->ug_pNaviTitle, "Alarms")) {
103 if (pNavi_s->ug_pNaviTitle) {
104 g_free(pNavi_s->ug_pNaviTitle);
105 pNavi_s->ug_pNaviTitle = NULL;
107 pNavi_s->ug_pNaviTitle = g_strdup(MF_UG_LABEL_ALARM);
108 } else if (!g_strcmp0(pNavi_s->ug_pNaviTitle, "Alerts")) {
110 title = pNavi_s->ug_pNaviTitle;
112 ug_debug("title=%s", title);
114 ugd->ug_MainWindow.ug_pNaviItem = elm_naviframe_item_push(NaviBar, title, NULL, NULL, NaviContent, NULL);
120 static Eina_Bool __mf_widget_notify_popup_timer_cb(void *data)
122 ugData *ugd = (ugData *)data;
123 ug_mf_retvm_if(ugd == NULL, EINA_FALSE, "ugd is null");
125 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pNaviLayout,
128 UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pSelectInfoLayout);
129 ugd->ug_Status.pPopupTimer = NULL;
133 Evas_Object *mf_ug_navibar_create_notify_popup(void *data,
137 void func(void *data, Evas_Object *obj, void *event_info))
140 ug_mf_retvm_if(data == NULL, NULL, "data is NULL");
141 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
142 ug_mf_retvm_if(label == NULL, NULL, "label is NULL");
143 ugData *ugd = (ugData *)data;
146 Evas_Object *countlabel = NULL;
147 if (ugd->ug_MainWindow.ug_pSelectInfoLayout && ugd->ug_Status.pPopupTimer) {
148 elm_object_part_text_set(ugd->ug_MainWindow.ug_pSelectInfoLayout, "elm.text", label);
149 countlabel = ugd->ug_MainWindow.ug_pSelectInfoLayout;
151 elm_object_part_content_unset(ugd->ug_MainWindow.ug_pNaviLayout,
153 UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pSelectInfoLayout);
154 countlabel = elm_layout_add(parent);
155 evas_object_size_hint_weight_set(countlabel,
158 evas_object_size_hint_align_set(countlabel,
161 elm_layout_theme_set(countlabel, "standard", "selectioninfo", "center_text");
162 elm_object_part_text_set(countlabel, "elm.text", label);
163 elm_object_part_content_set(parent,
166 elm_object_signal_emit(countlabel, "show,selection,info", "elm");
169 UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.pPopupTimer);
171 ugd->ug_Status.pPopupTimer = ecore_timer_add(3, __mf_widget_notify_popup_timer_cb, ugd);
174 evas_object_show(countlabel);
181 /******************************
182 ** Prototype : mf_ug_navi_bar_create_navi_bar
184 ** Input : Evas_Object* parent
191 ** 1.Date : 2010/12/10
193 ** Modification : Created function
195 ******************************/
196 Evas_Object *mf_ug_navi_bar_create_navi_bar(Evas_Object *parent)
199 Evas_Object *navi_bar = NULL;
200 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
202 navi_bar = elm_naviframe_add(parent);
203 ug_mf_retvm_if(navi_bar == NULL, NULL, "Failed elm_navigationbar_add");
204 elm_naviframe_prev_btn_auto_pushed_set(navi_bar, EINA_FALSE);
206 evas_object_show(navi_bar);
213 /******************************
214 ** Prototype : mf_ug_navi_bar_set_new_content
215 ** Description : Samsung
216 ** Input : Evas_Object *pLayout
217 ** Evas_Object *NaviContent
224 ** 1.Date : 2010/12/10
226 ** Modification : Created function
228 ******************************/
229 void mf_ug_navi_bar_set_new_content(Evas_Object *pLayout, Evas_Object *NaviContent)
232 Evas_Object *unUsed = elm_object_part_content_unset(pLayout, "part1");
233 evas_object_del(unUsed);
234 elm_object_part_content_set(pLayout, "part1", NaviContent);
238 Evas_Object *mf_ug_navi_bar_create_box(Evas_Object * parent)
241 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
243 Evas_Object *box = NULL;
244 box = elm_box_add(parent);
245 ug_mf_retvm_if(box == NULL, NULL, "box is NULL");
246 elm_object_focus_set(box, EINA_FALSE);
247 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
248 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
250 evas_object_show(box);
256 Evas_Object *mf_ug_navi_bar_create_layout(Evas_Object *parent, const char *edj, const char *grp_name)
259 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
260 ug_mf_retvm_if(edj == NULL, NULL, "edj is NULL");
261 ug_mf_retvm_if(grp_name == NULL, NULL, "grp_name is NULL");
263 Evas_Object *layout = NULL;
265 layout = elm_layout_add(parent);
266 ug_mf_retvm_if(layout == NULL, NULL, "layout is NULL");
267 elm_object_focus_set(layout, EINA_FALSE);
268 elm_layout_file_set(layout, edj, grp_name);
269 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
270 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
271 evas_object_show(layout);
277 /******************************
278 ** Prototype : mf_ug_navi_bar_create_default_view
279 ** Description : Samsung
280 ** Input : void *data
287 ** 1.Date : 2010/12/10
289 ** Modification : Created function
291 ******************************/
292 Evas_Object *__mf_ug_navi_bar_pathinfo_create(Evas_Object *parent, const char *content)
295 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
296 ug_mf_retvm_if(content == NULL, NULL, "content is NULL");
298 Evas_Object *layout = NULL;
300 layout = elm_layout_add(parent);
301 elm_object_focus_set(layout, EINA_FALSE);
302 elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_PATH_INFO);
303 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
304 evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
306 elm_object_part_text_set(layout, "info", content);
307 evas_object_show(layout);
313 void mf_ug_navi_bar_title_set(void *data)
316 ugData *ugd = (ugData *)data;
317 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
318 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
319 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
320 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
321 elm_object_part_text_set(ugd->ug_MainWindow.ug_pNaviBar, "elm.text.title", MF_UG_LABEL_IMPORT);
322 } else if (ugd->ug_Status.ug_iViewType != mf_ug_view_root && !(ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true)) {
323 Evas_Object *home_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
324 elm_object_style_set(home_btn, "naviframe/title_icon");
325 Evas_Object *home_ic = elm_image_add(ugd->ug_MainWindow.ug_pNaviBar);
326 elm_image_file_set(home_ic, UG_TITLE_ICON_HOME, NULL);
327 elm_image_resizable_set(home_ic, EINA_TRUE, EINA_TRUE);
328 elm_object_content_set(home_btn, home_ic);
329 evas_object_smart_callback_add(home_btn, "clicked", mf_ug_cb_home_button_cb, ugd);
330 evas_object_smart_callback_add(home_btn, "pressed", mf_ug_cb_home_button_pressed_cb, home_ic);
331 evas_object_smart_callback_add(home_btn, "unpressed", mf_ug_cb_home_button_unpressed_cb, home_ic);
332 evas_object_show(home_btn);
333 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, TITLE_LEFT_BTN, home_btn);
335 Evas_Object *up_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
336 elm_object_style_set(up_btn, "naviframe/title_icon");
337 Evas_Object *up_ic = elm_image_add(ugd->ug_MainWindow.ug_pNaviBar);
338 elm_image_file_set(up_ic, UG_TITLE_ICON_UPPER, NULL);
339 elm_image_resizable_set(up_ic, EINA_TRUE, EINA_TRUE);
340 elm_object_content_set(up_btn, up_ic);
341 evas_object_smart_callback_add(up_btn, "clicked", mf_ug_cb_upper_click_cb, ugd);
342 evas_object_smart_callback_add(up_btn, "pressed", mf_ug_cb_upper_button_pressed_cb, up_ic);
343 evas_object_smart_callback_add(up_btn, "unpressed", mf_ug_cb_upper_button_unpressed_cb, up_ic);
344 evas_object_show(up_btn);
346 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, TITLE_RIGHT_BTN, up_btn);
348 elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
351 Eina_Bool mf_ug_navi_search_idler_cb(void *data)
354 ug_mf_retvm_if(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
355 ugData *ugd = (ugData *)data;
357 mf_ug_search_view_enter_search_routine(ugd, NULL, NULL);
358 ugd->ug_Status.search_idler = NULL;
360 return ECORE_CALLBACK_CANCEL;
362 Evas_Object *mf_ug_navi_bar_create_button(Evas_Object *parent, char *style,
363 char *caption, Evas_Object *icon,
364 void (*func) (void *, Evas_Object *, void *),
372 btn = elm_button_add(parent);
375 elm_object_style_set(btn, style);
378 elm_object_text_set(btn, caption);
382 elm_object_content_set(btn, icon);
384 elm_object_focus_allow_set(btn, EINA_FALSE);
385 evas_object_propagate_events_set(btn, EINA_FALSE);
387 evas_object_smart_callback_add(btn, "clicked", func, (void *)data);
392 Evas_Object *__mf_ug_navi_bar_backbutton_create(Evas_Object *parent)
395 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
397 Evas_Object *btn = NULL;
398 btn = elm_button_add(parent);
399 elm_object_style_set(btn, "naviframe/end_btn/default");
400 evas_object_show(btn);
405 void mf_ug_navi_add_back_button(void *data)
408 ug_mf_retm_if(data == NULL, "data is NULL");
409 ugData *ugd = (ugData *)data;
411 Evas_Object *pBackButton = NULL;
413 pBackButton = __mf_ug_navi_bar_backbutton_create(ugd->ug_MainWindow.ug_pNaviBar);
415 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "prev_btn", pBackButton);
416 evas_object_smart_callback_add(pBackButton, "clicked", mf_ug_cb_back_button_cb, ugd);
420 void mf_ug_navi_bar_set_ctrl_button(void *data)
423 ug_mf_retm_if(data == NULL, "data is NULL");
424 ugData *ugd = (ugData *)data;
425 Elm_Object_Item *navi_it = ugd->ug_MainWindow.ug_pNaviItem;//ap->mf_MainWindow.pNaviItem;
426 Evas_Object *pNavi = ugd->ug_MainWindow.ug_pNaviBar;
427 Evas_Object *bt_1 = NULL;
428 Evas_Object *bt_2 = NULL;
429 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
430 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
431 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
432 bt_1 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_STYLE, MF_UG_LABEL_IMPORT, NULL, mf_ug_cb_add_button_cb, ugd);
433 } else if (ugd->ug_Status.ug_iViewType != mf_ug_view_root) {
434 if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE) {
435 bt_1 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_STYLE, MF_UG_LABEL_EXPORT, NULL, mf_ug_cb_add_button_cb, ugd);
436 bt_2 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_EDIT, MF_UG_LABEL_CREATE, NULL, mf_ug_cb_more_cb, ugd);
437 } else if (ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE) {
438 bt_1 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_STYLE, MF_UG_LABEL_SAVE_HERE, NULL, mf_ug_cb_add_button_cb, ugd);
439 bt_2 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_EDIT, MF_UG_LABEL_CREATE, NULL, mf_ug_cb_more_cb, ugd);
440 } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
441 bt_1 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_STYLE, MF_UG_LABEL_SET, NULL, mf_ug_cb_add_button_cb, ugd);
443 else if (!(ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE)) {
444 bt_1 = mf_ug_navi_bar_create_button(pNavi, NAVI_BUTTON_STYLE, MF_UG_LABEL_ATTACH, NULL, mf_ug_cb_add_button_cb, ugd);
449 elm_object_item_part_content_set(navi_it, NAVI_BOTTOM_BUTTON_1_PART, bt_1);
452 elm_object_item_part_content_set(navi_it, NAVI_MORE_BUTTON_PART, bt_2);
454 mf_ug_navi_add_back_button(ugd);
457 void mf_ug_navi_bar_create_default_view(void *data)
460 ugData *ugd = (ugData *)data;
461 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
463 GString *title = NULL;
464 Evas_Object *pNaviLayout = NULL;
465 Evas_Object *newContent = NULL;
466 Evas_Object *box = NULL;
467 Evas_Object *top_layout = NULL;
468 Evas_Object *upper_genlist = NULL;
469 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
470 ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed");
473 /*if the muisc is playing, destory the play */
474 if (0 != ugd->ug_ListPlay.ug_Player) {
475 mf_ug_list_play_destory_playing_file(ugd);
476 UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath);
479 box = mf_ug_navi_bar_create_box(ugd->ug_MainWindow.ug_pNaviBar);
480 pNaviLayout = mf_ug_navi_bar_create_layout(box, UG_EDJ_NAVIGATIONBAR, UG_GRP_NAVI_VIEW);
481 ugd->ug_MainWindow.ug_pNaviLayout = pNaviLayout;
483 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
484 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
485 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
486 newContent = __mf_ug_genlist_create_gl(ugd);
487 ugd->ug_MainWindow.ug_pNaviGenlist = newContent;
490 if (ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true) {
491 top_layout = mf_ug_navi_bar_create_box(box);
492 evas_object_size_hint_min_set(top_layout, MF_UG_UPPER_WIDTH, MF_UG_UPPER_HEIGHT);
493 upper_genlist = mf_navi_bar_upper_create(top_layout);
494 elm_object_scroll_freeze_push(upper_genlist);
495 elm_genlist_scroller_policy_set(upper_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
496 mf_ug_genlist_goto_myfile_style_set(ugd);
497 mf_ug_genlist_goto_myfile_item_append(upper_genlist, ugd);
498 ugd->ug_Status.ug_bUpperFlag = true;
499 elm_box_pack_end(top_layout, upper_genlist);
500 } else if (ugd->ug_Status.ug_iViewType != mf_ug_view_root){
501 Evas_Object *pathinfo_layout = NULL;
502 char *pathinfo = NULL;
505 top_layout = mf_ug_navi_bar_create_box(box);
506 evas_object_size_hint_weight_set(top_layout, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
507 evas_object_size_hint_align_set(top_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
508 elm_box_clear(top_layout);
509 //evas_object_size_hint_min_set(top_layout, MF_UG_UPPER_WIDTH, MF_UG_UPPER_HEIGHT);
511 pathinfo = mf_ug_fm_svc_wapper_path_info_get(ugd->ug_Status.ug_pPath->str);
512 info = mf_ug_fm_svc_path_info_translate(pathinfo, MF_UG_PATH_INFO_MAX_LENGTH_PORTRAIT);
514 //Evas_Object *genlist = mf_ug_genlist_create_path_info(top_layout, &ugd->ug_Status.ug_pathinfoitec, info);
516 pathinfo_layout = __mf_ug_navi_bar_pathinfo_create(top_layout, info);
518 elm_box_pack_end(top_layout, pathinfo_layout);
519 ugd->ug_Status.ug_bUpperFlag = true;
523 elm_box_pack_start(box, top_layout);
525 ugd->ug_Status.ug_bUpperFlag = true;
528 if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
529 __mf_ug_navi_bar_create_group_radio_box(ugd);
531 newContent = mf_ug_genlist_create_content_list_view(ugd);
532 ugd->ug_MainWindow.ug_pNaviGenlist = newContent;
533 /*set title segment or title */
534 if (mf_ug_fm_svc_wapper_is_root_path(ugd->ug_Status.ug_pPath) || ugd->ug_Status.ug_iViewType == mf_ug_view_root) {
535 title = g_string_new(MF_UG_LABEL_MYFILES);
537 title = mf_ug_fm_svc_wapper_get_file_name(ugd->ug_Status.ug_pPath);
541 pNavi_s->ug_pNaviTitle = g_strdup(title->str);
542 g_string_free(title, TRUE);
547 /*navigation view integration */
548 evas_object_show(newContent);
549 elm_object_part_content_set(pNaviLayout, "part1", newContent);
550 elm_box_pack_end(box, pNaviLayout);
551 ugd->ug_MainWindow.ug_pNaviBox = box;
552 __mf_ug_navi_bar_push_content(ugd, box);
554 /*add control bar for navigation bar */
555 //mf_ug_ctrl_bar_set(ugd, pNavi_s);
556 mf_ug_navi_bar_set_ctrl_button(ugd);
558 mf_ug_navi_bar_title_set(ugd);
559 mf_ug_navi_bar_remove_previous_contents(ugd);
561 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
562 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
563 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
564 ug_ecore_idler_del(ugd->ug_Status.search_idler);
565 ugd->ug_Status.search_idler = ecore_idler_add(mf_ug_navi_search_idler_cb, ugd);
567 UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.play_timer);
571 void mf_ug_navi_bar_create_new_folder_view(void *data)
575 ugData *ugd = (ugData *)data;
576 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
578 Evas_Object *newContent = NULL;
580 Evas_Object *pNaviBar = NULL;
581 GString *title = NULL;
583 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
584 ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
586 pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
589 newContent = mf_ug_genlist_create_list_new_folder_style(ugd);
590 /*set title segment or title*/
591 title = g_string_new(MF_UG_LABEL_CREATE);
594 pNavi_s->ug_pNaviTitle = g_strdup(title->str);
595 g_string_free(title, TRUE);
598 /*navigation view integration*/
599 __mf_ug_navi_bar_push_content(ugd, newContent);
601 Evas_Object *l_bt = NULL;
602 Evas_Object *r_bt = NULL;
604 l_bt = elm_button_add(pNaviBar);
605 elm_object_focus_set(l_bt, EINA_FALSE);
606 elm_object_style_set(l_bt, "naviframe/title/default");
607 elm_object_text_set(l_bt, MF_UG_LABEL_SAVE);
608 evas_object_smart_callback_add(l_bt, "clicked", mf_ug_cb_save_cb, ugd);
609 evas_object_show(l_bt);
610 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_toolbar_button1", l_bt);
612 r_bt = elm_button_add(pNaviBar);
613 elm_object_focus_set(r_bt, EINA_FALSE);
614 elm_object_style_set(r_bt, "naviframe/end_btn/default");
615 evas_object_smart_callback_add(r_bt, "clicked", mf_ug_cb_cancel_new_folder_cb, ugd);
616 evas_object_show(r_bt);
617 elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_prev_btn", r_bt);
618 elm_object_item_signal_emit(ugd->ug_MainWindow.ug_pNaviItem, "elm,state,sip,shown", "");
620 elm_object_focus_set(ugd->ug_MainWindow.ug_pEntry, EINA_TRUE);
621 UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.play_timer);
622 //mf_ug_navi_bar_set_ctrl_button(ugd);
626 /******************************
627 ** Prototype : mf_ug_navi_bar_get_in_use_navi
628 ** Description : Samsung
629 ** Input : void* data
636 ** 1.Date : 2010/12/10
638 ** Modification : Created function
640 ******************************/
641 ugNaviBar *mf_ug_navi_bar_get_in_use_navi(void *data)
644 ugData *ugd = (ugData *)data;
645 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
647 Eina_List *pNaviList = ugd->ug_MainWindow.ug_pNaviBarList;
648 ug_mf_retvm_if(pNaviList == NULL, NULL, "pNavi_sList is NULL");
650 ugNaviBar *ret = NULL;
654 EINA_LIST_FOREACH(pNaviList, l, item) {
655 ret = (ugNaviBar *)item;
656 if (ret->ug_bNaviFlagInUse == TRUE) {
667 /******************************
668 ** Prototype : mf_ug_navi_bar_reset_navi_object
669 ** Description : Samsung
670 ** Input : ugNaviBar *pNavi_s
677 ** 1.Date : 2010/12/10
679 ** Modification : Created function
681 ******************************/
682 void mf_ug_navi_bar_reset_navi_object(ugNaviBar *pNavi_s)
685 ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
687 pNavi_s->ug_pNaviTitle = NULL;
688 if (pNavi_s->ug_pCurrentPath != NULL) {
689 free(pNavi_s->ug_pCurrentPath);
690 pNavi_s->ug_pCurrentPath = NULL;
692 if (pNavi_s->ug_pNaviLabel != NULL)
693 free(pNavi_s->ug_pNaviLabel);
694 pNavi_s->ug_pNaviLabel = NULL;
698 /******************************
699 ** Prototype : mf_ug_navi_bar_get_navi_struct_by_label
700 ** Description : Samsung
701 ** Input : void* data
702 ** const char* pNaviLabel
709 ** 1.Date : 2010/12/10
711 ** Modification : Created function
713 ******************************/
714 ugNaviBar *mf_ug_navi_bar_get_navi_struct_by_label(void *data, const char *pNaviLabel)
717 ugData *ugd = (ugData *)data;
718 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
719 ug_mf_retvm_if(pNaviLabel == NULL, NULL, "pNaviLabel is NULL");
724 ugNaviBar *ret = NULL;
725 EINA_LIST_FOREACH(ugd->ug_MainWindow.ug_pNaviBarList, l, item) {
726 if (g_strcmp0(((ugNaviBar *)item)->ug_pNaviLabel, pNaviLabel) == 0) {
727 ret = (ugNaviBar *)item;
736 /******************************
737 ** Prototype : mf_ug_navi_bar_remove_navi_list_item_by_label
738 ** Description : Samsung
739 ** Input : void *data
740 ** const char* pNaviLabel
747 ** 1.Date : 2010/12/10
749 ** Modification : Created function
751 ******************************/
752 void mf_ug_navi_bar_remove_navi_list_item_by_label(void *data, const char *pNaviLabel)
755 ugData *ugd = (ugData *)data;
756 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
757 ug_mf_retm_if(pNaviLabel == NULL, "pNaviLabel is NULL");
759 bool bInUseFlag = FALSE;
761 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_navi_struct_by_label(ugd, pNaviLabel);
763 if (pNavi_s == NULL) {
766 Eina_List *plistNaviMMC = eina_list_data_find_list(ugd->ug_MainWindow.ug_pNaviBarList, pNavi_s);
767 ugd->ug_MainWindow.ug_pNaviBarList = eina_list_remove_list(ugd->ug_MainWindow.ug_pNaviBarList, plistNaviMMC);
769 if (pNavi_s->ug_bNaviFlagInUse == TRUE) {
773 mf_ug_navi_bar_reset_navi_object(pNavi_s);
775 if (bInUseFlag == TRUE) {
776 pNavi_s = (ugNaviBar *)eina_list_nth(ugd->ug_MainWindow.ug_pNaviBarList, 0);
777 pNavi_s->ug_bNaviFlagInUse = TRUE;
783 /******************************
784 ** Prototype : mf_ug_navi_bar_refresh_navibar_recovered_view
785 ** Description : Samsung
786 ** Input : void *data
787 ** ugNaviBar* pNaviStruct
794 ** 1.Date : 2010/12/10
796 ** Modification : Created function
798 ******************************/
799 void mf_ug_navi_bar_refresh_navibar_recovered_view(void *data, ugNaviBar *pNaviStruct)
802 ugData *ugd = (ugData *)data;
803 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
804 ug_mf_retm_if(pNaviStruct == NULL, "pNaviStruct is NULL");
806 if (ugd->ug_Status.ug_pPath != NULL) {
807 g_string_free(ugd->ug_Status.ug_pPath, TRUE);
808 ugd->ug_Status.ug_pPath = NULL;
810 ugd->ug_Status.ug_pPath = g_string_new(pNaviStruct->ug_pCurrentPath);
811 mf_ug_navi_bar_create_default_view(ugd);
816 void mf_ug_navi_bar_transition_finished_cb(void *data, Evas_Object *obj, void *event_info)
819 ug_mf_retm_if(data == NULL, "data is NULL");
820 ug_mf_retm_if(obj == NULL, "obj is NULL");
821 ugData *ugd = (ugData *)data;
822 Elm_Object_Item *it = ugd->ug_MainWindow.ug_pPreNaviItem;
823 UG_SAFE_DEL_NAVI_ITEM(it);
824 ugd->ug_MainWindow.ug_pPreNaviItem = NULL;
825 mf_ug_navi_bar_set_blocking(data, false);
826 evas_object_smart_callback_del(obj, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
830 void mf_ug_navi_bar_remove_previous_contents(void *data)
834 ug_mf_retm_if(data == NULL, "data is NULL");
835 ugData *ugd = (ugData *)data;
836 Evas_Object *pNaviBar = NULL;
837 if (ugd->ug_MainWindow.ug_pNaviBar) {
838 pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
839 mf_ug_navi_bar_set_blocking(data, true);
840 evas_object_smart_callback_add(pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb, ugd);
845 void mf_ug_navi_bar_del_item_directly(void *data)
848 ug_mf_retm_if(data == NULL, "data is NULL");
849 ugData *ugd = (ugData *)data;
851 if (ugd->ug_Status.ug_b_NaviPushFlag) {
852 ugNaviBar *pNavi_s_previous = NULL;
853 pNavi_s_previous = mf_ug_navi_bar_get_in_use_navi(ugd) ;
854 if(pNavi_s_previous && ugd->ug_MainWindow.ug_pPreNaviItem)
856 UG_SAFE_DEL_NAVI_ITEM(ugd->ug_MainWindow.ug_pPreNaviItem);
857 mf_ug_navi_bar_set_blocking(ugd, false);
858 evas_object_smart_callback_del(ugd->ug_MainWindow.ug_pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
865 void mf_ug_navi_bar_set_blocking(void *data, bool bblock_during_transition)
867 ug_mf_retm_if(data == NULL, "data is NULL");
868 ugData *ugd = (ugData *)data;
870 ugd->ug_Status.ug_bCancelDisableFlag = bblock_during_transition;
871 ugd->ug_Status.ug_b_NaviPushFlag = bblock_during_transition;
875 ugNaviBar *ug_mf_navi_bar_get_navi_from_navilist(Eina_List *navilist, const char *label)
879 ug_mf_retvm_if(navilist == NULL, NULL, "navilist is NULL");
880 ug_mf_retvm_if(label == NULL, NULL, "label is NULL");
883 ugNaviBar *pNavi = NULL;
885 EINA_LIST_FOREACH(navilist, l, data) {
887 pNavi = (ugNaviBar *)data;
888 if (pNavi && pNavi->ug_pNaviLabel && g_strcmp0(label, pNavi->ug_pNaviLabel) == 0)
897 void mf_ug_navi_bar_button_set_disable(void *data, bool disable)
900 ugData *ugd = (ugData *)data;
901 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
903 Evas_Object *btn = NULL;
904 Elm_Object_Item *navi_it = ugd->ug_MainWindow.ug_pNaviItem;
906 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
907 ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed");
909 const char *disable_labe = NULL;
910 if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
911 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
912 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
913 disable_labe = MF_UG_LABEL_IMPORT;
914 } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
915 disable_labe = MF_UG_LABEL_SET;
918 disable_labe = MF_UG_LABEL_ATTACH;
920 btn = elm_object_item_part_content_get(navi_it, NAVI_BOTTOM_BUTTON_1_PART);
921 const char *button_label = elm_object_text_get(btn);
922 if (g_strcmp0(button_label, disable_labe) == 0)
923 elm_object_disabled_set(btn, disable);