2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (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"
21 #include "mf-ug-util.h"
22 #include "mf-ug-fm-svc-wrapper.h"
23 #include "mf-ug-fs-util.h"
24 #include "mf-ug-resource.h"
28 #define MF_UG_SELECTED_ITEM_BRING_UP_COUNT 7
29 #define MF_UG_SELECTED_ITEM_BRING_UP_COUNT_MAX 8
31 #define MF_UG_LIST_PLAY_TIME_OUT 0.5
32 /******************************
33 ** Prototype : __mf_ug_genlist_is_file_marked
34 ** Description : Samsung
35 ** Input : Eina_List *source
43 ** 1.Date : 2010/12/10
45 ** Modification : Created function
47 ******************************/
48 static gboolean __mf_ug_genlist_is_file_marked(Eina_List *source, GString *path)
51 ug_mf_retvm_if(source == NULL, false, "source is NULL");
52 ug_mf_retvm_if(path == NULL, false, "path is NULL");
58 EINA_LIST_FOREACH(source, l, data) {
59 char *source_path = strdup(data);
60 if (source_path != NULL) {
61 if (strcmp(source_path, path->str) == 0) {
77 /******************************
78 ** Prototype : __mf_ug_genlist_set_marked_path
79 ** Description : Samsung
80 ** Input : Eina_List **source
88 ** 1.Date : 2010/12/10
90 ** Modification : Created function
92 ******************************/
93 static void __mf_ug_genlist_set_marked_path(Eina_List **source, GString *path)
96 bool file_exist_flag = false;
101 ug_mf_retm_if(source == NULL, "source is NULL");
102 ug_mf_retm_if(path == NULL, "path is NULL");
104 if (NULL == *source || eina_list_count(*source) == 0) {
105 *source = eina_list_append(*source, strdup(path->str));
108 EINA_LIST_FOREACH(*source, l, data) {
109 source_path = (char *)data;
110 if (source_path != NULL) {
111 if (strcmp(source_path, path->str) == 0) {
112 file_exist_flag = true;
117 if (file_exist_flag == true) {
118 *source = eina_list_remove(*source, source_path);
120 *source = eina_list_append(*source, strdup(path->str));
127 /******************************
128 ** Prototype : __mf_ug_genlist_create_checkbox
129 ** Description : Samsung
130 ** Input : Evas_Object *parent
137 ** 1.Date : 2010/12/10
139 ** Modification : Created function
141 ******************************/
142 static Evas_Object *__mf_ug_genlist_create_checkbox(Evas_Object *parent)
145 Evas_Object *ck_box = NULL;
147 ck_box = elm_check_add(parent);
148 evas_object_size_hint_weight_set(ck_box, 1.0, 1.0);
149 evas_object_size_hint_align_set(ck_box, -1.0, 0.5);
150 elm_check_state_set(ck_box, 0);
151 evas_object_show(ck_box);
152 evas_object_repeat_events_set(ck_box, 0);
157 static void __mf_ug_genlist_show_select_info(void *data)
160 ugListItemData *itemData = (ugListItemData *)data;
161 ug_mf_retm_if(itemData == NULL, "itemData is NULL");
163 ugData *ugd = itemData->ug_pData;
164 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
166 int iDirCount = 0, iFileCount = 0;
167 Elm_Object_Item *it = NULL;
169 Evas_Object *pGenlist = ugd->ug_MainWindow.ug_pNaviGenlist;
171 it = elm_genlist_first_item_get(pGenlist);
173 itemData = elm_object_item_data_get(it);
174 if (itemData->ug_bChecked) {
175 if (ecore_file_is_dir(itemData->ug_pItemName->str)) {
182 it = elm_genlist_item_next_get(it);
185 count = iDirCount + iFileCount;
187 Evas_Object *notify_popup = NULL;
188 char lable_file[UG_LABEL_STRING_LENGTH] = { '\0', };
190 /*1 TODO: need to update for multi-language */
192 snprintf(lable_file, sizeof(lable_file), "%d", count);
193 label = g_strconcat(MF_UG_LABEL_SELECTED, "(", lable_file, ")", NULL);
194 notify_popup = mf_ug_navibar_create_notify_popup(itemData->ug_pData, ugd->ug_MainWindow.ug_pNaviLayout, label, false, NULL);
195 ugd->ug_MainWindow.ug_pSelectInfoLayout = notify_popup;
196 UG_SAFE_FREE_CHAR(label);
199 UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pSelectInfoLayout);
205 /******************************
206 ** Prototype : __mf_ug_genlist_checkbox_cb
207 ** Description : Samsung
208 ** Input : void *data
217 ** 1.Date : 2010/12/10
219 ** Modification : Created function
221 ******************************/
222 static void __mf_ug_genlist_checkbox_cb(void *data, Evas_Object *obj, void *event_info)
225 ugListItemData *itemData = (ugListItemData *)data;
226 ug_mf_retm_if(itemData == NULL, "itemData is NULL");
227 ugData *ugd = (ugData *)itemData->ug_pData;
229 if (itemData->ug_bChecked == false) {
230 itemData->ug_bChecked = true;
232 itemData->ug_bChecked = false;
235 if (itemData->ug_pData->ug_UiGadget.ug_iMarkedMode == MARKED_ON) {
236 __mf_ug_genlist_set_marked_path(&itemData->ug_pData->ug_UiGadget.ug_pMultiSelectFileList, itemData->ug_pItemName);
238 if (itemData->ug_bChecked) {
239 ugd->ug_Status.ug_iCheckedCount++;
241 ugd->ug_Status.ug_iCheckedCount--;
243 if (ugd->ug_MainWindow.ug_pSelectAllCheckBox) {
244 if (ugd->ug_Status.ug_iTotalCount == ugd->ug_Status.ug_iCheckedCount) {
245 ugd->ug_Status.ug_bSelectAllChecked = EINA_TRUE;
247 ugd->ug_Status.ug_bSelectAllChecked = EINA_FALSE;
249 elm_check_state_pointer_set(ugd->ug_MainWindow.ug_pSelectAllCheckBox, &ugd->ug_Status.ug_bSelectAllChecked);
252 __mf_ug_genlist_show_select_info(itemData);
253 mf_ug_ctrl_bar_set_item_disable(itemData->ug_pData);
259 /******************************
260 ** Prototype : __mf_ug_genlist_create_radio_box
261 ** Description : Samsung
262 ** Input : Evas_Object *parent
263 ** ugListItemData *params
270 ** 1.Date : 2010/12/10
272 ** Modification : Created function
274 ******************************/
275 static Evas_Object *__mf_ug_genlist_create_radio_box(Evas_Object *parent, ugListItemData *params)
279 ugListItemData *itemData = (ugListItemData *)params;
280 ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
282 ugData *ugd = (ugData *)(itemData->ug_pData);
283 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
285 Evas_Object *radio_box = NULL;
286 radio_box = elm_radio_add(parent);
287 elm_radio_state_value_set(radio_box, itemData->ug_iGroupValue);
288 elm_radio_group_add(radio_box, ugd->ug_MainWindow.ug_pRadioGroup);
289 elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, ugd->ug_Status.ug_iRadioOn);
295 static bool __mf_ug_list_play_timer_cb(void *data)
297 ugListItemData *item_data = (ugListItemData *)data;
298 ugData *ugd = (ugData *)item_data->ug_pData;
301 if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING || ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) {
302 if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, item_data->ug_pItemName->str) == 0) {
303 mf_ug_list_play_destory_playing_file(ugd);
304 //mf_ug_list_disable_play_itc(ugd, true);
305 //mf_ug_list_play_update_item_icon(ugd);
306 UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath);
308 //mf_ug_list_paly_hide_play_icon(ugd);
311 mf_ug_cb_list_play_cb(item_data, NULL, NULL);
312 if (elm_radio_value_get(ugd->ug_MainWindow.ug_pRadioGroup) != item_data->ug_iGroupValue) {
313 ugd->ug_Status.ug_iRadioOn = item_data->ug_iGroupValue;
314 item_data->ug_bChecked = true;
315 elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, item_data->ug_iGroupValue);
318 item_data->ug_pData->ug_Status.play_timer = NULL;
319 return ECORE_CALLBACK_CANCEL;
323 /******************************
324 ** Prototype : __mf_ug_genlist_radio_box_cb
325 ** Description : Samsung
326 ** Input : void *data
335 ** 1.Date : 2010/12/10
337 ** Modification : Created function
339 ******************************/
340 static void __mf_ug_genlist_radio_box_cb(void *data, Evas_Object *obj, void *event_info)
344 ugListItemData *itemData = (ugListItemData *)data;
345 ug_mf_retm_if(itemData == NULL, "ugListItemData is NULL");
346 ugData *ugd = (ugData *)itemData->ug_pData;
347 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
349 itemData->ug_bChecked = true;
350 itemData->ug_pData->ug_Status.ug_iRadioOn = itemData->ug_iGroupValue;
351 elm_radio_value_set(itemData->ug_pData->ug_MainWindow.ug_pRadioGroup, itemData->ug_iGroupValue);
352 mf_ug_ctrl_bar_set_item_disable(itemData->ug_pData);
355 mf_ug_launch_type launch_type = mf_ug_util_get_file_launch_type(itemData->ug_pItemName->str);
356 if (launch_type == LAUNCH_TYPE_MUSIC) {
357 if (ugd->ug_Status.play_timer == NULL) {
358 ug_error(">>>>>>>>>>>>>> entry list play");
359 ugd->ug_Status.play_timer = ecore_timer_add(MF_UG_LIST_PLAY_TIME_OUT, (Ecore_Task_Cb)__mf_ug_list_play_timer_cb, itemData);
361 ug_error(">>>>>>>>>>>>>> Faild entry list play");
370 /******************************
371 ** Prototype : __mf_ug_genlist_get_gl_label
373 ** Input : const void *data
382 ** 1.Date : 2010/12/10
384 ** Modification : Created function
386 ******************************/
387 static char *__mf_ug_genlist_get_gl_label(void *data, Evas_Object *obj, const char *part)
390 ugListItemData *itemData = (ugListItemData *)data;
391 ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
393 if (strcmp(part, "elm.text") == 0) {
395 if (g_strcmp0(itemData->ug_pItemName->str, PHONE_FOLDER) == 0) {
396 return g_strdup(MF_UG_LABEL_PHONE);
397 } else if (g_strcmp0(itemData->ug_pItemName->str, MEMORY_FOLDER) == 0) {
398 return g_strdup(MF_UG_LABEL_MMC);
400 return strdup(ecore_file_file_get(itemData->ug_pItemName->str));
402 } else if (strcmp(part, "elm.uptitle.text") == 0) {
404 return strdup(("Upper Level"));
412 /******************************
413 ** Prototype : __mf_ug_genlist_get_thumbnail
414 ** Description : Samsung
415 ** Input : void *data
422 ** 1.Date : 2010/12/10
424 ** Modification : Created function
426 ******************************/
427 static void __mf_ug_genlist_get_thumbnail(void *data)
430 ugListItemData *itemData = (ugListItemData *)data;
431 ug_mf_retm_if(itemData == NULL, "itemData is NULL");
433 const char *dir_icon_path = UG_ICON_FOLDER;
434 //const char *dir_create_icon_path = UG_ICON_FOLDER_CREATED;
435 char *icon_path = NULL;
436 int error_code = MYFILE_ERR_NONE;
437 int thumbnail_type = 0;
439 if (itemData->ug_pThumbPath == NULL) {
440 if (ecore_file_is_dir(itemData->ug_pItemName->str)) {
441 itemData->ug_pThumbPath = strdup(dir_icon_path);
442 itemData->ug_bRealThumbFlag = true;
444 thumbnail_type = mf_ug_file_attr_get_file_icon(itemData->ug_pItemName->str, &error_code, &icon_path);
446 itemData->ug_pThumbPath = strdup(icon_path);
447 itemData->ug_bRealThumbFlag = true;
450 } else { /*/must be image/video file */
452 mf_ug_fs_file_type type = UG_FILE_TYPE_NONE;
453 type = mf_ug_file_attr_get_file_type_by_mime(itemData->ug_pItemName->str);
455 if (type == UG_FILE_TYPE_VIDEO) {
456 itemData->ug_pThumbPath = strdup(UG_ICON_VIDEO);
457 } else if (type == UG_FILE_TYPE_IMAGE) {
458 itemData->ug_pThumbPath = strdup(UG_ICON_IMAGE);
460 itemData->ug_pThumbPath = strdup(UG_DEFAULT_ICON);
462 itemData->ug_bRealThumbFlag = false;
463 error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
466 } else if (itemData->ug_pThumbPath && ecore_file_exists(itemData->ug_pThumbPath)) {
467 if (itemData->ug_bRealThumbFlag == false) {
468 error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
470 } else if (!ecore_file_exists(itemData->ug_pThumbPath)) {
472 ug_debug("ug_pThumbPath[%s] is not exist", itemData->ug_pThumbPath);
473 free(itemData->ug_pThumbPath);
474 itemData->ug_pThumbPath = NULL;
475 /*/set default icon */
476 itemData->ug_pThumbPath = strdup(UG_DEFAULT_ICON);
477 itemData->ug_bRealThumbFlag = false;
478 error_code = MYFILE_ERR_GET_THUMBNAIL_FAILED;
480 #ifdef UG_THUMB_REAL_TIME_UPDATE
481 /*/check if we need to add refresh timer */
482 if (error_code != 0 && itemData->ug_pData->ug_Status.ug_pThumbUpdateTimer == NULL) {
483 itemData->ug_pData->ug_Status.ug_pThumbUpdateTimer = ecore_timer_add(INTERVAL_THUMB_UPDATE, mf_ug_cb_thumb_timer_cb, itemData);
490 /******************************
491 ** Prototype : __mf_ug_genlist_create_thumbnail
492 ** Description : Samsung
493 ** Input : void *data
494 ** Evas_Object *parent
501 ** 1.Date : 2010/12/10
503 ** Modification : Created function
505 ******************************/
506 static Evas_Object *__mf_ug_genlist_create_thumbnail(void *data, Evas_Object *parent)
510 ugListItemData *itemData = (ugListItemData *)data;
511 ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
513 Evas_Object *thumb = NULL;
515 #ifdef USE_IMAGE_OBJECT
516 thumb = evas_object_image_add(evas_object_evas_get(parent));
518 thumb = elm_image_add(parent);
521 ug_debug("thumb is NULL");
524 #ifdef USE_IMAGE_OBJECT
525 int load_err = EVAS_LOAD_ERROR_NONE;
526 evas_object_image_file_set(thumb, itemData->ug_pThumbPath, NULL);
527 load_err = evas_object_image_load_error_get(thumb);
529 if (load_err != EVAS_LOAD_ERROR_NONE) {
530 evas_object_del(thumb);
533 evas_object_image_filled_set(thumb, EINA_TRUE);
536 elm_image_file_set(thumb, itemData->ug_pThumbPath, NULL);
544 /******************************
545 ** Prototype : __mf_ug_genlist_create_mmc_icon
546 ** Description : Samsung
547 ** Input : Evas_Object *parent
554 ** 1.Date : 2010/12/10
556 ** Modification : Created function
558 ******************************/
559 static Evas_Object *__mf_ug_genlist_create_mmc_icon(Evas_Object *parent)
562 Evas_Object *ic_memory = NULL;
563 const char *memory_icon_path = UG_ICON_MEMORY_SUB;
565 ic_memory = elm_image_add(parent);
566 elm_image_file_set(ic_memory, memory_icon_path, NULL);
567 evas_object_show(ic_memory);
574 /******************************
575 ** Prototype : __mf_ug_genlist_add_checkbox
576 ** Description : Samsung
577 ** Input : void *data
578 ** Evas_Object *parent
585 ** 1.Date : 2010/12/10
587 ** Modification : Created function
589 ******************************/
590 static Evas_Object *__mf_ug_genlist_add_checkbox(void *data, Evas_Object *parent)
593 ugListItemData *itemData = (ugListItemData *)data;
594 ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
596 Evas_Object *check_box = __mf_ug_genlist_create_checkbox(parent);
597 evas_object_propagate_events_set(check_box, 0);
599 elm_check_state_set(check_box, itemData->ug_bChecked);
601 itemData->ug_pCheckBox = check_box;
602 evas_object_smart_callback_add(check_box, "changed", __mf_ug_genlist_checkbox_cb, itemData);
610 /******************************
611 ** Prototype : __mf_ug_genlist_add_radio_box
612 ** Description : Samsung
613 ** Input : void *data
614 ** Evas_Object *parent
621 ** 1.Date : 2010/12/10
623 ** Modification : Created function
625 ******************************/
626 static Evas_Object *__mf_ug_genlist_add_radio_box(void *data, Evas_Object *parent)
629 ugListItemData *itemData = (ugListItemData *)data;
630 ug_mf_retvm_if(itemData == NULL, NULL, "itemData is NULL");
632 Evas_Object *radio_box = __mf_ug_genlist_create_radio_box(parent, itemData);
634 evas_object_propagate_events_set(radio_box, 0);
635 itemData->ug_pRadioBox = radio_box;
636 evas_object_smart_callback_add(radio_box, "changed", __mf_ug_genlist_radio_box_cb, itemData);
643 static Evas_Object *__mf_ug_genlist_gl_upper_icon_get(void *data, Evas_Object * obj, const char *part)
646 ugListItemData *listItemData = (ugListItemData *)data;
648 ug_mf_retvm_if(listItemData == NULL, NULL, "listItemData is NULL");
649 ug_mf_retvm_if(listItemData->ug_pItemName == NULL, NULL, "m_ItemName is NULL");
650 ug_mf_retvm_if(part == NULL, NULL, "part is NULL");
651 ug_mf_retvm_if(obj == NULL, NULL, "obj is NULL");
653 Evas_Object *thumb = NULL;
654 if (!strcmp(part, "elm.icon")) {
655 thumb = elm_image_add(obj);
656 elm_object_focus_set(thumb, EINA_FALSE);
658 elm_image_file_set(thumb, listItemData->ug_pThumbPath, NULL);
665 static Evas_Object *__mf_ug_genlist_upper_icon_get(void *data, Evas_Object * obj, const char *part)
667 ug_mf_retvm_if(data == NULL, NULL, "data is NULL");
668 ug_mf_retvm_if(obj == NULL, NULL, "obj is NULL");
670 ugData *ugd = (ugData *)data;
672 if (!strcmp(part, "elm.icon.1")) {
673 Evas_Object *btn = elm_button_add(obj);
674 elm_object_text_set(btn, MF_UG_LABEL_HOME);
675 evas_object_smart_callback_add(btn, "clicked", mf_ug_cb_home_button_cb, ugd);
677 } else if (!strcmp(part, "elm.icon.2")) {
678 Evas_Object *btn = elm_button_add(obj);
679 elm_object_text_set(btn, MF_UG_LABEL_UPPER);
680 evas_object_smart_callback_add(btn, "clicked", mf_ug_cb_upper_click_cb, ugd);
686 /******************************
687 ** Prototype : __mf_ug_genlist_get_gl_icon
688 ** Description : Samsung
689 ** Input : const void *data
698 ** 1.Date : 2010/12/10
700 ** Modification : Created function
702 ******************************/
703 static Evas_Object *__mf_ug_genlist_get_gl_icon(void *data, Evas_Object *obj, const char *part)
706 Evas_Object *thumb = NULL, *ic_memory = NULL;
707 Evas_Object *layout = NULL;
708 Evas_Object *selected_box = NULL;
710 mf_ug_storage_type is_in_mmc = 0;
711 ugListItemData *listItemData = (ugListItemData *)data;
712 ug_mf_retv_if(listItemData == NULL, NULL);
713 ugData *ugd = listItemData->ug_pData;
714 ug_mf_retv_if(ugd == NULL, NULL);
716 if (!strcmp(part, "elm.icon")) {
717 __mf_ug_genlist_get_thumbnail(listItemData);
718 thumb = __mf_ug_genlist_create_thumbnail(listItemData, obj);
719 layout = elm_layout_add(obj);
720 elm_layout_file_set(layout, UG_EDJ_NAVIGATIONBAR, UG_GRP_LIST);
721 elm_object_part_content_set(layout, "swallow_thumb", thumb);
723 mf_ug_file_attr_get_store_type_by_full(listItemData->ug_pItemName->str, &is_in_mmc);
724 if (is_in_mmc == MF_UG_MMC) {
725 ic_memory = __mf_ug_genlist_create_mmc_icon(obj);
726 elm_object_part_content_set(layout, "myfile.memory_icon.sub", ic_memory);
730 } else if (!strcmp(part, "elm.icon.1")) {
731 if (ugd->ug_UiGadget.ug_pMultiSelectFileList) {
732 if (__mf_ug_genlist_is_file_marked(ugd->ug_UiGadget.ug_pMultiSelectFileList, listItemData->ug_pItemName)) {
733 listItemData->ug_bChecked = true;
736 if (ecore_file_is_dir(listItemData->ug_pItemName->str)) {
737 if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_ALL_MODE) {
738 selected_box = __mf_ug_genlist_add_checkbox(listItemData, obj);
739 } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE) {
740 selected_box = __mf_ug_genlist_add_radio_box(listItemData, obj);
743 if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE
744 || ugd->ug_UiGadget.ug_iSelectMode == MULTI_ALL_MODE
745 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE
746 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE) {
747 selected_box = __mf_ug_genlist_add_checkbox(listItemData, obj);
748 } else if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE
749 || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE
750 || ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
752 selected_box = __mf_ug_genlist_add_radio_box(listItemData, obj);
755 evas_object_propagate_events_set(selected_box, EINA_FALSE);
757 } else if (!strcmp(part, "elm.icon.2")) {
758 __mf_ug_genlist_get_thumbnail(listItemData);
759 thumb = __mf_ug_genlist_create_thumbnail(listItemData, obj);
761 } else if (!strcmp(part, "elm.icon.3")) {
762 #ifdef LIST_PLAY_SUPPORT
763 if (!ecore_file_is_dir(listItemData->ug_pItemName->str)) {
764 Evas_Object *music_icon = NULL;
765 Evas_Object *music_button = NULL;
766 mf_ug_launch_type launch_type = mf_ug_util_get_file_launch_type(listItemData->ug_pItemName->str);
767 ug_error("item name is [%s]", listItemData->ug_pItemName->str);
768 if (launch_type == LAUNCH_TYPE_MUSIC) {
769 if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, listItemData->ug_pItemName->str) == 0) {
770 char *play_icon = NULL;
771 char *pause_icon = NULL;
773 music_button = elm_button_add(obj);
774 elm_object_style_set(music_button, "circle/empty");
776 music_icon = elm_image_add(music_button);
777 if (ugd->ug_ListPlay.ug_pPlayFilePath) {
778 if (g_strcmp0(ugd->ug_ListPlay.ug_pPlayFilePath, listItemData->ug_pItemName->str) == 0) {
779 if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING) {
780 pause_icon = strdup(UG_ICON_MUSIC_PAUSE_WHITE);
781 elm_image_file_set(music_icon, pause_icon, NULL);
782 } else if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) {
783 play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
784 elm_image_file_set(music_icon, play_icon, NULL);
786 play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
787 elm_image_file_set(music_icon, play_icon, NULL);
790 play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
791 elm_image_file_set(music_icon, play_icon, NULL);
794 play_icon = strdup(UG_ICON_MUSIC_PLAY_WHITE);
795 elm_image_file_set(music_icon, play_icon, NULL);
797 evas_object_size_hint_aspect_set(music_icon, EVAS_ASPECT_CONTROL_BOTH, 1, 1);
798 elm_object_part_content_set(music_button, "icon", music_icon);
799 evas_object_propagate_events_set(music_button, EINA_FALSE);
800 evas_object_smart_callback_add(music_button, "clicked", (Evas_Smart_Cb)mf_ug_cb_list_play_cb, (void*)listItemData);
801 evas_object_smart_callback_add(music_button, "pressed", mf_ug_cb_play_button_pressed_cb, ugd);
802 evas_object_smart_callback_add(music_button, "unpressed", mf_ug_cb_play_button_unpressed_cb, ugd);
803 listItemData->ug_pPlaybtn = music_button;
820 static Evas_Object *__mf_ug_genlist_get_gl_editfiled_icon(void *data, Evas_Object *obj, const char *part)
822 ugListItemData *listItemData = (ugListItemData *)data;
823 ug_mf_retv_if(listItemData == NULL, NULL);
824 ugData *ugd = listItemData->ug_pData;
825 ug_mf_retv_if(ugd == NULL, NULL);
827 ug_debug("listItemData is [%p]", listItemData);
829 if (!strcmp(part, "elm.icon")) {
830 Evas_Object *button = NULL;
831 button = elm_button_add(obj);
832 evas_object_propagate_events_set(button, EINA_FALSE);
833 elm_object_text_set(button, MF_UG_LABEL_GO_TO_MYFILES);
834 evas_object_smart_callback_add(button, "clicked", mf_ug_cb_goto_myfile_button_cb, ugd);
835 if(listItemData->ug_pItem)
836 elm_genlist_item_select_mode_set(listItemData->ug_pItem, ELM_OBJECT_SELECT_MODE_NONE);
842 /******************************
843 ** Prototype : __mf_ug_genlist_get_gl_state
845 ** Input : const void *data
854 ** 1.Date : 2010/12/10
856 ** Modification : Created function
858 ******************************/
859 static Eina_Bool __mf_ug_genlist_get_gl_state(void *data, Evas_Object *obj, const char *part)
865 /******************************
866 ** Prototype : __mf_ug_genlist_del_gl
868 ** Input : const void *data
876 ** 1.Date : 2010/12/10
878 ** Modification : Created function
880 ******************************/
881 static void __mf_ug_genlist_del_gl(void *data, Evas_Object *obj)
884 ugListItemData *itemData = (ugListItemData *)data;
885 ug_mf_retm_if(itemData == NULL, "itemData is NULL");
886 if (itemData->ug_pItemName && itemData->ug_pItemName->str) {
887 g_string_free(itemData->ug_pItemName, TRUE);
888 itemData->ug_pItemName = NULL;
890 if (itemData->ug_pThumbPath) {
891 free(itemData->ug_pThumbPath);
892 itemData->ug_pThumbPath = NULL;
902 /******************************
903 ** Prototype : mf_ug_genlist_selected_gl
904 ** Description : Samsung
905 ** Input : void *data
914 ** 1.Date : 2010/12/10
916 ** Modification : Created function
918 ******************************/
920 void mf_ug_genlist_selected_gl(void *data, Evas_Object *obj, void *event_info)
923 ugData *ugd = (ugData *)data;
924 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
926 Elm_Object_Item *item = (Elm_Object_Item *) event_info;
929 error_code = mf_ug_util_get_mmc_state(&mmc_card);
931 ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd);
933 ugListItemData *selected = (ugListItemData *)elm_object_item_data_get(item);
934 fprintf(stdout, "selected text %s\n", (char *)selected->ug_pItemName->str);
935 elm_genlist_item_selected_set(item, EINA_FALSE);
936 if (ugd->ug_Status.ug_b_NaviPushFlag)
938 if (!ecore_file_is_dir(selected->ug_pItemName->str)) {
940 if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE || ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE) {
943 if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE) {
944 mf_ug_launch_type launch_type = mf_ug_util_get_file_launch_type(selected->ug_pItemName->str);
945 if (launch_type == LAUNCH_TYPE_MUSIC) {
946 if (ugd->ug_Status.play_timer == NULL) {
947 ug_error(">>>>>>>>>>>>>> entry list play");
948 ugd->ug_Status.play_timer = ecore_timer_add(MF_UG_LIST_PLAY_TIME_OUT, (Ecore_Task_Cb)__mf_ug_list_play_timer_cb, selected);
950 ug_error(">>>>>>>>>>>>>> Faild entry list play");
954 if (elm_radio_value_get(ugd->ug_MainWindow.ug_pRadioGroup) != selected->ug_iGroupValue) {
955 ugd->ug_Status.ug_iRadioOn = selected->ug_iGroupValue;
956 selected->ug_bChecked = true;
957 elm_radio_value_set(ugd->ug_MainWindow.ug_pRadioGroup, selected->ug_iGroupValue);
963 if (selected->ug_bChecked == 0) {
964 selected->ug_bChecked = 1;
966 selected->ug_bChecked = 0;
968 elm_check_state_set(selected->ug_pCheckBox, selected->ug_bChecked);
970 if (selected->ug_bChecked) {
971 ugd->ug_Status.ug_iCheckedCount++;
973 ugd->ug_Status.ug_iCheckedCount--;
975 if (ugd->ug_MainWindow.ug_pSelectAllCheckBox) {
976 if (ugd->ug_Status.ug_iTotalCount == ugd->ug_Status.ug_iCheckedCount) {
977 ugd->ug_Status.ug_bSelectAllChecked = EINA_TRUE;
979 ugd->ug_Status.ug_bSelectAllChecked = EINA_FALSE;
981 elm_check_state_pointer_set(ugd->ug_MainWindow.ug_pSelectAllCheckBox, &ugd->ug_Status.ug_bSelectAllChecked);
983 __mf_ug_genlist_show_select_info(selected);
985 } else if (ecore_file_is_dir(selected->ug_pItemName->str) && strcmp(selected->ug_pItemName->str, "Upper Level")) {
986 if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING || ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) {
987 mf_ug_list_play_destory_playing_file(ugd);
988 UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath);
990 if (ugd->ug_Status.ug_pPath) {
991 g_string_free(ugd->ug_Status.ug_pPath, TRUE);
992 ugd->ug_Status.ug_pPath = NULL;
994 ugd->ug_Status.ug_pPath = g_string_new(selected->ug_pItemName->str);
995 ugd->ug_Status.ug_b_NaviPushFlag = true;
997 if (ugd->ug_Status.ug_iViewType == mf_ug_view_root) {
998 ugd->ug_Status.ug_iViewType = mf_ug_view_normal;
999 mf_ug_cb_tab_bar_cb(ugd, selected->ug_pItemName->str);
1001 if (pNavi_s->ug_pCurrentPath != NULL) {
1002 free(pNavi_s->ug_pCurrentPath);
1003 pNavi_s->ug_pCurrentPath = NULL;
1005 pNavi_s->ug_pCurrentPath = strdup(selected->ug_pItemName->str);
1006 mf_ug_navi_bar_create_default_view(ugd);
1010 mf_ug_ctrl_bar_set_item_disable(ugd);
1016 static Evas_Object *__mf_ug_genlist_create_editfield(Evas_Object *parent, Evas_Object **pEntry)
1018 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
1020 Evas_Object *layout = elm_layout_add(parent);
1021 elm_layout_theme_set(layout, "layout", "editfield", "default");
1022 Evas_Object *entry = elm_entry_add(parent);
1023 elm_object_part_content_set(layout, "elm.swallow.content", entry);
1028 static Evas_Object *__mf_ug_genlist_gl_new_folder_icon_get(void *data, Evas_Object * obj, const char *part)
1031 ugData *ugd = (ugData *)data;
1032 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
1034 if (!strcmp(part, "elm.icon")) {
1036 char *fileName = NULL;
1037 char *fullpath = (char *)malloc(sizeof(char) * MYFILE_FILE_PATH_LEN_MAX);
1038 if (fullpath == NULL) {
1041 GString *dest_fullpath;
1042 static Elm_Entry_Filter_Limit_Size limit_filter;
1043 Evas_Object *entry = NULL;
1045 Evas_Object *edit_field = __mf_ug_genlist_create_editfield(obj, &entry);
1047 elm_entry_single_line_set(entry, EINA_TRUE);
1048 elm_entry_scrollable_set(entry, EINA_TRUE);
1050 elm_object_signal_emit(edit_field, "elm,state,eraser,show", "elm");
1052 evas_object_size_hint_weight_set(edit_field, 1, 1);
1053 evas_object_size_hint_align_set(edit_field, 1, 0.5);
1054 //evas_object_show(edit_field);
1055 ugd->ug_MainWindow.ug_pEditField = edit_field;
1057 ugd->ug_MainWindow.ug_pEntry = entry;
1059 limit_filter.max_char_count = MYFILE_FILE_NAME_LEN_MAX;
1060 limit_filter.max_byte_count = 0;
1062 memset(fullpath, 0, MYFILE_FILE_PATH_LEN_MAX);
1063 fileName = elm_entry_markup_to_utf8(MF_UG_LABEL_FOLDER);
1064 snprintf(fullpath, (MYFILE_FILE_PATH_LEN_MAX), "%s/%s", (char *)ugd->ug_Status.ug_pPath->str, fileName);
1066 dest_fullpath = g_string_new(fullpath);
1068 elm_entry_markup_filter_append(entry, elm_entry_filter_limit_size, &limit_filter);
1069 evas_object_smart_callback_add(entry, "maxlength,reached", mf_ug_cb_reach_max_len_cb, ugd);
1071 if (mf_ug_fm_svc_wrapper_detect_duplication(dest_fullpath)) {
1072 ug_debug("dectetion result is TRUE\ndest_fullpath is %s\n", dest_fullpath->str);
1073 error_code = mf_ug_fm_svc_wrapper_file_auto_rename(ugd, dest_fullpath, FILE_NAME_WITH_BRACKETS, &dest_fullpath);
1074 ug_debug("rename result is %s\n", dest_fullpath->str);
1075 memset(fullpath, 0, strlen(fullpath));
1076 int len = strlen(ugd->ug_Status.ug_pPath->str) + 1;
1077 strncpy(fullpath, dest_fullpath->str + len, MYFILE_FILE_PATH_LEN_MAX);
1078 /*memset(fileName,0,strlen(fileName));*/
1080 UG_SAFE_FREE_CHAR(fileName);
1081 fileName = elm_entry_markup_to_utf8(fullpath);
1084 /*elm_entry_entry_set(entry, ecore_file_file_get(params->m_ItemName->str));*/
1086 elm_object_signal_callback_add(edit_field, "elm,eraser,clicked", "elm", mf_ug_cb_eraser_clicked_cb, entry);
1088 evas_object_show(entry);
1089 elm_object_focus_set(entry, EINA_TRUE);
1091 elm_entry_entry_set(entry, fileName);
1092 elm_entry_cursor_end_set(entry);
1093 UG_SAFE_FREE_CHAR(fullpath);
1094 UG_SAFE_FREE_GSTRING(dest_fullpath);
1095 UG_SAFE_FREE_CHAR(fileName);
1101 Evas_Object *mf_ug_genlist_create_list_new_folder_style(void *data)
1105 ugData *ugd = (ugData *)data;
1106 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
1108 Evas_Object *genlist = NULL;
1109 Evas_Object *pNaviBar = NULL;
1111 pNaviBar = ugd->ug_MainWindow.ug_pNaviBar;
1113 genlist = elm_genlist_add(pNaviBar);
1114 elm_object_focus_set(genlist, EINA_FALSE);
1116 ugd->ug_Status.ug_newfolderitec.item_style = "1icon";
1117 ugd->ug_Status.ug_newfolderitec.func.text_get = NULL;
1118 ugd->ug_Status.ug_newfolderitec.func.content_get = __mf_ug_genlist_gl_new_folder_icon_get;
1119 ugd->ug_Status.ug_newfolderitec.func.state_get = NULL;
1120 ugd->ug_Status.ug_newfolderitec.func.del = NULL;
1122 Elm_Object_Item *it = elm_genlist_item_append(genlist, &ugd->ug_Status.ug_newfolderitec, ugd, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1123 elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_NONE);
1127 /******************************
1128 ** Prototype : __mf_ug_genlist_create_gl
1129 ** Description : Samsung
1130 ** Input : void *data
1137 ** 1.Date : 2010/12/10
1139 ** Modification : Created function
1141 ******************************/
1142 Evas_Object *__mf_ug_genlist_create_gl(void *data)
1146 ugData *ugd = (ugData *)data;
1147 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
1149 ugNaviBar *pNaviInUse = mf_ug_navi_bar_get_in_use_navi(ugd);
1150 ug_mf_retvm_if(pNaviInUse == NULL, NULL, "pNaviInUse is NULL");
1152 Evas_Object *genlist;
1153 genlist = elm_genlist_add(ugd->ug_MainWindow.ug_pNaviBar);
1154 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1155 evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
1157 evas_object_smart_callback_add(genlist, "selected", mf_ug_genlist_selected_gl, ugd);
1159 #ifdef UG_THUMB_REAL_TIME_UPDATE
1160 if (ugd->ug_Status.ug_pThumbUpdateTimer != NULL) {
1161 ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer);
1162 ugd->ug_Status.ug_pThumbUpdateTimer = NULL;
1166 ugd->ug_Status.ug_itc.item_style = "1text.3icon";
1167 ugd->ug_Status.ug_itc.func.text_get = __mf_ug_genlist_get_gl_label;
1168 ugd->ug_Status.ug_itc.func.content_get = __mf_ug_genlist_get_gl_icon;
1169 ugd->ug_Status.ug_itc.func.state_get = __mf_ug_genlist_get_gl_state;
1170 ugd->ug_Status.ug_itc.func.del = __mf_ug_genlist_del_gl;
1172 if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE ||
1173 ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE ||
1174 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE ||
1175 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE ||
1176 ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE ||
1177 ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE ||
1178 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
1179 ugd->ug_Status.ug_normalitc.item_style = "1text.1icon.2";
1180 ugd->ug_Status.ug_normalitc.func.text_get = __mf_ug_genlist_get_gl_label;
1181 ugd->ug_Status.ug_normalitc.func.content_get = __mf_ug_genlist_get_gl_icon;
1182 ugd->ug_Status.ug_normalitc.func.state_get = __mf_ug_genlist_get_gl_state;
1183 ugd->ug_Status.ug_normalitc.func.del = __mf_ug_genlist_del_gl;
1192 /******************************
1193 ** Prototype : __mf_ug_genlist_init_item_data
1194 ** Description : Samsung
1195 ** Input : void *data
1196 ** ugListItemData **itemData
1204 ** 1.Date : 2010/12/10
1206 ** Modification : Created function
1208 ******************************/
1209 static void __mf_ug_genlist_init_item_data(void *data, ugListItemData **itemData, char *fullname)
1213 ugData *ugd = (ugData *)data;
1214 ugListItemData **ug_ItemData = itemData;
1215 ug_mf_retm_if(ugd == NULL, "ugd is NULL");
1216 ug_mf_retm_if(ug_ItemData == NULL, "ug_ItemData is NULL");
1218 *ug_ItemData = (ugListItemData *)malloc(sizeof(ugListItemData));
1219 if (*ug_ItemData == NULL) {
1220 ug_debug("ug_ItemData malloc failed");
1222 memset(*ug_ItemData, 0, sizeof(ugListItemData));
1224 (*ug_ItemData)->ug_pItemName = g_string_new(fullname);
1226 (*ug_ItemData)->ug_pItemName = NULL;
1228 (*ug_ItemData)->ug_bChecked = false;
1229 (*ug_ItemData)->ug_pRadioBox = NULL;
1230 (*ug_ItemData)->ug_pCheckBox = NULL;
1231 (*ug_ItemData)->ug_pPlaybtn = NULL;
1232 (*ug_ItemData)->ug_iGroupValue = 0;
1233 (*ug_ItemData)->ug_pItem = NULL;
1234 (*ug_ItemData)->ug_pThumbPath = NULL;
1235 (*ug_ItemData)->ug_bRealThumbFlag = false;
1236 (*ug_ItemData)->ug_pData = ugd;
1241 /******************************
1242 ** Prototype : mf_ug_genlist_create_content_list_view
1243 ** Description : Samsung
1244 ** Input : void *data
1251 ** 1.Date : 2010/12/10
1253 ** Modification : Created function
1255 ******************************/
1256 void mf_ug_genlist_upper_style_set(void *data)
1258 ug_mf_retm_if(data == NULL, "data is NULL");
1259 ugData *ugd = (ugData *)data;
1260 ugd->ug_Status.ug_topitc.item_style = "1text.1icon.2";
1261 ugd->ug_Status.ug_topitc.func.text_get = __mf_ug_genlist_get_gl_label;
1262 ugd->ug_Status.ug_topitc.func.content_get = __mf_ug_genlist_gl_upper_icon_get;
1263 ugd->ug_Status.ug_topitc.func.state_get = __mf_ug_genlist_get_gl_state;
1264 ugd->ug_Status.ug_topitc.func.del = __mf_ug_genlist_del_gl;
1267 void mf_ug_genlist_goto_myfile_style_set(void *data)
1269 ug_mf_retm_if(data == NULL, "data is NULL");
1270 ugData *ugd = (ugData *)data;
1271 ugd->ug_Status.ug_editfileditc.item_style = "1icon";
1272 ugd->ug_Status.ug_editfileditc.func.text_get = NULL;
1273 ugd->ug_Status.ug_editfileditc.func.content_get = __mf_ug_genlist_get_gl_editfiled_icon;
1274 ugd->ug_Status.ug_editfileditc.func.state_get = NULL;
1275 ugd->ug_Status.ug_editfileditc.func.del = __mf_ug_genlist_del_gl;
1277 ugd->ug_Status.ug_editfiledBottomSeperatoritc.item_style = "dialogue/separator/11/with_line";
1278 ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.text_get = NULL;
1279 ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.content_get = NULL;
1280 ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.state_get = NULL;
1281 ugd->ug_Status.ug_editfiledBottomSeperatoritc.func.del = NULL;
1283 ugd->ug_Status.ug_editfiledUpperSeperatoritc.item_style = "dialogue/separator/10";
1284 ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.text_get = NULL;
1285 ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.content_get = NULL;
1286 ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.state_get = NULL;
1287 ugd->ug_Status.ug_editfiledUpperSeperatoritc.func.del = NULL;
1291 Evas_Object *mf_navi_bar_upper_create(Evas_Object *parent)
1294 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
1296 Evas_Object *upper_genlist = NULL;
1297 upper_genlist = elm_genlist_add(parent);
1298 ug_mf_retvm_if(upper_genlist == NULL, NULL, "upper_genlist is NULL");
1299 elm_object_focus_set(upper_genlist, EINA_FALSE);
1300 evas_object_size_hint_weight_set(upper_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1301 evas_object_size_hint_align_set(upper_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
1302 elm_scroller_bounce_set(upper_genlist, EINA_FALSE, EINA_FALSE);
1303 evas_object_show(upper_genlist);
1305 return upper_genlist;
1310 void mf_ug_upper_genlist_item_append(Evas_Object *pGenlist, void *data)
1312 ug_mf_retm_if(data == NULL, "data is NULL");
1313 ug_mf_retm_if(pGenlist == NULL, "pGenlist is NULL");
1314 ugData *ugd = (ugData *)data;
1316 Elm_Object_Item *item = NULL;
1318 ugd->ug_Status.ug_topitc.item_style = "dialogue/bg/2icon";
1319 ugd->ug_Status.ug_topitc.func.text_get = NULL;
1320 ugd->ug_Status.ug_topitc.func.content_get = __mf_ug_genlist_upper_icon_get;
1321 ugd->ug_Status.ug_topitc.func.state_get = NULL;
1322 ugd->ug_Status.ug_topitc.func.del = NULL;
1323 ugd->ug_Status.ug_separtor_no_bottom_line_itc.item_style = "dialogue/seperator.4";
1324 ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.text_get = NULL;
1325 ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.content_get = NULL;
1326 ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.state_get = NULL;
1327 ugd->ug_Status.ug_separtor_no_bottom_line_itc.func.del = NULL;
1329 ugd->ug_Status.ug_separtor_with_bottom_line_itc.item_style = "dialogue/seperator.2";
1330 ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.text_get = NULL;
1331 ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.content_get = NULL;
1332 ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.state_get = NULL;
1333 ugd->ug_Status.ug_separtor_with_bottom_line_itc.func.del = NULL;
1335 // separator with no bottom line
1336 item = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_separtor_no_bottom_line_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1338 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1340 // button for dialogue item (dialogue bg)
1341 elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_topitc, (void *) ugd, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1343 // separator with bottom line
1344 item = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_separtor_with_bottom_line_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1345 elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1348 void mf_ug_genlist_goto_myfile_item_append(Evas_Object *pGenlist, void *data)
1350 ug_mf_retm_if(pGenlist == NULL, "pGenlist is NULL");
1351 ug_mf_retm_if(data == NULL, "data is NULL");
1352 ugData *ugd = (ugData *)data;
1354 ugListItemData *ug_ItemData;
1355 Elm_Object_Item *it = NULL;
1357 __mf_ug_genlist_init_item_data(ugd, &ug_ItemData, NULL);
1358 ug_debug("ug_ItemData is [%p]", &ug_ItemData);
1360 //it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfiledUpperSeperatoritc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL,
1362 //elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1364 it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfileditc, ug_ItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1365 ug_ItemData->ug_pItem = it;
1366 //elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1368 //it = elm_genlist_item_append(pGenlist, &ugd->ug_Status.ug_editfiledBottomSeperatoritc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL,
1370 //elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1373 Elm_Object_Item *mf_ug_genlist_item_append(Evas_Object *parent,
1374 ugFsNodeInfo *pNode,
1377 Elm_Genlist_Item_Class *itc)
1379 ug_mf_retvm_if(parent == NULL, NULL, "pGenlist is NULL");
1380 ug_mf_retvm_if(pNode == NULL, NULL, "pNode is NULL");
1381 ug_mf_retvm_if(data == NULL, NULL, "data is NULL");
1382 ug_mf_retvm_if(itc == NULL, NULL, "itc is NULL");
1384 ugData *ugd = (ugData *)data;
1385 ugListItemData *ug_ItemData = NULL;
1386 Elm_Object_Item *it = NULL;
1387 char *real_name = NULL;
1389 real_name = g_strconcat(pNode->path, "/", pNode->name, NULL);
1390 __mf_ug_genlist_init_item_data(ugd, &ug_ItemData, real_name);
1391 if (ug_ItemData == NULL) {
1392 ug_debug("alloc memory error\n");
1400 if (ugd->ug_Status.ug_iViewType == mf_ug_view_root) {
1401 if(g_strcmp0(real_name, PHONE_FOLDER) == 0) {
1402 ug_ItemData->ug_pThumbPath = strdup(UG_ICON_ITEM_PHONE);
1403 ug_ItemData->ug_bRealThumbFlag = true;
1405 } else if(g_strcmp0(real_name, MEMORY_FOLDER) == 0) {
1406 ug_ItemData->ug_pThumbPath = strdup(UG_ICON_ITEM_MMC);
1407 ug_ItemData->ug_bRealThumbFlag = true;
1411 ug_ItemData->ug_iGroupValue = groudValue;
1412 if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
1413 if (__mf_ug_genlist_is_file_marked(ugd->ug_UiGadget.ug_pMultiSelectFileList, ug_ItemData->ug_pItemName)) {
1414 ug_ItemData->ug_bChecked = true;
1415 ugd->ug_Status.ug_iRadioOn = ug_ItemData->ug_iGroupValue;
1418 it = elm_genlist_item_append(parent, itc, ug_ItemData, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1419 ug_ItemData->ug_pItem = it;
1429 Evas_Object *mf_ug_genlist_create_content_list_view(void *data)
1432 ugData *ugd = (ugData *)data;
1433 ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL");
1434 ugNaviBar *pNaviInUse = mf_ug_navi_bar_get_in_use_navi(ugd);
1435 ug_mf_retvm_if(pNaviInUse == NULL, NULL, "pNaviInUse is NULL");
1437 Evas_Object *genlist;
1439 Eina_List *dir_list = NULL;
1440 Eina_List *file_list = NULL;
1441 Elm_Object_Item *it = NULL;
1445 ugListItemData *ug_ItemData;
1447 ugd->ug_Status.ug_iRadioOn = 0;
1448 ugd->ug_Status.ug_bNoContentFlag = false;
1451 GString *fullpath = g_string_new(ugd->ug_Status.ug_pPath->str);
1455 if (ugd->ug_Status.ug_iViewType == mf_ug_view_root && ugd->ug_Status.ug_iMore != UG_MORE_SEARCH) {
1456 mf_ug_util_generate_root_view_file_list(&dir_list, ugd->ug_Status.ug_iMmcFlag);
1457 ugd->ug_UiGadget.ug_pDirList = dir_list;
1458 ugd->ug_UiGadget.ug_pFilterList = NULL;
1459 mf_ug_util_sort_the_file_list(ugd);
1462 error_code = mf_ug_fm_svc_wapper_get_file_list_by_filter(ugd, fullpath, &dir_list, &file_list);
1463 if (error_code == 0) {
1465 if (ugd->ug_UiGadget.ug_pDirList) {
1466 mf_ug_util_free_eina_list_data(&ugd->ug_UiGadget.ug_pDirList, NODE_TYPE_PNODE);
1467 ugd->ug_UiGadget.ug_pDirList = NULL;
1469 if (ugd->ug_UiGadget.ug_pFilterList) {
1470 mf_ug_util_free_eina_list_data(&ugd->ug_UiGadget.ug_pFilterList, NODE_TYPE_PNODE);
1471 ugd->ug_UiGadget.ug_pFilterList = NULL;
1474 ugd->ug_UiGadget.ug_pFilterList = file_list;
1475 ugd->ug_UiGadget.ug_pDirList = dir_list;
1476 mf_ug_util_sort_the_file_list(ugd);
1482 /* list option set */
1483 unsigned int dir_list_len = eina_list_count(dir_list);
1484 unsigned int filter_file_list_len = eina_list_count(ugd->ug_UiGadget.ug_pFilterList);
1485 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);
1488 if ((dir_list_len == 0 && filter_file_list_len == 0)) {
1489 ug_debug("=========================================== create the no content view");
1490 Evas_Object *nocontent = NULL;
1492 nocontent = elm_layout_add(ugd->ug_MainWindow.ug_pMainLayout);
1493 elm_layout_theme_set(nocontent, "layout", "nocontents", "text");
1494 elm_object_part_text_set(nocontent, "elm.text", MF_UG_LABEL_NO_FILES);
1496 ugd->ug_Status.ug_bNoContentFlag = true;
1499 mf_ug_util_add_dir_watch(fullpath->str, ugd);
1500 g_string_free(fullpath, true);
1505 genlist = __mf_ug_genlist_create_gl(ugd);
1507 ugd->ug_MainWindow.ug_pNaviGenlist = genlist;
1508 ugFsNodeInfo *pNode = NULL;
1509 Eina_List *l = NULL;
1511 EINA_LIST_FOREACH(ugd->ug_UiGadget.ug_pDirList, l, pNode) {
1515 if (ugd->ug_UiGadget.ug_iSelectMode == MULTI_FILE_MODE ||
1516 ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE ||
1517 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE ||
1518 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE ||
1519 ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE ||
1520 ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE ||
1521 ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
1523 mf_ug_genlist_item_append(genlist, pNode, ugd, 0, &ugd->ug_Status.ug_normalitc);
1525 mf_ug_genlist_item_append(genlist, pNode, ugd, groupValue, &ugd->ug_Status.ug_itc);
1530 EINA_LIST_FOREACH(ugd->ug_UiGadget.ug_pFilterList, l, pNode) {
1532 if (ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) {
1533 mf_ug_genlist_item_append(genlist, pNode, ugd, groupValue, &ugd->ug_Status.ug_itc);
1535 } else if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE || ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE) {
1536 mf_ug_genlist_item_append(genlist, pNode, ugd, 0, &ugd->ug_Status.ug_normalitc);
1538 mf_ug_genlist_item_append(genlist, pNode, ugd, 0, &ugd->ug_Status.ug_itc);
1541 if ((ugd->ug_UiGadget.ug_iSelectMode == SINGLE_ALL_MODE || ugd->ug_UiGadget.ug_iSelectMode == SINGLE_FILE_MODE) && ug_ItemData->ug_bChecked) {
1543 if (ugd->ug_Status.ug_bUpperFlag ) {
1544 if (count > MF_UG_SELECTED_ITEM_BRING_UP_COUNT)
1545 elm_genlist_item_top_show(it);
1547 if (count > MF_UG_SELECTED_ITEM_BRING_UP_COUNT_MAX)
1548 elm_genlist_item_top_show(it);
1554 if (fullpath != NULL) {
1555 if ( ugd->ug_Status.ug_iViewType != mf_ug_view_root) {
1556 mf_ug_util_add_dir_watch(fullpath->str, ugd);
1558 g_string_free(fullpath, TRUE);
1564 static char *__get_title_gl_text(void *data, Evas_Object *obj, const char *part)
1567 return g_strdup((char *)data);
1571 static void __del_title_gl(void *data, Evas_Object * obj)
1573 UG_SAFE_FREE_CHAR(data);
1576 Evas_Object *mf_ug_genlist_create_path_info(Evas_Object *parent, Elm_Genlist_Item_Class *itc, char *info)
1578 ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL");
1580 Evas_Object *genlist = NULL;
1581 Elm_Object_Item *git=NULL;
1583 genlist = elm_genlist_add(parent);
1584 elm_genlist_homogeneous_set(genlist, EINA_TRUE);
1586 itc->item_style = "grouptitle";
1587 itc->func.text_get = __get_title_gl_text;
1588 itc->func.del = __del_title_gl;
1590 git = elm_genlist_item_append(genlist, itc, info, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
1591 elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
1596 void mf_ug_genlist_item_remove(Evas_Object *parent, const char *path)
1598 ug_debug("path is [%s]", path);
1599 ug_mf_retm_if(parent == NULL, "parent is NULL");
1600 ug_mf_retm_if(path == NULL, "path is NULL");
1602 ugListItemData *itemData = NULL;
1603 Elm_Object_Item *it = NULL;
1605 it = elm_genlist_first_item_get(parent);
1607 itemData = elm_object_item_data_get(it);
1608 if (itemData->ug_pItemName == NULL || itemData->ug_pItemName->str == NULL) {
1611 ug_debug("itemData->m_ItemName->str is [%s]", itemData->ug_pItemName->str);
1612 if (g_strcmp0(path, itemData->ug_pItemName->str) == 0) {
1613 elm_object_item_del(it);
1617 it = elm_genlist_item_next_get(it);