summaryrefslogtreecommitdiff
path: root/src/widget/mf-ug-navi-bar.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/widget/mf-ug-navi-bar.c')
-rw-r--r--src/widget/mf-ug-navi-bar.c956
1 files changed, 956 insertions, 0 deletions
diff --git a/src/widget/mf-ug-navi-bar.c b/src/widget/mf-ug-navi-bar.c
new file mode 100644
index 0000000..d50e530
--- /dev/null
+++ b/src/widget/mf-ug-navi-bar.c
@@ -0,0 +1,956 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "mf-ug-winset.h"
+#include "mf-ug-cb.h"
+#include "mf-ug-fm-svc-wrapper.h"
+#include "mf-ug-util.h"
+#include "mf-ug-fs-util.h"
+#include "mf-ug-resource.h"
+
+
+/******************************
+** Prototype : __mf_ug_navi_bar_create_group_radio_box
+** Description : Samsung
+** Input : void *data
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_navi_bar_create_group_radio_box(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ Evas_Object *group_radio = NULL;
+
+ if (ugd->ug_MainWindow.ug_pRadioGroup != NULL) {
+ evas_object_del(ugd->ug_MainWindow.ug_pRadioGroup);
+ ugd->ug_MainWindow.ug_pRadioGroup = NULL;
+ }
+
+ group_radio = elm_radio_add(ugd->ug_MainWindow.ug_pMainLayout);
+ ug_mf_retm_if(group_radio == NULL, "ugd is NULL");
+
+ elm_radio_value_set(group_radio, 0);
+ evas_object_hide(group_radio);
+ /*/Internal/invisible Radio Objects used to group the radio buttons in the list. */
+ ugd->ug_MainWindow.ug_pRadioGroup = group_radio;
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_navi_bar_push_content
+** Description : Samsung
+** Input : ugData *data
+** Evas_Object *NaviContent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_navi_bar_push_content(void *data, Evas_Object *NaviContent)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(data == NULL, "pNavi_s is NULL");
+ ugData *ugd = (ugData *)data;
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+
+ Evas_Object *NaviBar = ugd->ug_MainWindow.ug_pNaviBar;
+ char *title = NULL;
+
+ ugd->ug_MainWindow.ug_pPreNaviItem = ugd->ug_MainWindow.ug_pNaviItem;
+
+ if (pNavi_s) {
+ if(!g_strcmp0(pNavi_s->ug_pNaviTitle, "Ringtones")) {
+ if (pNavi_s->ug_pNaviTitle) {
+ g_free(pNavi_s->ug_pNaviTitle);
+ pNavi_s->ug_pNaviTitle = NULL;
+ }
+ pNavi_s->ug_pNaviTitle = g_strdup(MF_UG_LABEL_RINGTONES);
+ } else if(!g_strcmp0(pNavi_s->ug_pNaviTitle, "Alarms")) {
+ if (pNavi_s->ug_pNaviTitle) {
+ g_free(pNavi_s->ug_pNaviTitle);
+ pNavi_s->ug_pNaviTitle = NULL;
+ }
+ pNavi_s->ug_pNaviTitle = g_strdup(MF_UG_LABEL_ALARM);
+ } else if (!g_strcmp0(pNavi_s->ug_pNaviTitle, "Alerts")) {
+ }
+ title = pNavi_s->ug_pNaviTitle;
+ }
+ ug_debug("title=%s", title);
+
+ ugd->ug_MainWindow.ug_pNaviItem = elm_naviframe_item_push(NaviBar, title, NULL, NULL, NaviContent, NULL);
+
+ UG_TRACE_END;
+}
+
+
+static Eina_Bool __mf_widget_notify_popup_timer_cb(void *data)
+{
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, EINA_FALSE, "ugd is null");
+
+ elm_object_part_content_unset(ugd->ug_MainWindow.ug_pNaviLayout,
+ "sel_contents");
+
+ UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pSelectInfoLayout);
+ ugd->ug_Status.pPopupTimer = NULL;
+ return false;
+}
+
+Evas_Object *mf_ug_navibar_create_notify_popup(void *data,
+ Evas_Object *parent,
+ char *label,
+ bool time_out,
+ void func(void *data, Evas_Object *obj, void *event_info))
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(data == NULL, NULL, "data is NULL");
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+ ug_mf_retvm_if(label == NULL, NULL, "label is NULL");
+ ugData *ugd = (ugData *)data;
+
+
+ Evas_Object *countlabel = NULL;
+ if (ugd->ug_MainWindow.ug_pSelectInfoLayout && ugd->ug_Status.pPopupTimer) {
+ elm_object_part_text_set(ugd->ug_MainWindow.ug_pSelectInfoLayout, "elm.text", label);
+ countlabel = ugd->ug_MainWindow.ug_pSelectInfoLayout;
+ } else {
+ elm_object_part_content_unset(ugd->ug_MainWindow.ug_pNaviLayout,
+ "sel_contents");
+ UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pSelectInfoLayout);
+ countlabel = elm_layout_add(parent);
+ evas_object_size_hint_weight_set(countlabel,
+ EVAS_HINT_EXPAND,
+ EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(countlabel,
+ EVAS_HINT_FILL,
+ EVAS_HINT_FILL);
+ elm_layout_theme_set(countlabel, "standard", "selectioninfo", "center_text");
+ elm_object_part_text_set(countlabel, "elm.text", label);
+ elm_object_part_content_set(parent,
+ "sel_contents",
+ countlabel);
+ elm_object_signal_emit(countlabel, "show,selection,info", "elm");
+ }
+
+ UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.pPopupTimer);
+ if (time_out) {
+ ugd->ug_Status.pPopupTimer = ecore_timer_add(3, __mf_widget_notify_popup_timer_cb, ugd);
+ }
+
+ evas_object_show(countlabel);
+ UG_TRACE_END;
+ return countlabel;
+
+
+}
+
+/******************************
+** Prototype : mf_ug_navi_bar_create_navi_bar
+** Description :
+** Input : Evas_Object* parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+Evas_Object *mf_ug_navi_bar_create_navi_bar(Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ Evas_Object *navi_bar = NULL;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+
+ navi_bar = elm_naviframe_add(parent);
+ ug_mf_retvm_if(navi_bar == NULL, NULL, "Failed elm_navigationbar_add");
+ elm_naviframe_prev_btn_auto_pushed_set(navi_bar, EINA_FALSE);
+
+ evas_object_show(navi_bar);
+
+ UG_TRACE_END;
+ return navi_bar;
+}
+
+
+/******************************
+** Prototype : mf_ug_navi_bar_set_new_content
+** Description : Samsung
+** Input : Evas_Object *pLayout
+** Evas_Object *NaviContent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_navi_bar_set_new_content(Evas_Object *pLayout, Evas_Object *NaviContent)
+{
+ UG_TRACE_BEGIN;
+ Evas_Object *unUsed = elm_object_part_content_unset(pLayout, "part1");
+ evas_object_del(unUsed);
+ elm_object_part_content_set(pLayout, "part1", NaviContent);
+ UG_TRACE_END;
+}
+
+Evas_Object *mf_ug_navi_bar_create_box(Evas_Object * parent)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+
+ Evas_Object *box = NULL;
+ box = elm_box_add(parent);
+ ug_mf_retvm_if(box == NULL, NULL, "box is NULL");
+ elm_object_focus_set(box, EINA_FALSE);
+ evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_FILL);
+ evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_box_clear(box);
+ evas_object_show(box);
+ UG_TRACE_END;
+ return box;
+
+}
+
+Evas_Object *mf_ug_navi_bar_create_layout(Evas_Object *parent, const char *edj, const char *grp_name)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+ ug_mf_retvm_if(edj == NULL, NULL, "edj is NULL");
+ ug_mf_retvm_if(grp_name == NULL, NULL, "grp_name is NULL");
+
+ Evas_Object *layout = NULL;
+
+ layout = elm_layout_add(parent);
+ ug_mf_retvm_if(layout == NULL, NULL, "layout is NULL");
+ elm_object_focus_set(layout, EINA_FALSE);
+ elm_layout_file_set(layout, edj, grp_name);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(layout);
+ UG_TRACE_END;
+ return layout;
+
+}
+
+/******************************
+** Prototype : mf_ug_navi_bar_create_default_view
+** Description : Samsung
+** Input : void *data
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+Evas_Object *__mf_ug_navi_bar_pathinfo_create(Evas_Object *parent, const char *content)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+ ug_mf_retvm_if(content == NULL, NULL, "content is NULL");
+
+ Evas_Object *layout = NULL;
+
+ layout = elm_layout_add(parent);
+ elm_object_focus_set(layout, EINA_FALSE);
+ elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_PATH_INFO);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ elm_object_part_text_set(layout, "info", content);
+ evas_object_show(layout);
+ UG_TRACE_END;
+ return layout;
+}
+
+
+void mf_ug_navi_bar_title_set(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+ if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
+ elm_object_part_text_set(ugd->ug_MainWindow.ug_pNaviBar, "elm.text.title", MF_UG_LABEL_IMPORT);
+ } else if (!(ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true)) {
+ Evas_Object *home_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
+ elm_object_style_set(home_btn, "naviframe/title_icon");
+ Evas_Object *home_ic = elm_image_add(ugd->ug_MainWindow.ug_pNaviBar);
+ elm_image_file_set(home_ic, UG_TITLE_ICON_HOME, NULL);
+ elm_image_resizable_set(home_ic, EINA_TRUE, EINA_TRUE);
+ elm_object_content_set(home_btn, home_ic);
+ evas_object_smart_callback_add(home_btn, "clicked", mf_ug_cb_home_button_cb, ugd);
+ evas_object_smart_callback_add(home_btn, "pressed", mf_ug_cb_home_button_pressed_cb, home_ic);
+ evas_object_smart_callback_add(home_btn, "unpressed", mf_ug_cb_home_button_unpressed_cb, home_ic);
+ evas_object_show(home_btn);
+ elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, TITLE_LEFT_BTN, home_btn);
+
+ Evas_Object *up_btn = elm_button_add(ugd->ug_MainWindow.ug_pNaviBar);
+ elm_object_style_set(up_btn, "naviframe/title_icon");
+ Evas_Object *up_ic = elm_image_add(ugd->ug_MainWindow.ug_pNaviBar);
+ elm_image_file_set(up_ic, UG_TITLE_ICON_UPPER, NULL);
+ elm_image_resizable_set(up_ic, EINA_TRUE, EINA_TRUE);
+ elm_object_content_set(up_btn, up_ic);
+ evas_object_smart_callback_add(up_btn, "clicked", mf_ug_cb_upper_click_cb, ugd);
+ evas_object_smart_callback_add(up_btn, "pressed", mf_ug_cb_upper_button_pressed_cb, up_ic);
+ evas_object_smart_callback_add(up_btn, "unpressed", mf_ug_cb_upper_button_unpressed_cb, up_ic);
+ evas_object_show(up_btn);
+
+ elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, TITLE_RIGHT_BTN, up_btn);
+ }
+ elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE);
+}
+
+Eina_Bool mf_ug_navi_search_idler_cb(void *data)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(data == NULL, ECORE_CALLBACK_CANCEL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ mf_ug_search_view_enter_search_routine(ugd, NULL, NULL);
+ ugd->ug_Status.search_idler = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+Evas_Object *__mf_ug_navi_bar_backbutton_create(Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+
+ Evas_Object *btn = NULL;
+ btn = elm_button_add(parent);
+ elm_object_style_set(btn, "naviframe/end_btn/default");
+ evas_object_show(btn);
+ return btn;
+
+}
+
+void mf_ug_navi_add_back_button(void *data)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ Evas_Object *pBackButton = NULL;
+
+ pBackButton = __mf_ug_navi_bar_backbutton_create(ugd->ug_MainWindow.ug_pNaviBar);
+ if (pBackButton) {
+ elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "prev_btn", pBackButton);
+ evas_object_smart_callback_add(pBackButton, "clicked", mf_ug_cb_back_button_cb, ugd);
+ }
+}
+
+void mf_ug_callback_tab_click(void *data)
+{
+ int mmc_card = 0;
+ int error_code = 0;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+ Evas_Object *newContent = NULL;
+ newContent = mf_ug_genlist_create_content_list_view(ugd);
+ Elm_Object_Item * selected_item = elm_toolbar_selected_item_get(ugd->ug_MainWindow.ug_pTabBar);
+ char *name = elm_object_item_text_get(selected_item);
+
+ if(!strcmp(name, MF_UG_LABEL_MMC))
+ {
+ error_code = mf_ug_util_get_mmc_state(&mmc_card);
+ if (error_code == 0 && mmc_card == 0)
+ {
+ newContent = mf_ug_genlist_no_mem_card(ugd);
+ }
+ }
+
+ Evas_Object *playout = ugd->ug_MainWindow.ug_pNaviLayout;
+ ug_mf_retm_if(playout == NULL, "get conformant failed");
+ Evas_Object *unUsed = elm_object_part_content_unset(playout, "part1");
+ evas_object_del(unUsed);
+
+ elm_object_part_content_set(playout, "part1", newContent);
+}
+
+void mf_ug_tab_bar_generate(void *data)
+{
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ Elm_Object_Item *item_1 = NULL;
+ Elm_Object_Item *item_2 = NULL;
+ Evas_Object *parent = ugd->ug_MainWindow.ug_pNaviBar;
+
+ Evas_Object *layout = mf_ug_navi_bar_create_layout(parent, UG_EDJ_NAVIGATIONBAR, UG_GRP_CTRL_BAR);
+ Evas_Object * tab_bar = elm_toolbar_add(layout);
+ ugd->ug_MainWindow.ug_pTabBar = tab_bar;
+ elm_object_focus_set(tab_bar, EINA_FALSE);
+ elm_toolbar_shrink_mode_set(tab_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_object_style_set(tab_bar, "tabbar");
+ elm_toolbar_transverse_expanded_set(tab_bar, EINA_TRUE);
+ elm_toolbar_select_mode_set(tab_bar, ELM_OBJECT_SELECT_MODE_ALWAYS);
+
+ evas_object_size_hint_weight_set(tab_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(tab_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+
+ elm_object_part_content_set(layout, "content", tab_bar);
+ elm_object_part_content_set(ugd->ug_MainWindow.ug_pNaviLayout, "title", layout);
+ item_1 = elm_toolbar_item_append(tab_bar, UG_ICON_PHONE, MF_UG_LABEL_PHONE, mf_ug_callback_tab_click, ugd);
+ item_2 = elm_toolbar_item_append(tab_bar, UG_ICON_MEMORY, MF_UG_LABEL_MMC, mf_ug_callback_tab_click, ugd);
+ elm_object_signal_emit(ugd->ug_MainWindow.ug_pNaviLayout, "show,title,button", "elm");
+
+}
+
+void mf_ug_navi_bar_set_ctrl_button(void *data)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+ Elm_Object_Item *navi_it = ugd->ug_MainWindow.ug_pNaviItem;//ap->mf_MainWindow.pNaviItem;
+ Evas_Object *pNavi = ugd->ug_MainWindow.ug_pNaviBar;
+ Elm_Object_Item *item_1 = NULL;
+ Elm_Object_Item *item_2 = NULL;
+
+
+ Evas_Object *layout = mf_ug_navi_bar_create_layout(pNavi, UG_EDJ_NAVIGATIONBAR, UG_GRP_CTRL_BAR);
+ Evas_Object * tab_bar = elm_toolbar_add(layout);
+ elm_object_focus_set(tab_bar, EINA_FALSE);
+ elm_toolbar_shrink_mode_set(tab_bar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_object_style_set(tab_bar, "transparent");
+ elm_toolbar_transverse_expanded_set(tab_bar, EINA_TRUE);
+ elm_toolbar_select_mode_set(tab_bar, ELM_OBJECT_SELECT_MODE_DEFAULT);
+
+ evas_object_size_hint_weight_set(tab_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(tab_bar, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+
+ elm_object_part_content_set(layout, "content", tab_bar);
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
+ item_1 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_IMPORT, mf_ug_cb_add_button_cb, ugd);
+ evas_object_show(tab_bar);
+
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE) {
+ item_1 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_EXPORT, mf_ug_cb_add_button_cb, ugd);
+ item_2 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_CREATE, mf_ug_cb_more_cb, ugd);
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE) {
+ item_1 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_SAVE_HERE, mf_ug_cb_add_button_cb, ugd);
+ item_2 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_CREATE, mf_ug_cb_more_cb, ugd);
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+ item_1 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_DONE, mf_ug_cb_add_button_cb, ugd);
+ }
+ else if (!(ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE)) {
+ item_1 = elm_toolbar_item_append(tab_bar, NULL, MF_UG_LABEL_ATTACH, mf_ug_cb_add_button_cb, ugd);
+ }
+ if (item_1 || item_2)
+ {
+ elm_object_signal_emit(ugd->ug_MainWindow.ug_pNaviLayout, "show,toolbar,button", "elm");
+ }
+ elm_object_part_content_set(ugd->ug_MainWindow.ug_pNaviLayout, "toolbar_button", layout);
+ mf_ug_navi_add_back_button(ugd);
+
+}
+
+
+
+void mf_ug_navi_bar_create_default_view(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ GString *title = NULL;
+ Evas_Object *pNaviLayout = NULL;
+ Evas_Object *newContent = NULL;
+ Evas_Object *box = NULL;
+ Evas_Object *top_layout = NULL;
+ Evas_Object *upper_genlist = NULL;
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed");
+
+
+ /*if the muisc is playing, destory the play */
+ if (0 != ugd->ug_ListPlay.ug_Player) {
+ mf_ug_list_play_destory_playing_file(ugd);
+ UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath);
+ }
+
+ box = mf_ug_navi_bar_create_box(ugd->ug_MainWindow.ug_pNaviBar);
+ pNaviLayout = mf_ug_navi_bar_create_layout(box, UG_EDJ_NAVIGATIONBAR, UG_GRP_NAVI_VIEW);
+ ugd->ug_MainWindow.ug_pNaviLayout = pNaviLayout;
+ elm_object_signal_emit(ugd->ug_MainWindow.ug_pNaviLayout, "hide,toolbar,button", "elm");
+
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
+ newContent = __mf_ug_genlist_create_gl(ugd);
+ ugd->ug_MainWindow.ug_pNaviGenlist = newContent;
+
+ } else {
+ if (ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == true) {
+ top_layout = mf_ug_navi_bar_create_box(box);
+ evas_object_size_hint_min_set(top_layout, MF_UG_UPPER_WIDTH, MF_UG_UPPER_HEIGHT);
+ upper_genlist = mf_navi_bar_upper_create(top_layout);
+ elm_object_scroll_freeze_push(upper_genlist);
+ elm_genlist_scroller_policy_set(upper_genlist, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
+ mf_ug_genlist_goto_myfile_style_set(ugd);
+ mf_ug_genlist_goto_myfile_item_append(upper_genlist, ugd);
+ ugd->ug_Status.ug_bUpperFlag = true;
+ elm_box_pack_end(top_layout, upper_genlist);
+ }
+ if (top_layout) {
+ elm_box_pack_start(box, top_layout);
+ } else {
+ ugd->ug_Status.ug_bUpperFlag = true;
+ }
+ /*set content */
+ if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+ __mf_ug_navi_bar_create_group_radio_box(ugd);
+ }
+ newContent = mf_ug_genlist_create_content_list_view(ugd);
+ ugd->ug_MainWindow.ug_pNaviGenlist = newContent;
+ /*set title segment or title */
+ if (mf_ug_fm_svc_wapper_is_root_path(ugd->ug_Status.ug_pPath)) {
+ title = g_string_new(MF_UG_LABEL_MYFILES);
+ } else {
+ title = mf_ug_fm_svc_wapper_get_file_name(ugd->ug_Status.ug_pPath);
+ }
+
+ if (title != NULL) {
+ pNavi_s->ug_pNaviTitle = g_strdup(title->str);
+ g_string_free(title, TRUE);
+ title = NULL;
+ }
+ }
+
+ /*navigation view integration */
+ evas_object_show(newContent);
+ elm_object_part_content_set(pNaviLayout, "part1", newContent);
+
+ elm_box_pack_end(box, pNaviLayout);
+ ugd->ug_MainWindow.ug_pNaviBox = box;
+ __mf_ug_navi_bar_push_content(ugd, box);
+
+ /*add control bar for navigation bar */
+ elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_FALSE);
+ if(mf_ug_fm_svc_wapper_is_root_path(ugd->ug_Status.ug_pPath))
+ {
+ mf_ug_tab_bar_generate(ugd);
+ }
+ else
+ {
+ elm_object_signal_emit(ugd->ug_MainWindow.ug_pNaviLayout, "hide,title,button", "elm");
+ mf_ug_navi_bar_set_ctrl_button(ugd);
+ mf_ug_navi_bar_title_set(ugd);
+ }
+
+ mf_ug_navi_bar_remove_previous_contents(ugd);
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
+ ug_ecore_idler_del(ugd->ug_Status.search_idler);
+ ugd->ug_Status.search_idler = ecore_idler_add(mf_ug_navi_search_idler_cb, ugd);
+ }
+ UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.play_timer);
+ UG_TRACE_END;
+}
+
+void mf_ug_navi_bar_create_new_folder_view(void *data)
+{
+
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ Evas_Object *newContent = NULL;
+
+ Evas_Object *pNaviBar = NULL;
+ GString *title = NULL;
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
+
+ pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
+
+ /*set content*/
+ newContent = mf_ug_genlist_create_list_new_folder_style(ugd);
+ /*set title segment or title*/
+ title = g_string_new(MF_UG_LABEL_CREATE);
+
+ if (title != NULL) {
+ pNavi_s->ug_pNaviTitle = g_strdup(title->str);
+ g_string_free(title, TRUE);
+ title = NULL;
+ }
+ /*navigation view integration*/
+ __mf_ug_navi_bar_push_content(ugd, newContent);
+
+ Evas_Object *l_bt = NULL;
+ Evas_Object *r_bt = NULL;
+
+ l_bt = elm_button_add(pNaviBar);
+ elm_object_focus_set(l_bt, EINA_FALSE);
+ elm_object_style_set(l_bt, "naviframe/title/default");
+ elm_object_text_set(l_bt, MF_UG_LABEL_SAVE);
+ evas_object_smart_callback_add(l_bt, "clicked", mf_ug_cb_save_cb, ugd);
+ evas_object_show(l_bt);
+ elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_toolbar_button1", l_bt);
+
+ r_bt = elm_button_add(pNaviBar);
+ elm_object_focus_set(r_bt, EINA_FALSE);
+ elm_object_style_set(r_bt, "naviframe/end_btn/default");
+ evas_object_smart_callback_add(r_bt, "clicked", mf_ug_cb_cancel_new_folder_cb, ugd);
+ evas_object_show(r_bt);
+ elm_object_item_part_content_set(ugd->ug_MainWindow.ug_pNaviItem, "title_prev_btn", r_bt);
+ elm_object_item_signal_emit(ugd->ug_MainWindow.ug_pNaviItem, "elm,state,sip,shown", "");
+
+ elm_object_focus_set(ugd->ug_MainWindow.ug_pEntry, EINA_TRUE);
+ UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.play_timer);
+}
+
+/******************************
+** Prototype : mf_ug_navi_bar_get_in_use_navi
+** Description : Samsung
+** Input : void* data
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+ugNaviBar *mf_ug_navi_bar_get_in_use_navi(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+
+ Eina_List *pNaviList = ugd->ug_MainWindow.ug_pNaviBarList;
+ ug_mf_retvm_if(pNaviList == NULL, NULL, "pNavi_sList is NULL");
+
+ ugNaviBar *ret = NULL;
+ Eina_List *l = NULL;
+ void *item;
+
+ EINA_LIST_FOREACH(pNaviList, l, item) {
+ ret = (ugNaviBar *)item;
+ if (ret->ug_bNaviFlagInUse == TRUE) {
+ break;
+ } else {
+ ret = NULL;
+ }
+ }
+ UG_TRACE_END;
+ return ret;
+}
+
+
+/******************************
+** Prototype : mf_ug_navi_bar_reset_navi_object
+** Description : Samsung
+** Input : ugNaviBar *pNavi_s
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_navi_bar_reset_navi_object(ugNaviBar *pNavi_s)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL");
+
+ pNavi_s->ug_pNaviTitle = NULL;
+ if (pNavi_s->ug_pCurrentPath != NULL) {
+ free(pNavi_s->ug_pCurrentPath);
+ pNavi_s->ug_pCurrentPath = NULL;
+ }
+ if (pNavi_s->ug_pNaviLabel != NULL)
+ free(pNavi_s->ug_pNaviLabel);
+ pNavi_s->ug_pNaviLabel = NULL;
+ UG_TRACE_END;
+}
+
+/******************************
+** Prototype : mf_ug_navi_bar_get_navi_struct_by_label
+** Description : Samsung
+** Input : void* data
+** const char* pNaviLabel
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+ugNaviBar *mf_ug_navi_bar_get_navi_struct_by_label(void *data, const char *pNaviLabel)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+ ug_mf_retvm_if(pNaviLabel == NULL, NULL, "pNaviLabel is NULL");
+
+ Eina_List *l = NULL;
+ void *item = NULL;
+
+ ugNaviBar *ret = NULL;
+ EINA_LIST_FOREACH(ugd->ug_MainWindow.ug_pNaviBarList, l, item) {
+ if (g_strcmp0(((ugNaviBar *)item)->ug_pNaviLabel, pNaviLabel) == 0) {
+ ret = (ugNaviBar *)item;
+ break;
+ }
+ }
+ UG_TRACE_END;
+ return ret;
+}
+
+
+/******************************
+** Prototype : mf_ug_navi_bar_remove_navi_list_item_by_label
+** Description : Samsung
+** Input : void *data
+** const char* pNaviLabel
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_navi_bar_remove_navi_list_item_by_label(void *data, const char *pNaviLabel)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+ ug_mf_retm_if(pNaviLabel == NULL, "pNaviLabel is NULL");
+
+ bool bInUseFlag = FALSE;
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_navi_struct_by_label(ugd, pNaviLabel);
+
+ if (pNavi_s == NULL) {
+ return;
+ }
+ Eina_List *plistNaviMMC = eina_list_data_find_list(ugd->ug_MainWindow.ug_pNaviBarList, pNavi_s);
+ ugd->ug_MainWindow.ug_pNaviBarList = eina_list_remove_list(ugd->ug_MainWindow.ug_pNaviBarList, plistNaviMMC);
+
+ if (pNavi_s->ug_bNaviFlagInUse == TRUE) {
+ bInUseFlag = TRUE;
+ }
+
+ mf_ug_navi_bar_reset_navi_object(pNavi_s);
+
+ if (bInUseFlag == TRUE) {
+ pNavi_s = (ugNaviBar *)eina_list_nth(ugd->ug_MainWindow.ug_pNaviBarList, 0);
+ pNavi_s->ug_bNaviFlagInUse = TRUE;
+ }
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : mf_ug_navi_bar_refresh_navibar_recovered_view
+** Description : Samsung
+** Input : void *data
+** ugNaviBar* pNaviStruct
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_navi_bar_refresh_navibar_recovered_view(void *data, ugNaviBar *pNaviStruct)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+ ug_mf_retm_if(pNaviStruct == NULL, "pNaviStruct is NULL");
+
+ if (ugd->ug_Status.ug_pPath != NULL) {
+ g_string_free(ugd->ug_Status.ug_pPath, TRUE);
+ ugd->ug_Status.ug_pPath = NULL;
+ }
+ ugd->ug_Status.ug_pPath = g_string_new(pNaviStruct->ug_pCurrentPath);
+ mf_ug_navi_bar_create_default_view(ugd);
+
+ UG_TRACE_END;
+}
+
+void mf_ug_navi_bar_transition_finished_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ug_mf_retm_if(obj == NULL, "obj is NULL");
+ ugData *ugd = (ugData *)data;
+ Elm_Object_Item *it = ugd->ug_MainWindow.ug_pPreNaviItem;
+ UG_SAFE_DEL_NAVI_ITEM(it);
+ ugd->ug_MainWindow.ug_pPreNaviItem = NULL;
+ mf_ug_navi_bar_set_blocking(data, false);
+ evas_object_smart_callback_del(obj, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
+ UG_TRACE_END;
+}
+
+void mf_ug_navi_bar_remove_previous_contents(void *data)
+{
+ UG_TRACE_BEGIN;
+
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+ Evas_Object *pNaviBar = NULL;
+ if (ugd->ug_MainWindow.ug_pNaviBar) {
+ pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
+ mf_ug_navi_bar_set_blocking(data, true);
+ evas_object_smart_callback_add(pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb, ugd);
+ }
+ UG_TRACE_END;
+}
+
+void mf_ug_navi_bar_del_item_directly(void *data)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ if (ugd->ug_Status.ug_b_NaviPushFlag) {
+ ugNaviBar *pNavi_s_previous = NULL;
+ pNavi_s_previous = mf_ug_navi_bar_get_in_use_navi(ugd) ;
+ if(pNavi_s_previous && ugd->ug_MainWindow.ug_pPreNaviItem)
+ {
+ UG_SAFE_DEL_NAVI_ITEM(ugd->ug_MainWindow.ug_pPreNaviItem);
+ mf_ug_navi_bar_set_blocking(ugd, false);
+ evas_object_smart_callback_del(ugd->ug_MainWindow.ug_pNaviBar, "transition,finished", mf_ug_navi_bar_transition_finished_cb);
+ }
+ }
+ UG_TRACE_END;
+}
+
+
+void mf_ug_navi_bar_set_blocking(void *data, bool bblock_during_transition)
+{
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ ugd->ug_Status.ug_bCancelDisableFlag = bblock_during_transition;
+ ugd->ug_Status.ug_b_NaviPushFlag = bblock_during_transition;
+ return;
+}
+
+ugNaviBar *ug_mf_navi_bar_get_navi_from_navilist(Eina_List *navilist, const char *label)
+{
+
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(navilist == NULL, NULL, "navilist is NULL");
+ ug_mf_retvm_if(label == NULL, NULL, "label is NULL");
+
+ void *data = NULL;
+ ugNaviBar *pNavi = NULL;
+ Eina_List *l = NULL;
+ EINA_LIST_FOREACH(navilist, l, data) {
+ if (data) {
+ pNavi = (ugNaviBar *)data;
+ if (pNavi && pNavi->ug_pNaviLabel && g_strcmp0(label, pNavi->ug_pNaviLabel) == 0)
+ return pNavi;
+ else
+ continue;
+ }
+ }
+ return NULL;
+}
+
+void mf_ug_navi_bar_button_set_disable(void *data, bool disable)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ Evas_Object *btn = NULL;
+ Elm_Object_Item *navi_it = ugd->ug_MainWindow.ug_pNaviItem;
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed");
+
+ const char *disable_labe = NULL;
+ if (ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
+ || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
+ disable_labe = MF_UG_LABEL_IMPORT;
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+ disable_labe = MF_UG_LABEL_SET;
+ }
+ else {
+ disable_labe = MF_UG_LABEL_ATTACH;
+ }
+ btn = elm_object_item_part_content_get(navi_it, NAVI_BOTTOM_BUTTON_1_PART);
+ const char *button_label = elm_object_text_get(btn);
+ if (g_strcmp0(button_label, disable_labe) == 0)
+ elm_object_disabled_set(btn, disable);
+}
+