Exemple #1
0
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;
}
Exemple #2
0
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;
}