static Ret ftk_bluetooth_on_scan(void* ctx, void* obj) { FtkWidget *info; if (_timer) { ftk_main_loop_remove_source(ftk_default_main_loop(), _timer); _timer = NULL; } info = ftk_widget_lookup((FtkWidget *)ctx, IDC_INFO); if (info) ftk_widget_set_text(info, "검색 중"); ftk_list_model_reset(_model); _timer = ftk_source_timer_create(300, _bt_scan_start, ctx); ftk_main_loop_add_source(ftk_default_main_loop(), _timer); 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; }