static Ret _bt_scan_start(void *ctx) { FtkWidget *info; char temp[100]; int i; info = ftk_widget_lookup((FtkWidget *)ctx, IDC_INFO); ftk_main_loop_remove_source(ftk_default_main_loop(), _timer); _timer = NULL; _bt_dev_num = bt_scan(_bt, _devices, BT_SCAN_MAX); if (_bt_dev_num > 0) { sprintf(temp, "검색 결과 : %d 개", _bt_dev_num); for (i = 0; i < _bt_dev_num; i++) { FtkListItemInfo info = {0}; info.text = _devices[i].name; ftk_list_model_add(_model, &info); } } else if (_bt_dev_num == 0) { sprintf(temp, "검색 결과 없음"); } else { #ifdef __TEST__ _bt_dev_num = 9; for (i = 0; i < 9; i++) { FtkListItemInfo info = {0}; sprintf(temp, "test %d", i); info.text = temp; ftk_list_model_add(_model, &info); } #endif sprintf(temp, "검색 실패"); } if (info) ftk_widget_set_text(info, temp); return RET_OK; }
Ret ftk_file_browser_load(FtkWidget* thiz) { FtkFileInfo info = {0}; FtkFsHandle handle = NULL; FtkListItemInfo item = {0}; const char* mime_type = NULL; char path[FTK_MAX_PATH+1] = {0}; PrivInfo* priv = ftk_widget_user_data(thiz); return_val_if_fail(priv != NULL && priv->path != NULL, RET_FAIL); handle = ftk_dir_open(priv->path); if(handle == NULL) { ftk_logd("%s: open %s\n", __func__, priv->path); } return_val_if_fail(handle != NULL, RET_FAIL); ftk_list_model_reset(priv->model); ftk_list_model_disable_notify(priv->model); if(!ftk_fs_is_root(priv->path)) { item.value = 1; item.text = _(".."); item.type = FTK_LIST_ITEM_NORMAL; item.left_icon = ftk_theme_load_image(ftk_default_theme(), "up"FTK_STOCK_IMG_SUFFIX); ftk_list_model_add(priv->model, &item); } /*directory go first.*/ while(ftk_dir_read(handle, &info) == RET_OK) { if(info.name[0] == '.') continue; if(info.is_dir) { item.value = 1; item.text = info.name; item.type = ftk_file_browser_get_display_style(priv, 1); item.left_icon = ftk_theme_load_image(ftk_default_theme(), "folder"FTK_STOCK_IMG_SUFFIX); ftk_list_model_add(priv->model, &item); } } ftk_dir_close(handle); if(priv->filter_mime_type == NULL || strcmp(priv->filter_mime_type, FTK_MIME_DIR) != 0) { handle = ftk_dir_open(priv->path); while(ftk_dir_read(handle, &info) == RET_OK) { if(info.name[0] == '.') continue; if(info.is_dir) continue; if(priv->filter_mime_type != NULL) { ftk_strs_cat(path, FTK_MAX_PATH, priv->path, "/", info.name, NULL); mime_type = ftk_file_get_mime_type(path); if(strstr(priv->filter_mime_type, mime_type) != NULL) { continue; } } item.value = 0; item.type = ftk_file_browser_get_display_style(priv, 0); item.text = info.name; item.left_icon = ftk_file_browser_load_mime_icon(info.name); ftk_list_model_add(priv->model, &item); } ftk_dir_close(handle); } ftk_window_set_focus(thiz, priv->list_view); ftk_list_view_set_cursor(priv->list_view, 0); ftk_list_model_enable_notify(priv->model); ftk_list_model_notify(priv->model); ftk_widget_show_all(thiz, 1); return RET_OK; }