summaryrefslogtreecommitdiff
path: root/src/widget/mf-ug-genlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/widget/mf-ug-genlist.c')
-rwxr-xr-xsrc/widget/mf-ug-genlist.c1365
1 files changed, 1365 insertions, 0 deletions
diff --git a/src/widget/mf-ug-genlist.c b/src/widget/mf-ug-genlist.c
new file mode 100755
index 0000000..ff3db4b
--- /dev/null
+++ b/src/widget/mf-ug-genlist.c
@@ -0,0 +1,1365 @@
+/*
+ * Copyright 2012 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.0 (the "License");
+ *
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.tizenopensource.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 <Eina.h>
+#include "mf-ug-winset.h"
+#include "mf-ug-util.h"
+#include "mf-ug-fm-svc-wrapper.h"
+#include "mf-ug-fs-util.h"
+#include "mf-ug-resource.h"
+
+
+#define MF_UG_SELECTED_ITEM_BRING_UP_COUNT 7
+#define MF_UG_SELECTED_ITEM_BRING_UP_COUNT_MAX 8
+/******************************
+** Prototype : __mf_ug_genlist_is_file_marked
+** Description : Samsung
+** Input : Eina_List *source
+** GString *path
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static gboolean __mf_ug_genlist_is_file_marked(Eina_List *source, GString *path)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(source == NULL, false, "source is NULL");
+ ug_mf_retvm_if(path == NULL, false, "path is NULL");
+
+ bool flag = false;
+ Eina_List *l = NULL;
+ void *data = NULL;
+
+ EINA_LIST_FOREACH(source, l, data) {
+ char *source_path = strdup(data);
+ if (source_path != NULL) {
+ if (strcmp(source_path, path->str) == 0) {
+ flag = true;
+ free(source_path);
+ source_path = NULL;
+ break;
+ } else {
+ free(source_path);
+ source_path = NULL;
+ }
+ }
+ }
+ UG_TRACE_END;
+ return flag;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_set_marked_path
+** Description : Samsung
+** Input : Eina_List **source
+** GString *path
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_set_marked_path(Eina_List **source, GString *path)
+{
+ UG_TRACE_BEGIN;
+ bool file_exist_flag = false;
+ char *source_path;
+ Eina_List *l = NULL;
+ void *data = NULL;
+
+ ug_mf_retm_if(source == NULL, "source is NULL");
+ ug_mf_retm_if(path == NULL, "path is NULL");
+
+ if (NULL == *source || eina_list_count(*source) == 0) {
+ *source = eina_list_append(*source, strdup(path->str));
+ } else {
+
+ EINA_LIST_FOREACH(*source, l, data) {
+ source_path = (char *)data;
+ if (source_path != NULL) {
+ if (strcmp(source_path, path->str) == 0) {
+ file_exist_flag = true;
+ break;
+ }
+ }
+ }
+ if (file_exist_flag == true) {
+ *source = eina_list_remove(*source, source_path);
+ } else {
+ *source = eina_list_append(*source, strdup(path->str));
+ }
+ }
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_create_checkbox
+** Description : Samsung
+** Input : Evas_Object *parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_create_checkbox(Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ Evas_Object *ck_box = NULL;
+
+ ck_box = elm_check_add(parent);
+ evas_object_size_hint_weight_set(ck_box, 1.0, 1.0);
+ evas_object_size_hint_align_set(ck_box, -1.0, 0.5);
+ elm_check_state_set(ck_box, 0);
+ evas_object_show(ck_box);
+ evas_object_repeat_events_set(ck_box, 0);
+ UG_TRACE_END;
+ return ck_box;
+}
+
+static void __mf_ug_genlist_show_select_info(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retm_if(itemData == NULL, "itemData is NULL");
+
+ ugData *ugd = itemData->ug_pData;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ int iDirCount = 0, iFileCount = 0;
+ Elm_Object_Item *it = NULL;
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ Evas_Object *pGenlist = pNavi_s->ug_pContent;
+
+ it = elm_genlist_first_item_get(pGenlist);
+ while (it) {
+ itemData = elm_object_item_data_get(it);
+ if (itemData->ug_bChecked) {
+ if (ecore_file_is_dir(itemData->ug_pItemName->str)) {
+ iDirCount++;
+ } else {
+ iFileCount++;
+ }
+ }
+
+ it = elm_genlist_item_next_get(it);
+ }
+ mf_ug_navi_bar_set_select_info_label(itemData->ug_pData, iDirCount, iFileCount);
+ UG_TRACE_END;
+
+}
+
+/******************************
+** Prototype : __mf_ug_genlist_checkbox_cb
+** Description : Samsung
+** Input : void *data
+** Evas_Object *obj
+** void *event_info
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retm_if(itemData == NULL, "itemData is NULL");
+
+ if (itemData->ug_bChecked == false) {
+ itemData->ug_bChecked = true;
+ } else {
+ itemData->ug_bChecked = false;
+ }
+
+ if (itemData->ug_pData->ug_UiGadget.ug_iMarkedMode == MARKED_ON) {
+ __mf_ug_genlist_set_marked_path(&itemData->ug_pData->ug_UiGadget.ug_pMultiSelectFileList, itemData->ug_pItemName);
+ }
+
+ __mf_ug_genlist_show_select_info(itemData);
+ mf_ug_ctrl_bar_set_item_disable(itemData->ug_pData);
+
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_create_radio_box
+** Description : Samsung
+** Input : Evas_Object *parent
+** ugListItemData *params
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_create_radio_box(Evas_Object *parent, ugListItemData *params)
+{
+ UG_TRACE_BEGIN;
+
+ ugListItemData *itemData = (ugListItemData *)params;
+ ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
+
+ ugData *ugd = (ugData *)(itemData->ug_pData);
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+
+ Evas_Object *radio_box = NULL;
+ radio_box = elm_radio_add(parent);
+ elm_radio_state_value_set(radio_box, itemData->ug_iGroupValue);
+ elm_radio_group_add(radio_box, ugd->ug_MainWindow.ug_pRadioGroup);
+ elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, ugd->ug_Status.ug_iRadioOn);
+ UG_TRACE_END;
+ return radio_box;
+}
+
+
+
+/******************************
+** Prototype : __mf_ug_genlist_radio_box_cb
+** Description : Samsung
+** Input : void *data
+** Evas_Object *obj
+** void *event_info
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_radio_box_cb(void *data, Evas_Object *obj, void *event_info)
+{
+
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retm_if(itemData == NULL, "ugListItemData is NULL");
+
+ itemData->ug_bChecked = true;
+ itemData->ug_pData->ug_Status.ug_iRadioOn = itemData->ug_iGroupValue;
+ elm_radio_value_set(itemData->ug_pData->ug_MainWindow.ug_pRadioGroup, itemData->ug_iGroupValue);
+ mf_ug_ctrl_bar_set_item_disable(itemData->ug_pData);
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_get_gl_label
+** Description :
+** Input : const void *data
+** Evas_Object *obj
+** const char *part
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static char *__mf_ug_genlist_get_gl_label(void *data, Evas_Object *obj, const char *part)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
+
+ if (strcmp(part, "elm.text") == 0) {
+ UG_TRACE_END;
+ return strdup(ecore_file_file_get(itemData->ug_pItemName->str));
+ } else if (strcmp(part, "elm.uptitle.text") == 0) {
+ UG_TRACE_END;
+ return strdup(("Upper Level"));
+ } else {
+ UG_TRACE_END;
+ return strdup("");
+ }
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_get_thumbnail
+** 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_genlist_get_thumbnail(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retm_if(itemData == NULL, "itemData is NULL");
+
+ const char *dir_icon_path = UG_ICON_FOLDER;
+ //const char *dir_create_icon_path = UG_ICON_FOLDER_CREATED;
+ char *icon_path = NULL;
+ int error_code = MYFILE_ERR_NONE;
+
+ if (itemData->ug_pThumbPath == NULL) {
+ if (ecore_file_is_dir(itemData->ug_pItemName->str)) {
+ itemData->ug_pThumbPath = strdup(dir_icon_path);
+ itemData->ug_bRealThumbFlag = true;
+ } else {
+ icon_path = mf_ug_file_attr_get_file_icon(itemData->ug_pData->ug_Status.ug_pMedia_svc_handle, itemData->ug_pItemName->str, &error_code);
+ if (icon_path) {
+ itemData->ug_pThumbPath = strdup(icon_path);
+ itemData->ug_bRealThumbFlag = true;
+ free(icon_path);
+ icon_path = NULL;
+ } else { /*/must be image/video file */
+
+ mf_ug_fs_file_type type = UG_FILE_TYPE_NONE;
+ type = mf_ug_file_attr_get_file_type_by_mime(itemData->ug_pItemName->str);
+
+ if (type == UG_FILE_TYPE_VIDEO) {
+ itemData->ug_pThumbPath = strdup(UG_ICON_VIDEO);
+ } else if (type == UG_FILE_TYPE_IMAGE) {
+ itemData->ug_pThumbPath = strdup(UG_ICON_IMAGE);
+ } else {
+ itemData->ug_pThumbPath = strdup(UG_DEFAULT_ICON);
+ }
+ itemData->ug_bRealThumbFlag = false;
+ error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
+ }
+ }
+ } else if (itemData->ug_pThumbPath && ecore_file_exists(itemData->ug_pThumbPath)) {
+ if (itemData->ug_bRealThumbFlag == false) {
+ error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
+ }
+ } else if (!ecore_file_exists(itemData->ug_pThumbPath)) {
+
+ ug_debug("ug_pThumbPath[%s] is not exist", itemData->ug_pThumbPath);
+ free(itemData->ug_pThumbPath);
+ itemData->ug_pThumbPath = NULL;
+ /*/set default icon */
+ itemData->ug_pThumbPath = strdup(UG_DEFAULT_ICON);
+ itemData->ug_bRealThumbFlag = false;
+ error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
+ }
+#ifdef UG_THUMB_REAL_TIME_UPDATE
+ /*/check if we need to add refresh timer */
+ if (error_code != 0 && itemData->ug_pData->ug_Status.ug_pThumbUpdateTimer == NULL) {
+ itemData->ug_pData->ug_Status.ug_pThumbUpdateTimer = ecore_timer_add(INTERVAL_THUMB_UPDATE, mf_ug_cb_thumb_timer_cb, itemData);
+ }
+#endif
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_create_thumbnail
+** Description : Samsung
+** Input : void *data
+** Evas_Object *parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_create_thumbnail(void *data, Evas_Object *parent)
+{
+
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
+
+ Evas_Object *thumb = NULL;
+
+#ifdef USE_IMAGE_OBJECT
+ thumb = evas_object_image_add(evas_object_evas_get(parent));
+#else
+ thumb = elm_icon_add(parent);
+#endif
+ if (thumb == NULL) {
+ ug_debug("thumb is NULL");
+ }
+ if (thumb) {
+#ifdef USE_IMAGE_OBJECT
+ int load_err = EVAS_LOAD_ERROR_NONE;
+ evas_object_image_file_set(thumb, itemData->ug_pThumbPath, NULL);
+ load_err = evas_object_image_load_error_get(thumb);
+
+ if (load_err != EVAS_LOAD_ERROR_NONE) {
+ evas_object_del(thumb);
+ thumb = NULL;
+ } else {
+ evas_object_image_filled_set(thumb, EINA_TRUE);
+ }
+#else
+ elm_icon_file_set(thumb, itemData->ug_pThumbPath, NULL);
+#endif
+ }
+ UG_TRACE_END;
+ return thumb;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_create_mmc_icon
+** Description : Samsung
+** Input : Evas_Object *parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_create_mmc_icon(Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ Evas_Object *ic_memory = NULL;
+ const char *memory_icon_path = UG_ICON_MEMORY_SUB;
+
+ ic_memory = elm_icon_add(parent);
+ elm_icon_file_set(ic_memory, memory_icon_path, NULL);
+ evas_object_show(ic_memory);
+
+ UG_TRACE_END;
+ return ic_memory;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_add_checkbox
+** Description : Samsung
+** Input : void *data
+** Evas_Object *parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_add_checkbox(void *data, Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
+
+ Evas_Object *check_box = __mf_ug_genlist_create_checkbox(parent);
+ evas_object_propagate_events_set(check_box, 0);
+
+ elm_check_state_set(check_box, itemData->ug_bChecked);
+
+ itemData->ug_pCheckBox = check_box;
+ evas_object_smart_callback_add(check_box, "changed", __mf_ug_genlist_checkbox_cb, itemData);
+
+ UG_TRACE_END;
+ return check_box;
+}
+
+
+
+/******************************
+** Prototype : __mf_ug_genlist_add_radio_box
+** Description : Samsung
+** Input : void *data
+** Evas_Object *parent
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_add_radio_box(void *data, Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
+
+ Evas_Object *radio_box = __mf_ug_genlist_create_radio_box(parent, itemData);
+
+ evas_object_propagate_events_set(radio_box, 0);
+ itemData->ug_pRadioBox = radio_box;
+ evas_object_smart_callback_add(radio_box, "changed", __mf_ug_genlist_radio_box_cb, itemData);
+
+ UG_TRACE_END;
+ return radio_box;
+}
+
+
+static Evas_Object *__mf_ug_genlist_gl_upper_icon_get(void *data, Evas_Object * obj, const char *part)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *listItemData = (ugListItemData *)data;
+
+ ug_mf_retvm_if(listItemData == NULL, NULL, "listItemData is NULL");
+ ug_mf_retvm_if(listItemData->ug_pItemName == NULL, NULL, "m_ItemName is NULL");
+ ug_mf_retvm_if(part == NULL, NULL, "part is NULL");
+ ug_mf_retvm_if(obj == NULL, NULL, "obj is NULL");
+
+ Evas_Object *thumb = NULL;
+ if (!strcmp(part, "elm.icon")) {
+ thumb = elm_icon_add(obj);
+ elm_object_focus_set(thumb, EINA_FALSE);
+ if (thumb) {
+ elm_icon_file_set(thumb, listItemData->ug_pThumbPath, NULL);
+ }
+ }
+ return thumb;
+}
+
+
+static Evas_Object *__mf_ug_genlist_upper_icon_get(void *data, Evas_Object * obj, const char *part)
+{
+ ug_mf_retvm_if(data == NULL, NULL, "data is NULL");
+ ug_mf_retvm_if(obj == NULL, NULL, "obj is NULL");
+
+ ugData *ugd = (ugData *)data;
+
+ if (!strcmp(part, "elm.icon.1")) {
+ Evas_Object *btn = elm_button_add(obj);
+ elm_object_text_set(btn, MF_UG_LABEL_HOME);
+ evas_object_smart_callback_add(btn, "clicked", mf_ug_cb_home_button_cb, ugd);
+ return btn;
+ } else if (!strcmp(part, "elm.icon.2")) {
+ Evas_Object *btn = elm_button_add(obj);
+ elm_object_text_set(btn, MF_UG_LABEL_UPPER);
+ evas_object_smart_callback_add(btn, "clicked", mf_ug_cb_upper_click_cb, ugd);
+ return btn;
+ }
+ return NULL;
+}
+
+/******************************
+** Prototype : __mf_ug_genlist_get_gl_icon
+** Description : Samsung
+** Input : const void *data
+** Evas_Object *obj
+** const char *part
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_get_gl_icon(void *data, Evas_Object *obj, const char *part)
+{
+ UG_TRACE_BEGIN;
+ Evas_Object *thumb = NULL, *ic_memory = NULL;
+ Evas_Object *layout = NULL;
+ Evas_Object *selected_box = NULL;
+
+ mf_ug_storage_type is_in_mmc = 0;
+ ugListItemData *listItemData = (ugListItemData *)data;
+ ug_mf_retv_if(listItemData == NULL, NULL);
+ ugData *ugd = listItemData->ug_pData;
+ ug_mf_retv_if(ugd == NULL, NULL);
+
+ if (!strcmp(part, "elm.icon")) {
+ if (strncmp(listItemData->ug_pItemName->str, "Upper Level", strlen(listItemData->ug_pItemName->str)) == 0) {
+ listItemData->ug_pThumbPath = strdup(UG_ICON_UPPER);
+ thumb = __mf_ug_genlist_create_thumbnail(listItemData, obj);
+ return thumb;
+ }
+ __mf_ug_genlist_get_thumbnail(listItemData);
+ thumb = __mf_ug_genlist_create_thumbnail(listItemData, obj);
+ layout = elm_layout_add(obj);
+ elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_LIST);
+ elm_object_part_content_set(layout, "swallow_thumb", thumb);
+
+ mf_ug_file_attr_get_store_type_by_full(listItemData->ug_pItemName->str, &is_in_mmc);
+ if (is_in_mmc == MF_UG_MMC) {
+ ic_memory = __mf_ug_genlist_create_mmc_icon(obj);
+ elm_object_part_content_set(layout, "myfile.memory_icon.sub", ic_memory);
+ }
+ UG_TRACE_END;
+ return layout;
+ } else if (!strcmp(part, "elm.icon.1")) {
+ if (ugd->ug_UiGadget.ug_pMultiSelectFileList) {
+ if (__mf_ug_genlist_is_file_marked(ugd->ug_UiGadget.ug_pMultiSelectFileList, listItemData->ug_pItemName)) {
+ listItemData->ug_bChecked = true;
+ }
+ }
+ if (ecore_file_is_dir(listItemData->ug_pItemName->str)) {
+ if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_ALL_MODE) {
+ selected_box = __mf_ug_genlist_add_checkbox(listItemData, obj);
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE) {
+ selected_box = __mf_ug_genlist_add_radio_box(listItemData, obj);
+ }
+ } else {
+ if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == MULTI_ALL_MODE) {
+ selected_box = __mf_ug_genlist_add_checkbox(listItemData, obj);
+ } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE) {
+
+ selected_box = __mf_ug_genlist_add_radio_box(listItemData, obj);
+ }
+ }
+ return selected_box;
+ } else if (!strcmp(part, "elm.icon.2")) {
+ __mf_ug_genlist_get_thumbnail(listItemData);
+ thumb = __mf_ug_genlist_create_thumbnail(listItemData, obj);
+ return thumb;
+ } else if (!strcmp(part, "elm.icon.3")) {
+#ifdef LIST_PLAY_SUPPORT
+ ug_debug();
+ if (!ecore_file_is_dir(listItemData->ug_pItemName->str)) {
+ ug_debug();
+ Evas_Object *music_icon = NULL;
+ Evas_Object *music_button = NULL;
+ mf_ug_launch_type launch_type = mf_ug_util_get_file_launch_type(listItemData->ug_pItemName->str);
+ if (launch_type == LAUNCH_TYPE_MUSIC) {
+ char *play_icon = NULL;
+ char *pause_icon = NULL;
+
+ music_button = elm_button_add(obj);
+ elm_object_style_set(music_button, "circle/empty");
+
+ music_icon = elm_icon_add(music_button);
+ if (ugd->ug_ListPlay.ug_pPlayFilePath) {
+ if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, listItemData->ug_pItemName->str) == 0) {
+ if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING) {
+
+ pause_icon = strdup(UG_ICON_MUSIC_PAUSE_WHITE);
+ elm_icon_file_set(music_icon, pause_icon, NULL);
+ } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) {
+ play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
+ elm_icon_file_set(music_icon, play_icon, NULL);
+ }
+ } else {
+ play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
+ elm_icon_file_set(music_icon, play_icon, NULL);
+ }
+ } else {
+ play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
+ elm_icon_file_set(music_icon, play_icon, NULL);
+ }
+ evas_object_size_hint_aspect_set(music_icon, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
+ elm_object_part_content_set(music_button, "icon", music_icon);
+ evas_object_propagate_events_set(music_button, EINA_FALSE);
+ evas_object_smart_callback_add(music_button, "clicked", (Evas_Smart_Cb)mf_ug_cb_list_play_cb, (void*)listItemData);
+ UG_TRACE_END;
+ return music_button;
+ }
+ }
+#endif
+ UG_TRACE_END;
+
+ return NULL;
+
+ } else {
+ UG_TRACE_END;
+ return NULL;
+ }
+}
+
+static Evas_Object *__mf_ug_genlist_get_gl_editfiled_icon(void *data, Evas_Object *obj, const char *part)
+{
+ ugListItemData *listItemData = (ugListItemData *)data;
+ ug_mf_retv_if(listItemData == NULL, NULL);
+ ugData *ugd = listItemData->ug_pData;
+ ug_mf_retv_if(ugd == NULL, NULL);
+
+ ug_debug("listItemData is [%p]", listItemData);
+
+ if (!strcmp(part, "elm.icon")) {
+ Evas_Object *button = NULL;
+ button = elm_button_add(obj);
+ elm_object_text_set(button, "Go to My files");
+ evas_object_smart_callback_add(button, "clicked", mf_ug_cb_goto_myfile_button_cb, ugd);
+ return button;
+ }
+ return NULL;
+}
+
+/******************************
+** Prototype : __mf_ug_genlist_get_gl_state
+** Description :
+** Input : const void *data
+** Evas_Object *obj
+** const char *part
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Eina_Bool __mf_ug_genlist_get_gl_state(void *data, Evas_Object *obj, const char *part)
+{
+ return EINA_FALSE;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_del_gl
+** Description :
+** Input : const void *data
+** Evas_Object *obj
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_del_gl(void *data, Evas_Object *obj)
+{
+ UG_TRACE_BEGIN;
+ ugListItemData *itemData = (ugListItemData *)data;
+ ug_mf_retm_if(itemData == NULL, "itemData is NULL");
+ if (itemData->ug_pItemName && itemData->ug_pItemName->str) {
+ g_string_free(itemData->ug_pItemName, TRUE);
+ itemData->ug_pItemName = NULL;
+ }
+ if (itemData->ug_pThumbPath) {
+ free(itemData->ug_pThumbPath);
+ itemData->ug_pThumbPath = NULL;
+ }
+ free(itemData);
+ itemData = NULL;
+ UG_TRACE_END;
+ return;
+}
+
+
+
+/******************************
+** Prototype : __mf_ug_genlist_selected_gl
+** Description : Samsung
+** Input : void *data
+** Evas_Object *obj
+** void *event_info
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_selected_gl(void *data, Evas_Object *obj, void *event_info)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ Elm_Object_Item *item = (Elm_Object_Item *) event_info;
+ int error_code = 0;
+ int mmc_card = 0;
+ error_code = mf_ug_util_get_mmc_state(&mmc_card);
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ if (item != NULL) {
+ ugListItemData *selected = (ugListItemData *)elm_object_item_data_get(item);
+ fprintf(stdout, "selected text %s\n", (char *)selected->ug_pItemName->str);
+ elm_genlist_item_selected_set(item, EINA_FALSE);
+ if (ugd->ug_Status.ug_b_NaviPushFlag)
+ return;
+ if (!strcmp(selected->ug_pItemName->str, "Upper Level")) {
+ if (ugd->ug_Status.ug_pPath != NULL && pNavi_s->ug_pCurrentPath != NULL) {
+ GString *new_path = NULL;
+ char *file_dir = ecore_file_dir_get(pNavi_s->ug_pCurrentPath);
+ if (file_dir) {
+ new_path = g_string_new(file_dir);
+ g_string_free(ugd->ug_Status.ug_pPath, TRUE);
+ ugd->ug_Status.ug_pPath = new_path;
+ free(pNavi_s->ug_pCurrentPath);
+ pNavi_s->ug_pCurrentPath = strdup(new_path->str);
+ free(file_dir);
+ file_dir = NULL;
+ } else {
+ ug_debug("file_dir is NULL");
+ }
+ } else {
+ ugd->ug_Status.ug_pPath = g_string_new(PHONE_FOLDER);
+ pNavi_s->ug_pCurrentPath = strdup(PHONE_FOLDER);
+ }
+ ugd->ug_Status.ug_b_NaviPushFlag = true;
+ mf_ug_navi_bar_create_default_view(ugd);
+ } else if (!ecore_file_is_dir(selected->ug_pItemName->str)) {
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE) {
+ if (elm_radio_value_get(ugd->ug_MainWindow.ug_pRadioGroup) != selected->ug_iGroupValue) {
+ ugd->ug_Status.ug_iRadioOn = selected->ug_iGroupValue;
+ selected->ug_bChecked = true;
+ elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, selected->ug_iGroupValue);
+ }
+
+ } else {
+ if (selected->ug_bChecked == 0) {
+ selected->ug_bChecked = 1;
+ } else {
+ selected->ug_bChecked = 0;
+ }
+ elm_check_state_set(selected->ug_pCheckBox, selected->ug_bChecked);
+ __mf_ug_genlist_show_select_info(selected);
+ }
+ } else if (ecore_file_is_dir(selected->ug_pItemName->str) && strcmp(selected->ug_pItemName->str, "Upper Level")) {
+
+ if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING || ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) {
+ mf_ug_list_play_destory_playing_file(ugd);
+ }
+ if (ugd->ug_Status.ug_pPath) {
+ g_string_free(ugd->ug_Status.ug_pPath, TRUE);
+ ugd->ug_Status.ug_pPath = NULL;
+ }
+ ugd->ug_Status.ug_pPath = g_string_new(selected->ug_pItemName->str);
+ if (pNavi_s->ug_pCurrentPath != NULL) {
+ free(pNavi_s->ug_pCurrentPath);
+ pNavi_s->ug_pCurrentPath = NULL;
+ }
+ pNavi_s->ug_pCurrentPath = strdup(selected->ug_pItemName->str);
+ ugd->ug_Status.ug_b_NaviPushFlag = true;
+ mf_ug_navi_bar_create_default_view(ugd);
+ }
+
+ mf_ug_ctrl_bar_set_item_disable(ugd);
+ }
+ UG_TRACE_END;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_create_gl
+** Description : Samsung
+** Input : void *data
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static Evas_Object *__mf_ug_genlist_create_gl(void *data)
+{
+
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+
+ ugNaviBar *pNaviInUse = mf_ug_navi_bar_get_in_use_navi(ugd);
+ ug_mf_retvm_if(pNaviInUse == NULL, NULL, "pNaviInUse is NULL");
+
+ Evas_Object *genlist;
+ ug_debug("pNaviInUse->ug_pNaviBar is [%p]", pNaviInUse->ug_pNaviBar);
+ genlist = elm_genlist_add(pNaviInUse->ug_pNaviBar);
+ evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+ evas_object_smart_callback_add(genlist, "selected", __mf_ug_genlist_selected_gl, ugd);
+
+#ifdef UG_THUMB_REAL_TIME_UPDATE
+ if (ugd->ug_Status.ug_pThumbUpdateTimer != NULL) {
+ ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer);
+ ugd->ug_Status.ug_pThumbUpdateTimer = NULL;
+ }
+#endif
+
+ ugd->ug_Status.ug_itc.item_style = "1text.3icon";
+ ugd->ug_Status.ug_itc.func.text_get = __mf_ug_genlist_get_gl_label;
+ ugd->ug_Status.ug_itc.func.content_get = __mf_ug_genlist_get_gl_icon;
+ ugd->ug_Status.ug_itc.func.state_get = __mf_ug_genlist_get_gl_state;
+ ugd->ug_Status.ug_itc.func.del = __mf_ug_genlist_del_gl;
+
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+ ugd->ug_Status.ug_normalitc.item_style = "1text.1icon.2";
+ ugd->ug_Status.ug_normalitc.func.text_get = __mf_ug_genlist_get_gl_label;
+ ugd->ug_Status.ug_normalitc.func.content_get = __mf_ug_genlist_get_gl_icon;
+ ugd->ug_Status.ug_normalitc.func.state_get = __mf_ug_genlist_get_gl_state;
+ ugd->ug_Status.ug_normalitc.func.del = __mf_ug_genlist_del_gl;
+ }
+
+ UG_TRACE_END;
+
+ return genlist;
+}
+
+
+/******************************
+** Prototype : __mf_ug_genlist_init_item_data
+** Description : Samsung
+** Input : void *data
+** ugListItemData **itemData
+** char *fullname
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+static void __mf_ug_genlist_init_item_data(void *data, ugListItemData **itemData, char *fullname)
+{
+
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ugListItemData **ug_ItemData = itemData;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+ ug_mf_retm_if(ug_ItemData == NULL, "ug_ItemData is NULL");
+
+ *ug_ItemData = (ugListItemData *)malloc(sizeof(ugListItemData));
+ if (*ug_ItemData == NULL) {
+ ug_debug("ug_ItemData malloc failed");
+ } else {
+ memset(*ug_ItemData, 0, sizeof(ugListItemData));
+ if (fullname) {
+ (*ug_ItemData)->ug_pItemName = g_string_new(fullname);
+ } else {
+ (*ug_ItemData)->ug_pItemName = NULL;
+ }
+ (*ug_ItemData)->ug_bChecked = false;
+ (*ug_ItemData)->ug_pRadioBox = NULL;
+ (*ug_ItemData)->ug_pCheckBox = NULL;
+ (*ug_ItemData)->ug_iGroupValue = 0;
+ (*ug_ItemData)->ug_pItem = NULL;
+ (*ug_ItemData)->ug_pThumbPath = NULL;
+ (*ug_ItemData)->ug_bRealThumbFlag = false;
+ (*ug_ItemData)->ug_pData = ugd;
+ }
+ UG_TRACE_END;
+}
+
+/******************************
+** Prototype : mf_ug_genlist_create_content_list_view
+** Description : Samsung
+** Input : void *data
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_genlist_upper_style_set(void *data)
+{
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+ ugd->ug_Status.ug_topitc.item_style = "1text.1icon.2";
+ ugd->ug_Status.ug_topitc.func.text_get = __mf_ug_genlist_get_gl_label;
+ ugd->ug_Status.ug_topitc.func.content_get = __mf_ug_genlist_gl_upper_icon_get;
+ ugd->ug_Status.ug_topitc.func.state_get = __mf_ug_genlist_get_gl_state;
+ ugd->ug_Status.ug_topitc.func.del = __mf_ug_genlist_del_gl;
+}
+
+void mf_ug_genlist_goto_myfile_style_set(void *data)
+{
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+ ugd->ug_Status.ug_editfileditc.item_style = "dialogue/bg/1icon";
+ ugd->ug_Status.ug_editfileditc.func.text_get = NULL;
+ ugd->ug_Status.ug_editfileditc.func.content_get = __mf_ug_genlist_get_gl_editfiled_icon;
+ ugd->ug_Status.ug_editfileditc.func.state_get = NULL;
+ ugd->ug_Status.ug_editfileditc.func.del = __mf_ug_genlist_del_gl;
+
+ ugd->ug_Status.ug_editfiledBottomSeperatoritc.item_style = "dialogue/separator/11/with_line";
+ ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.text_get = NULL;
+ ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.content_get = NULL;
+ ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.state_get = NULL;
+ ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.del = NULL;
+
+ ugd->ug_Status.ug_editfiledUpperSeperatoritc.item_style = "dialogue/separator/10";
+ ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.text_get = NULL;
+ ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.content_get = NULL;
+ ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.state_get = NULL;
+ ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.del = NULL;
+
+}
+
+Evas_Object *mf_navi_bar_upper_create(Evas_Object *parent)
+{
+ UG_TRACE_BEGIN;
+ ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
+
+ Evas_Object *upper_genlist = NULL;
+ upper_genlist = elm_genlist_add(parent);
+ ug_mf_retvm_if(upper_genlist == NULL, NULL, "upper_genlist is NULL");
+ elm_object_focus_set(upper_genlist, EINA_FALSE);
+ evas_object_size_hint_weight_set(upper_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(upper_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_genlist_bounce_set(upper_genlist, EINA_FALSE, EINA_FALSE);
+ evas_object_show(upper_genlist);
+ UG_TRACE_END;
+ return upper_genlist;
+
+}
+
+
+void mf_ug_upper_genlist_item_append(Evas_Object *pGenlist, void *data)
+{
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ug_mf_retm_if(pGenlist == NULL, "pGenlist is NULL");
+ ugData *ugd = (ugData *)data;
+
+ Elm_Object_Item *item = NULL;
+
+ ugd->ug_Status.ug_topitc.item_style = "dialogue/bg/2icon";
+ ugd->ug_Status.ug_topitc.func.text_get = NULL;
+ ugd->ug_Status.ug_topitc.func.content_get = __mf_ug_genlist_upper_icon_get;
+ ugd->ug_Status.ug_topitc.func.state_get = NULL;
+ ugd->ug_Status.ug_topitc.func.del = NULL;
+ ugd->ug_Status.ug_separtor_no_bottom_line_itc.item_style = "dialogue/seperator.4";
+ ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.text_get = NULL;
+ ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.content_get = NULL;
+ ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.state_get = NULL;
+ ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.del = NULL;
+
+ ugd->ug_Status.ug_separtor_with_bottom_line_itc.item_style = "dialogue/seperator.2";
+ ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.text_get = NULL;
+ ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.content_get = NULL;
+ ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.state_get = NULL;
+ ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.del = NULL;
+
+ // separator with no bottom line
+ item = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_separtor_no_bottom_line_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ // button for dialogue item (dialogue bg)
+ item = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_topitc, (void *) ugd, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ // separator with bottom line
+ item = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_separtor_with_bottom_line_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+
+void mf_ug_genlist_goto_myfile_item_append(Evas_Object *pGenlist, void *data)
+{
+ ug_mf_retm_if(pGenlist == NULL, "pGenlist is NULL");
+ ug_mf_retm_if(data == NULL, "data is NULL");
+ ugData *ugd = (ugData *)data;
+
+ ugListItemData *ug_ItemData;
+ Elm_Object_Item *it = NULL;
+
+ __mf_ug_genlist_init_item_data(ugd, &ug_ItemData, NULL);
+ ug_debug("ug_ItemData is [%p]", &ug_ItemData);
+
+ it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfiledUpperSeperatoritc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfileditc, ug_ItemData, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
+ ug_ItemData->ug_pItem = it;
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+
+ it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfiledBottomSeperatoritc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL,
+ NULL);
+ elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+}
+Evas_Object *mf_ug_genlist_create_content_list_view(void *data)
+{
+ UG_TRACE_BEGIN;
+ ugData *ugd = (ugData *)data;
+ ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
+ ugNaviBar *pNaviInUse = mf_ug_navi_bar_get_in_use_navi(ugd);
+ ug_mf_retvm_if(pNaviInUse == NULL, NULL, "pNaviInUse is NULL");
+
+ Evas_Object *genlist;
+ int groupValue = 1;
+ int error_code = 0;
+ Eina_List *dir_list = NULL;
+ Eina_List *file_list = NULL;
+ Elm_Object_Item *it = NULL;
+ int count = 0;
+
+ ugListItemData *ug_ItemData;
+
+ ugd->ug_Status.ug_iRadioOn = 0;
+ ugd->ug_Status.ug_bNoContentFlag = false;
+
+ genlist = __mf_ug_genlist_create_gl(ugd);
+ ug_mf_retvm_if(genlist == NULL, NULL, "genlist create failed");
+ pNaviInUse->ug_pContent = genlist;
+
+ GString *fullpath = g_string_new(ugd->ug_Status.ug_pPath->str);
+
+
+ error_code = mf_ug_fm_svc_wapper_get_file_list_by_filter(ugd, fullpath, &dir_list, &file_list);
+
+ if (error_code == 0) {
+
+ if (ugd->ug_UiGadget.ug_pDirList) {
+ mf_ug_util_free_eina_list_data(&ugd->ug_UiGadget.ug_pDirList, NODE_TYPE_PNODE);
+ ugd->ug_UiGadget.ug_pDirList = NULL;
+ }
+ if (ugd->ug_UiGadget.ug_pFilterList) {
+ mf_ug_util_free_eina_list_data(&ugd->ug_UiGadget.ug_pFilterList, NODE_TYPE_PNODE);
+ ugd->ug_UiGadget.ug_pFilterList = NULL;
+ }
+ ugd->ug_UiGadget.ug_pFilterList = file_list;
+ ugd->ug_UiGadget.ug_pDirList = dir_list;
+ }
+ /* list option set */
+ unsigned int dir_list_len = eina_list_count(dir_list);
+ unsigned int filter_file_list_len = eina_list_count(ugd->ug_UiGadget.ug_pFilterList);
+ ug_debug("error_code is [%d]dir_list_len is [%d]file_list_len is [%d]\n", error_code, dir_list_len, filter_file_list_len);
+
+
+ if ((dir_list_len == 0 && filter_file_list_len == 0) || (ugd->ug_Status.ug_bMassStorageFlag && !ugd->ug_Status.ug_bInSettingView)) {
+ Evas_Object *layout;
+ Evas_Object *nocontent;
+ nocontent = elm_layout_add(ugd->ug_MainWindow.ug_pMainLayout);
+ elm_layout_theme_set(nocontent, "layout", "nocontents", "text");
+ elm_object_part_text_set(nocontent, "elm.text", MF_UG_LABEL_NO_FILES);
+ ugd->ug_Status.ug_bNoContentFlag = true;
+
+ elm_genlist_bounce_set(genlist, EINA_FALSE, EINA_FALSE);
+
+ layout = elm_layout_add(ugd->ug_MainWindow.ug_pMainLayout);
+
+ elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_NO_CONTENT);
+ elm_object_part_content_set(layout, "myfile.noContent.upper", genlist);
+ elm_object_part_content_set(layout, "myfile.noContent.content", nocontent);
+ if (!ugd->ug_Status.ug_bMassStorageFlag) {
+ mf_ug_util_add_dir_watch(fullpath->str, ugd);
+ g_string_free(fullpath, true);
+ fullpath = NULL;
+ }
+ return layout;
+ }
+ ugFsNodeInfo *pNode = NULL;
+ Eina_List *l = NULL;
+
+ EINA_LIST_FOREACH(dir_list, l, pNode) {
+ char *real_name = NULL;
+ count++;
+ if (pNode != NULL) {
+ real_name = g_strconcat(pNode->path, "/", pNode->name, NULL);
+ } else {
+ if (fullpath != NULL) {
+ g_string_free(fullpath, TRUE);
+ }
+ return NULL;
+ }
+
+ ug_debug("real_name is %s", real_name);
+ __mf_ug_genlist_init_item_data(ugd, &ug_ItemData, real_name);
+
+ if (ug_ItemData == NULL) {
+ ug_debug("alloc memory error\n");
+ if (real_name) {
+ free(real_name);
+ real_name = NULL;
+ }
+ continue;
+ }
+ if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+
+ ug_ItemData->ug_iGroupValue = 0;
+ it = elm_genlist_item_append(genlist, &ugd->ug_Status.ug_normalitc, ug_ItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ ug_ItemData->ug_pItem = it;
+ } else {
+ ug_ItemData->ug_iGroupValue = groupValue;
+ groupValue++;
+ it = elm_genlist_item_append(genlist, &ugd->ug_Status.ug_itc, ug_ItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ ug_ItemData->ug_pItem = it;
+ }
+
+ if (real_name) {
+ free(real_name);
+ real_name = NULL;
+ }
+ }
+
+ EINA_LIST_FOREACH(file_list, l, pNode) {
+ char *real_name = NULL;
+ mf_ug_launch_type launch_type = LAUNCH_TYPE_FORK;
+ count++;
+ real_name = g_strconcat(pNode->path, "/", pNode->name, NULL);
+ ug_debug("real_name is %s", real_name);
+
+ __mf_ug_genlist_init_item_data(ugd, &ug_ItemData, real_name);
+ if (ug_ItemData == NULL) {
+ ug_debug("alloc memory error\n");
+ if (real_name) {
+ free(real_name);
+ real_name = NULL;
+ }
+ continue;
+ }
+
+ if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
+ ug_ItemData->ug_iGroupValue = groupValue;
+ groupValue++;
+
+ if (__mf_ug_genlist_is_file_marked(ugd->ug_UiGadget.ug_pMultiSelectFileList, ug_ItemData->ug_pItemName)) {
+ ug_ItemData->ug_bChecked = true;
+ ugd->ug_Status.ug_iRadioOn = ug_ItemData->ug_iGroupValue;
+ }
+ }
+
+ it = elm_genlist_item_append(genlist, &ugd->ug_Status.ug_itc, ug_ItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ ug_ItemData->ug_pItem = it;
+
+ ug_debug();
+ if (real_name) {
+ ug_debug("free real_name\n");
+ free(real_name);
+ real_name = NULL;
+ }
+ }
+
+ if (fullpath != NULL) {
+ mf_ug_util_add_dir_watch(fullpath->str, ugd);
+ g_string_free(fullpath, TRUE);
+ }
+ UG_TRACE_END;
+ return genlist;
+}
+
+
+/******************************
+** Prototype : mf_ug_genlist_update_main_layout_content
+** Description : Samsung
+** Input : void *data
+** char* pItemLabel
+** Output : None
+** Return Value :
+** Calls :
+** Called By :
+**
+** History :
+** 1.Date : 2010/12/10
+** Author : Samsung
+** Modification : Created function
+**
+******************************/
+void mf_ug_genlist_update_main_layout_content(void *data, char *pItemLabel)
+{
+ ugData *ugd = (ugData *)data;
+ ug_mf_retm_if(ugd == NULL, "ugd is NULL");
+
+ ug_mf_retm_if(pItemLabel == NULL, "invalid parameter pItemLabel");
+ Evas_Object *pOldContent = NULL;
+ /*/1. delete the sepcified item from tab bar */
+ /*/1.1 get navi bar pointer from the control bar item */
+ Evas_Object *pNaviBar_toDel = ug_mf_navi_bar_get_navibar_from_navilist(ugd->ug_MainWindow.ug_pNaviBarList, pItemLabel);
+
+ ugNaviBar *pNavi_s = mf_ug_navi_bar_get_navi_struct_by_navi(ugd, pNaviBar_toDel);
+ /*/1.2 delete the item */
+ evas_object_del(pNaviBar_toDel);
+ mf_ug_tab_bar_remove_item_by_label(ugd->ug_MainWindow.ug_pTabBar, pItemLabel);
+ /*2. delete the item from navigation bar list */
+ Eina_List *plistNaviMMC = eina_list_data_find_list(ugd->ug_MainWindow.ug_pNaviBarList, pNavi_s);
+ /*/2.1 Todo: clear all the data in the structure. */
+ mf_ug_navi_bar_reset_navi_object(pNavi_s);
+ /*/2.2 remove from the list. */
+ ugd->ug_MainWindow.ug_pNaviBarList = eina_list_remove_list(ugd->ug_MainWindow.ug_pNaviBarList, plistNaviMMC);
+ /*/2.3 set first navi as navi in use */
+ pNavi_s = (ugNaviBar *)eina_list_nth(ugd->ug_MainWindow.ug_pNaviBarList, 1);
+ pNavi_s->ug_bNaviFlagInUse = TRUE;
+ /*/3. check if tab bar has at least 2 items */
+ if (eina_list_count(ugd->ug_MainWindow.ug_pNaviBarList) < 2) {
+ /*/no: tab bar delete operation */
+ pOldContent = elm_object_part_content_unset(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content");
+ evas_object_del(pOldContent);
+ /*/3.1 get pNavi Inuse */
+ pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
+ elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pNavi_s->ug_pNaviBar);
+ } else {
+ /*/yes: do nothing */
+ //elm_toolbar_item_selected_set(elm_toolbar_first_item_get(ugd->ug_MainWindow.ug_pTabBar), EINA_TRUE);
+ }
+}