Пример #1
0
static void alias_add (GtkButton *button, gpointer data)
{
  PurpleRequestFields *fields;
  PurpleRequestFieldGroup *group;
  PurpleRequestField *field;

  fields = purple_request_fields_new();

  group = purple_request_field_group_new(NULL);
  purple_request_fields_add_group(fields, group);

  field = purple_request_field_string_new("alias", _("Alias"),
    NULL, FALSE);
  purple_request_field_set_required(field, TRUE);
  purple_request_field_set_type_hint(field, "alias");
  purple_request_field_group_add_field(group, field);

  purple_request_fields(purple_get_blist(), _("Add Alias"),
    NULL,
    _("Type in the alias that you use"),
    fields,
    _("OK"), G_CALLBACK(new_alias),
    _("Cancel"), NULL,
    NULL, NULL, NULL, NULL);
}
Пример #2
0
static void
lh_migrate_source_request_cb(void *ignored, PurpleRequestFields *fields)
{
    PurpleRequestFields *request;
    PurpleRequestFieldGroup *group;
    PurpleRequestField *field;

    source_account = purple_request_fields_get_account(fields,
                     "migrate_source_acct");
    valid_target_prpl_id = purple_account_get_protocol_id(source_account);

    /* It seems Purple is super-picky about the order of these first three calls */
    /* create a request */
    request = purple_request_fields_new();

    /* now create a field group */
    group = purple_request_field_group_new(NULL);
    /* and add that group to the request created above */
    purple_request_fields_add_group(request, group);

    /* create a field */
    field = purple_request_field_account_new("migrate_target_acct",
            _("Account"), NULL);

    /* mark the field as required */
    purple_request_field_set_required(field, TRUE);

    /* filter this list so that only accounts with the same prpl as the
     * source account can be chosen as a destination */
    purple_request_field_account_set_filter(field, lh_migrate_filter);

    /* add the field to the group created above */
    purple_request_field_group_add_field(group, field);

    /* and finally we can create the request */
    purple_request_fields(purple_get_blist(), _("Listhandler - Copying"),
                          _("Choose the account to add buddies to:"), NULL,
                          request, _("_Add"),
                          G_CALLBACK(lh_migrate_target_request_cb), _("_Cancel"),
                          NULL, NULL, NULL, NULL, NULL);

    return;
}
Пример #3
0
void
lh_migrate_action_cb(PurplePluginAction *action)
{
    PurpleRequestFields *request;
    PurpleRequestFieldGroup *group;
    PurpleRequestField *field;

    /* It seems Purple is super-picky about the order of these first three calls */
    /* create a request */
    request = purple_request_fields_new();

    /* now create a field group */
    group = purple_request_field_group_new(NULL);
    /* and add that group to the request created above */
    purple_request_fields_add_group(request, group);

    /* create a field */
    field = purple_request_field_account_new("migrate_source_acct",
            _("Account"), NULL);

    /* mark the field as required */
    purple_request_field_set_required(field, TRUE);

    /* let's show offline accounts too */
    purple_request_field_account_set_show_all(field, TRUE);

    /* add the field to the group created above */
    purple_request_field_group_add_field(group, field);

    /* and finally we can create the request */
    purple_request_fields(purple_get_blist(), _("Listhandler - Copying"),
                          _("Choose the account to copy from:"), NULL, request,
                          _("C_opy"), G_CALLBACK(lh_migrate_source_request_cb),
                          _("_Cancel"), NULL, NULL, NULL, NULL, NULL);
    return;
}
Пример #4
0
static void ggp_pubdir_set_info_dialog(PurpleConnection *gc, int records_count,
	const ggp_pubdir_record *records, int next_offset, void *user_data)
{
	PurpleRequestFields *fields;
	PurpleRequestFieldGroup *group;
	PurpleRequestField *field;
	gsize i;
	const ggp_pubdir_record *record;

	purple_debug_info("gg", "ggp_pubdir_set_info_dialog (record: %d)\n",
		records_count);

	record = (records_count == 1 ? &records[0] : NULL);

	fields = purple_request_fields_new();
	group = purple_request_field_group_new(NULL);
	purple_request_fields_add_group(fields, group);

	field = purple_request_field_string_new("first_name", _("First name"),
		record ? record->first_name : NULL, FALSE);
	purple_request_field_group_add_field(group, field);

	field = purple_request_field_string_new("last_name", _("Last name"),
		record ? record->last_name : NULL, FALSE);
	purple_request_field_group_add_field(group, field);

	field = purple_request_field_choice_new("gender", _("Gender"),
		record ? GINT_TO_POINTER(record->gender) :
			GGP_PUBDIR_GENDER_UNSPECIFIED);
	purple_request_field_set_required(field, TRUE);
	purple_request_field_choice_add(field, _("Male"),
		GINT_TO_POINTER(GGP_PUBDIR_GENDER_MALE));
	purple_request_field_choice_add(field, _("Female"),
		GINT_TO_POINTER(GGP_PUBDIR_GENDER_FEMALE));
	purple_request_field_group_add_field(group, field);

	field = purple_request_field_string_new("birth_date", _("Birth Day"),
		(record && record->birth) ?
		ggp_date_strftime("%Y-%m-%d", record->birth) : NULL, FALSE);
	purple_request_field_set_required(field, TRUE);
	purple_request_field_group_add_field(group, field);

	field = purple_request_field_string_new("city", _("City"),
		record ? record->city : NULL, FALSE);
	purple_request_field_group_add_field(group, field);

	/* Translators: This word is basically used to describe a Polish
	   province. Gadu-Gadu users outside of Poland might choose to enter some
	   equivalent value for themselves. For example, users in the USA might
	   use their state (e.g. New York). If there is an equivalent term for
	   your language, feel free to use it. Otherwise it's probably acceptable
	   to leave it changed or transliterate it into your alphabet. */
	field = purple_request_field_choice_new("province", _("Voivodeship"), 0);
	purple_request_field_group_add_field(group, field);
	for (i = 0; i < ggp_pubdir_provinces_count; i++) {
		purple_request_field_choice_add(field, ggp_pubdir_provinces[i],
			GINT_TO_POINTER(i));
		if (record && i == record->province) {
			purple_request_field_choice_set_value(field, GINT_TO_POINTER(i));
			purple_request_field_choice_set_default_value(field, GINT_TO_POINTER(i));
		}
	}

	purple_request_fields(gc, _("Set User Info"), _("Set User Info"),
		NULL, fields,
		_("OK"), G_CALLBACK(ggp_pubdir_set_info_request),
		_("Cancel"), NULL,
		purple_request_cpar_from_connection(gc), gc);
}
Пример #5
0
gpointer
fb_util_request_buddy(PurpleConnection *gc, const gchar *title,
                      const gchar *primary, const gchar *secondary,
                      GSList *select, gboolean multi, GCallback ok_cb,
		      GCallback cancel_cb, gpointer data)
{
	const gchar *alias;
	const gchar *name;
	gchar *str;
	GList *items = NULL;
	gpointer *mata;
	GSList *buddies;
	GSList *l;
	PurpleAccount *acct;
	PurpleRequestCommonParameters *cpar;
	PurpleRequestField *field;
	PurpleRequestFieldGroup *group;
	PurpleRequestFields *fields;

	mata = g_new0(gpointer, 3);
	mata[0] = ok_cb;
	mata[1] = cancel_cb;
	mata[2] = data;

	acct = purple_connection_get_account(gc);
	buddies = purple_blist_find_buddies(acct, NULL);
	buddies = g_slist_sort(buddies, (GCompareFunc) g_ascii_strcasecmp);

	fields = purple_request_fields_new();
	group = purple_request_field_group_new(NULL);
	purple_request_fields_add_group(fields, group);

	field = purple_request_field_list_new("buddy", NULL);
	purple_request_field_list_set_multi_select(field, multi);
	purple_request_field_set_required(field, TRUE);
	purple_request_field_group_add_field(group, field);

	for (l = buddies; l != NULL; l = l->next) {
		name = purple_buddy_get_name(l->data);
		alias = purple_buddy_get_alias(l->data);
		str = g_strdup_printf("%s (%s)", alias, name);
		purple_request_field_list_add_icon(field, str, NULL, l->data);
		g_free(str);
	}

	for (l = select; l != NULL; l = l->next) {
		name = purple_buddy_get_name(l->data);
		alias = purple_buddy_get_alias(l->data);
		str = g_strdup_printf("%s (%s)", alias, name);
		items = g_list_append(items, str);
	}

	purple_request_field_list_set_selected(field, items);
	g_slist_free(buddies);
	g_list_free_full(items, g_free);

	cpar = purple_request_cpar_from_connection(gc);
	return purple_request_fields(gc, title, primary, secondary, fields,
	                             _("Ok"),
	                             G_CALLBACK(fb_util_request_buddy_ok),
				     _("Cancel"),
	                             G_CALLBACK(fb_util_request_buddy_cancel),
				     cpar, mata);
}