Example #1
0
static Ret ftk_file_browser_on_item_clicked(void* ctx, void* list)
{
	FtkWidget* win = (FtkWidget*)ctx;
	FtkListItemInfo* info = NULL;
	int i = ftk_list_view_get_selected((FtkWidget*)list);
	PrivInfo* priv = (PrivInfo*)ftk_widget_user_data(win);
	FtkListModel* model = ftk_list_view_get_model((FtkWidget*)list);
 
 	return_val_if_fail(priv != NULL, RET_FAIL);

	ftk_list_model_get_data(model, i, (void**)&info);
	if(info != NULL && info->text != NULL)
	{
		char* p = NULL;
		char  path[FTK_MAX_PATH+1] = {0};
		char* file_name = info->text;

		if(strcmp(file_name, _("..")) == 0)
		{
			ftk_strcpy(path, priv->path);
			if((p = strrchr(path, FTK_PATH_DELIM)) != NULL)
			{
				if(p == path)
				{
					p[1] = '\0';
				}
				else
				{
					*p = '\0';
				}
			}
			ftk_file_browser_set_path(win, path);
			ftk_file_browser_load(win);
		}
		else if(info->value) /*enter selected folder*/
		{
			ftk_strs_cat(path, FTK_MAX_PATH, priv->path, "/", file_name, NULL);
			ftk_file_browser_set_path(win, path);
			ftk_file_browser_load(win);
		}
		else if(priv->type == FTK_FILE_BROWER_SINGLE_CHOOSER)
		{
			if(priv->on_choosed != NULL)
			{
				ftk_strs_cat(path, FTK_MAX_PATH, priv->path, "/", file_name, NULL);
				priv->on_choosed(priv->on_choosed_ctx, 0, path);
				ftk_widget_unref(win);
			}
		}
		else if(priv->type == FTK_FILE_BROWER_MULTI_CHOOSER)
		{
			info->state = !info->state;
		}
	}

	return RET_OK;
}
Example #2
0
static Ret button_browser_clicked(void* ctx, void* obj)
{
	FtkWidget* win = ftk_file_browser_create(FTK_FILE_BROWER_APP);
	ftk_file_browser_set_path(win, "./");
	ftk_file_browser_load(win);

	return RET_OK;
}
Example #3
0
static Ret button_single_choose_clicked(void* ctx, void* obj)
{
	FtkWidget* win = ftk_file_browser_create(FTK_FILE_BROWER_SINGLE_CHOOSER);
	ftk_file_browser_set_choosed_handler(win, on_file_selected, NULL);
	ftk_file_browser_set_path(win, "./");
	ftk_file_browser_load(win);

	return RET_OK;
}
Example #4
0
static Ret _app_music_browser(FtkWidget *thiz)
{
	FtkWidget* win = ftk_file_browser_create(FTK_FILE_BROWER_SINGLE_CHOOSER);
	ftk_window_set_animation_hint(win, "app_main_window");
	ftk_file_browser_set_path(win, "/media/DATA/Musics");
	ftk_file_browser_set_filter(win, "audio/mp3");
	ftk_file_browser_set_choosed_handler(win, _app_music_selected, thiz);
	ftk_file_browser_load(win);

	return RET_OK;
}
Example #5
0
static int lua_ftk_file_browser_set_path(lua_State* L)
{
	tolua_Error err = {0};
	Ret retv;
	FtkWidget* thiz;
	const char* path;
	int param_ok = tolua_isusertype(L, 1, "FtkWidget", 0, &err) && tolua_isstring(L, 2, 0, &err);

	return_val_if_fail(param_ok, 0);

	thiz = tolua_tousertype(L, 1, 0);
	path = tolua_tostring(L, 2, 0);
	retv = ftk_file_browser_set_path(thiz, path);
	tolua_pushnumber(L, (lua_Number)retv);

	return 1;
}