예제 #1
0
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;
}
예제 #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;
}