亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? new_person_dialog.c

?? Linux下的多協議即時通訊程序源代碼
?? C
字號:
/* * Evolution integration plugin for Purple * * Copyright (C) 2003 Christian Hammond. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */#include "internal.h"#include "pidgin.h"#include "gtkutils.h"#include "debug.h"#include "gevolution.h"static GtkWidget *add_pref_box(GtkSizeGroup *sg, GtkWidget *parent, const char *text,			 GtkWidget *widget){	GtkWidget *hbox;	GtkWidget *label;	hbox = gtk_hbox_new(FALSE, 6);	gtk_box_pack_start(GTK_BOX(parent), hbox, FALSE, FALSE, 0);	gtk_widget_show(hbox);	label = gtk_label_new_with_mnemonic(text);	gtk_size_group_add_widget(sg, label);	gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);	gtk_widget_show(label);	gtk_box_pack_start(GTK_BOX(hbox), widget, TRUE, TRUE, 0);	gtk_widget_show(widget);	return hbox;}static gintdelete_win_cb(GtkWidget *w, GdkEvent *event, GevoNewPersonDialog *dialog){	gtk_widget_destroy(dialog->win);	g_object_unref(dialog->book);	g_free(dialog);	return 0;}static voidcancel_cb(GtkWidget *w, GevoNewPersonDialog *dialog){	delete_win_cb(NULL, NULL, dialog);}static voidscreenname_changed_cb(GtkEntry *entry, GevoNewPersonDialog *dialog){	gtk_widget_set_sensitive(dialog->add_button,							 *gtk_entry_get_text(entry) != '\0');}static voidperson_info_changed_cb(GtkEntry *entry, GevoNewPersonDialog *dialog){	gtk_widget_set_sensitive(dialog->add_button,		(*gtk_entry_get_text(GTK_ENTRY(dialog->firstname)) != '\0' ||		 *gtk_entry_get_text(GTK_ENTRY(dialog->lastname))  != '\0'));}static voidadd_cb(GtkWidget *w, GevoNewPersonDialog *dialog){	EContact *contact = NULL;	const char *screenname;	const char *firstname;	const char *lastname;	const char *email;	const char *im_service;	gboolean new_contact = FALSE;	EContactField field = 0;	EContactName *name = NULL;	char *full_name = NULL;	if (dialog->person_only)		screenname = dialog->buddy->name;	else		screenname = gtk_entry_get_text(GTK_ENTRY(dialog->screenname));	firstname  = gtk_entry_get_text(GTK_ENTRY(dialog->firstname));	lastname   = gtk_entry_get_text(GTK_ENTRY(dialog->lastname));	email      = gtk_entry_get_text(GTK_ENTRY(dialog->email));	if (*firstname || *lastname)	{		if (dialog->contact == NULL)		{			char *file_as;			dialog->contact = e_contact_new();			if (*lastname && *firstname)				file_as = g_strdup_printf("%s, %s", lastname, firstname);			else if (*lastname)				file_as = g_strdup(lastname);			else				file_as = g_strdup(firstname);			e_contact_set(dialog->contact, E_CONTACT_FILE_AS, file_as);			g_free(file_as);			new_contact = TRUE;		}		contact = dialog->contact;		name = e_contact_name_new();		name->given  = g_strdup(firstname);		name->family = g_strdup(lastname);		full_name = e_contact_name_to_string(name);		e_contact_set(contact, E_CONTACT_FULL_NAME, full_name);		im_service = purple_account_get_protocol_id(dialog->account);		if (*email)			e_contact_set(contact, E_CONTACT_EMAIL_1, (gpointer)email);		if (!strcmp(im_service, "prpl-oscar"))		{			if (isdigit(*screenname))				field = E_CONTACT_IM_ICQ;			else				field = E_CONTACT_IM_AIM;		}		else if (!strcmp(im_service, "prpl-yahoo"))			field = E_CONTACT_IM_YAHOO;		else if (!strcmp(im_service, "prpl-jabber"))			field = E_CONTACT_IM_JABBER;		else if (!strcmp(im_service, "prpl-msn"))			field = E_CONTACT_IM_MSN;		else if (!strcmp(im_service, "prpl-novell"))			field = E_CONTACT_IM_GROUPWISE;		if (field > 0)		{			GList *list = g_list_append(NULL, g_strdup(screenname));			e_contact_set(contact, field, list);			g_free(list->data);			g_list_free(list);		}		if (new_contact)		{			if (!e_book_add_contact(dialog->book, contact, NULL))			{				purple_debug_error("evolution", "Error adding contact to book\n");				g_object_unref(contact);				delete_win_cb(NULL, NULL, dialog);				return;			}		}		else		{			if (!e_book_commit_contact(dialog->book, contact, NULL))			{				purple_debug_error("evolution", "Error adding contact to book\n");				g_object_unref(contact);				delete_win_cb(NULL, NULL, dialog);				return;			}		}		g_object_unref(contact);	}	if (!dialog->person_only)	{		GtkWidget *entry = GTK_COMBO(dialog->group_combo)->entry;		const char *group_name;		group_name = gtk_entry_get_text(GTK_ENTRY(entry));		gevo_add_buddy(dialog->account, group_name, screenname, full_name);	}	if (name != NULL)		e_contact_name_free(name);	if (full_name != NULL)		g_free(full_name);	delete_win_cb(NULL, NULL, dialog);}static voidselect_account_cb(GObject *w, PurpleAccount *account,				  GevoNewPersonDialog *dialog){	dialog->account = account;}voidgevo_new_person_dialog_show(EBook *book, EContact *contact,							PurpleAccount *account, const char *username,							const char *group, PurpleBuddy *buddy,							gboolean person_only){	GevoNewPersonDialog *dialog;	GtkWidget *vbox, *vbox2;	GtkWidget *hbox;	GtkWidget *bbox;	GtkWidget *label;	GtkWidget *button;	GtkWidget *sep;	GtkSizeGroup *sg, *sg2;	const char *str;	g_return_if_fail(book);	g_return_if_fail(!person_only || (person_only && buddy));	dialog = g_new0(GevoNewPersonDialog, 1);	dialog->account = account;	dialog->person_only = person_only;	dialog->buddy = buddy;	dialog->book = book;	g_object_ref(book);	dialog->win = gtk_window_new(GTK_WINDOW_TOPLEVEL);	gtk_window_set_role(GTK_WINDOW(dialog->win), "new_person");	gtk_window_set_title(GTK_WINDOW(dialog->win), _("New Person"));		gtk_window_set_resizable(GTK_WINDOW(dialog->win), FALSE);	gtk_container_set_border_width(GTK_CONTAINER(dialog->win), 12);	g_signal_connect(G_OBJECT(dialog->win), "delete_event",					 G_CALLBACK(delete_win_cb), dialog);	/* Setup the vbox */	vbox = gtk_vbox_new(FALSE, 12);	gtk_container_add(GTK_CONTAINER(dialog->win), vbox);	gtk_widget_show(vbox);	/* Label */	if (person_only)	{		label = gtk_label_new(			_("Please enter the person's information below."));	}	else	{		label = gtk_label_new(_("Please enter the buddy's screen name and "								"account type below."));	}	gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);	gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, TRUE, 0);	gtk_widget_show(label);	/* Setup the size groups */	sg  = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);	sg2 = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);	if (!person_only)	{		/* Add the account type stuff. */		dialog->accounts_menu =			pidgin_account_option_menu_new(account, FALSE,											 G_CALLBACK(select_account_cb),											 NULL, dialog);		add_pref_box(sg, vbox, _("Account type:"), dialog->accounts_menu);		/* Screen Name */		dialog->screenname = gtk_entry_new();		add_pref_box(sg, vbox, _("Screen name:"), dialog->screenname);		if (username != NULL)			gtk_entry_set_text(GTK_ENTRY(dialog->screenname), username);		g_signal_connect(G_OBJECT(dialog->screenname), "changed",						 G_CALLBACK(screenname_changed_cb), dialog);		/* Group */		dialog->group_combo = gtk_combo_new();		gtk_combo_set_popdown_strings(GTK_COMBO(dialog->group_combo),									  gevo_get_groups());		add_pref_box(sg, vbox, _("Group:"), dialog->group_combo);		/* Separator */		sep = gtk_hseparator_new();		gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);		gtk_widget_show(sep);		/* Optional Information section */		label = gtk_label_new(_("Optional information:"));		gtk_misc_set_alignment(GTK_MISC(label), 0, 0);		gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);		gtk_widget_show(label);	}	/* Create the parent hbox for this whole thing. */	hbox = gtk_hbox_new(FALSE, 12);	gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);	gtk_widget_show(hbox);#if 0	/* Now the left side of the hbox */	vbox2 = gtk_vbox_new(FALSE, 12);	gtk_box_pack_start(GTK_BOX(hbox), vbox2, FALSE, FALSE, 0);	gtk_widget_show(vbox2);	/* Buddy icon button */	button = gtk_button_new_from_stock(GTK_STOCK_OPEN);	gtk_box_pack_start(GTK_BOX(vbox2), button, FALSE, FALSE, 0);	gtk_widget_show(button);	/* Label */	label = gtk_label_new(_("Buddy Icon"));	gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);	gtk_widget_show(label);#endif	/* Now the right side. */	vbox2 = gtk_vbox_new(FALSE, 12);	gtk_box_pack_start(GTK_BOX(hbox), vbox2, TRUE, TRUE, 0);	gtk_widget_show(vbox2);	/* First Name field */	dialog->firstname = gtk_entry_new();	add_pref_box(sg2, vbox2, _("First name:"), dialog->firstname);	if (contact != NULL)	{		str = e_contact_get_const(contact, E_CONTACT_GIVEN_NAME);		if (str != NULL)			gtk_entry_set_text(GTK_ENTRY(dialog->firstname), str);	}	/* Last Name field */	dialog->lastname = gtk_entry_new();	add_pref_box(sg2, vbox2, _("Last name:"), dialog->lastname);	if (contact != NULL)	{		str = e_contact_get_const(contact, E_CONTACT_FAMILY_NAME);		if (str != NULL)			gtk_entry_set_text(GTK_ENTRY(dialog->lastname), str);	}	if (person_only)	{		g_signal_connect(G_OBJECT(dialog->firstname), "changed",						 G_CALLBACK(person_info_changed_cb), dialog);		g_signal_connect(G_OBJECT(dialog->lastname), "changed",						 G_CALLBACK(person_info_changed_cb), dialog);	}	/* E-Mail address field */	dialog->email = gtk_entry_new();	add_pref_box(sg2, vbox2, _("E-mail:"), dialog->email);	if (contact != NULL)	{		str = e_contact_get_const(contact, E_CONTACT_EMAIL_1);		if (str != NULL)			gtk_entry_set_text(GTK_ENTRY(dialog->email), str);	}	/* Separator */	sep = gtk_hseparator_new();	gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);	gtk_widget_show(sep);	/* Button box */	bbox = gtk_hbutton_box_new();	gtk_box_set_spacing(GTK_BOX(bbox), 6);	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);	gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, TRUE, 0);	gtk_widget_show(bbox);	/* Cancel button */	button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	g_signal_connect(G_OBJECT(button), "clicked",					 G_CALLBACK(cancel_cb), dialog);	/* Add button */	button = gtk_button_new_from_stock(GTK_STOCK_ADD);	dialog->add_button = button;	if (username == NULL || *username == '\0')		gtk_widget_set_sensitive(button, FALSE);	gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);	gtk_widget_show(button);	g_signal_connect(G_OBJECT(button), "clicked",					 G_CALLBACK(add_cb), dialog);	/* Show it. */	gtk_widget_show(dialog->win);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久久久免费看 | 91免费国产在线观看| 麻豆91精品91久久久的内涵| 亚洲成人激情社区| 亚洲成人资源在线| 亚洲成人免费影院| 日本午夜一区二区| 黑人精品欧美一区二区蜜桃| 国产美女久久久久| av不卡在线播放| 色偷偷久久一区二区三区| 欧美性高清videossexo| 欧美日韩午夜影院| 欧美电影精品一区二区| 久久综合久久综合久久| 亚洲国产高清在线| 亚洲精品乱码久久久久久日本蜜臀| 亚洲黄色录像片| 奇米在线7777在线精品 | 欧美成人精品1314www| 日韩精品一区二区三区四区视频 | 国产精品一区二区在线看| 国产福利91精品一区| 91麻豆免费看| 日韩三级电影网址| 国产精品免费视频一区| 亚洲国产日韩av| 国产精品中文欧美| 日本福利一区二区| 欧美www视频| 亚洲欧洲成人av每日更新| 日韩中文字幕1| 成人免费视频一区| 91.xcao| 国产精品激情偷乱一区二区∴| 亚洲午夜精品网| 丰满白嫩尤物一区二区| 欧美日韩三级一区二区| 久久奇米777| 亚洲.国产.中文慕字在线| 国产高清成人在线| 欧美浪妇xxxx高跟鞋交| 中文字幕av资源一区| 免费人成网站在线观看欧美高清| 成人福利视频在线| 日韩美女在线视频| 亚洲国产精品自拍| 99re热这里只有精品视频| 日韩女优av电影| 亚洲国产综合色| 99精品国产热久久91蜜凸| 精品日韩在线观看| 日韩中文字幕av电影| 色哟哟国产精品| 国产精品盗摄一区二区三区| 老司机免费视频一区二区| 欧美在线免费播放| 亚洲视频一区二区免费在线观看| 国产麻豆精品久久一二三| 日韩视频免费观看高清完整版在线观看 | 2019国产精品| 日本不卡高清视频| 欧美高清视频在线高清观看mv色露露十八| 国产精品狼人久久影院观看方式| 国产精品自在在线| 久久一区二区视频| 麻豆精品在线视频| 日韩精品在线网站| 日本sm残虐另类| 欧美精品黑人性xxxx| 午夜久久久久久久久| 欧美在线观看视频一区二区三区| 亚洲欧洲成人av每日更新| jvid福利写真一区二区三区| 亚洲国产精品v| www.日韩av| 亚洲老妇xxxxxx| 色婷婷综合中文久久一本| 亚洲精品国产精品乱码不99| 91免费视频网址| 亚洲午夜av在线| 欧美日韩mp4| 日本va欧美va精品发布| 精品国产麻豆免费人成网站| 精品在线免费视频| 久久久影视传媒| 高清成人在线观看| 亚洲欧洲综合另类| 欧美人与性动xxxx| 狂野欧美性猛交blacked| 欧美v国产在线一区二区三区| 久久er精品视频| 久久亚洲欧美国产精品乐播| 成人深夜福利app| 亚洲国产一区二区视频| 69堂精品视频| 高清不卡在线观看av| 尤物视频一区二区| 69堂成人精品免费视频| 国产九色sp调教91| 亚洲综合av网| 精品精品国产高清a毛片牛牛| 成人性视频免费网站| 亚洲综合区在线| 精品国产乱码久久久久久久久| 成人午夜在线播放| 亚洲一区精品在线| 久久久久久夜精品精品免费| 色综合天天综合给合国产| 男男视频亚洲欧美| 亚洲四区在线观看| 日韩女优制服丝袜电影| 色综合久久66| 韩国av一区二区三区四区 | 日本大香伊一区二区三区| 偷拍一区二区三区四区| 日本一二三四高清不卡| 91麻豆精品国产91久久久久久久久 | 国产盗摄精品一区二区三区在线| 一区二区三区在线视频观看| 日韩精品一区二区三区在线 | av电影一区二区| 蜜桃视频一区二区三区在线观看| 国产欧美日韩久久| 在线综合+亚洲+欧美中文字幕| eeuss鲁一区二区三区| 伦理电影国产精品| 亚洲一区二区中文在线| 中文成人av在线| 欧美videossexotv100| 欧美色图免费看| 一本久道中文字幕精品亚洲嫩| 久久99久久精品| 亚洲bt欧美bt精品| 亚洲一区中文在线| 亚洲精品视频一区| 国产精品国产三级国产专播品爱网| 日韩欧美中文字幕一区| 欧美系列在线观看| 色综合久久久久综合| 成人精品视频一区二区三区尤物| 久久99精品国产麻豆婷婷| 调教+趴+乳夹+国产+精品| 一区二区三区中文在线| 亚洲人成在线播放网站岛国| 国产欧美综合在线观看第十页| 精品精品国产高清a毛片牛牛| 91精品国产一区二区三区| 欧美视频一区二| 69堂精品视频| 日韩一区二区中文字幕| 日韩一区二区三区三四区视频在线观看| 欧美日韩在线综合| 欧美肥妇free| 欧美一级生活片| 欧美一级一区二区| 亚洲精品在线观看网站| 久久日韩精品一区二区五区| 久久九九影视网| 中文字幕高清一区| 亚洲欧美日韩在线播放| 一区二区久久久| 日韩综合在线视频| 韩国成人精品a∨在线观看| 国产一二三精品| 成人av电影免费观看| 色香色香欲天天天影视综合网| 亚洲二区在线视频| 日韩女优电影在线观看| 日韩精品在线一区二区| 久久午夜免费电影| 久久久777精品电影网影网 | 精品日韩99亚洲| 国产日韩欧美a| 亚洲色图另类专区| 视频一区二区国产| 国产美女精品一区二区三区| 成人美女在线观看| 欧美日韩dvd在线观看| 久久人人97超碰com| 自拍偷拍亚洲欧美日韩| 日韩高清国产一区在线| 国产精品18久久久久久vr| 91网站在线观看视频| 日韩一区二区在线观看视频| 久久网这里都是精品| 亚洲一区二区在线免费观看视频 | 国产精品福利影院| 亚洲va国产天堂va久久en| 国产一区免费电影| 欧美丝袜丝交足nylons图片| 久久夜色精品一区| 亚洲高清三级视频| 成人国产亚洲欧美成人综合网| 欧美日韩精品三区| **性色生活片久久毛片| 蜜桃精品视频在线观看| 在线一区二区三区四区五区| 久久影视一区二区| 日韩**一区毛片|