Exemplo n.º 1
0
static Ret _bt_on_item_clicked(void *ctx, void *list)
{
	FtkListItemInfo* info = NULL;
	FtkListModel* model = ftk_list_view_get_model(list);
	int i = ftk_list_view_get_selected(list);

	printf("%s : clicked index %d\n", __func__, i);

	ftk_list_model_get_data(model, i, (void**)&info);
	if(info != NULL && !info->disable)
	{
		info->state = !info->state;
	}

	if (i < _bt_dev_num) {
		FtkWidget *label = ftk_widget_lookup((FtkWidget *)ctx, IDC_INFO);
		if (label) ftk_widget_set_text(label, "접속 중");

		_bt_connect = i;
		_timer = ftk_source_timer_create(300, _bt_connect_start, ctx);
		ftk_main_loop_add_source(ftk_default_main_loop(), _timer);
	}

	return RET_OK;
}
Exemplo n.º 2
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;
}