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

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

?? pidginrc.c

?? Linux下的多協議即時通訊程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/** * @file purplerc.c Purple gtk resource control plugin. * * Copyright (C) 2005 Etan Reisner <deryni@eden.rutgers.edu> * * 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 "gtkplugin.h"#include "gtkprefs.h"#include "gtkutils.h"#include "util.h"#include "version.h"static guint pref_callback;static const char *color_prefs[] = {	"/plugins/gtk/purplerc/color/GtkWidget::cursor-color",	"/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color",	"/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color"};static const char *color_prefs_set[] = {	"/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color",	"/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color",	"/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color"};static const char *color_names[] = {	N_("Cursor Color"),	N_("Secondary Cursor Color"),	N_("Hyperlink Color")};static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)];static const char *widget_size_prefs[] = {	"/plugins/gtk/purplerc/size/GtkTreeView::horizontal_separator"};static const char *widget_size_prefs_set[] = {	"/plugins/gtk/purplerc/set/size/GtkTreeView::horizontal_separator"};static const char *widget_size_names[] = {	N_("GtkTreeView Horizontal Separation")};static GtkWidget *widget_size_widgets[G_N_ELEMENTS(widget_size_prefs)];static const char *font_prefs[] = {	"/plugins/gtk/purplerc/font/*pidgin_conv_entry",	"/plugins/gtk/purplerc/font/*pidgin_conv_imhtml",	"/plugins/gtk/purplerc/font/*pidgin_log_imhtml",	"/plugins/gtk/purplerc/font/*pidgin_request_imhtml",	"/plugins/gtk/purplerc/font/*pidgin_notify_imhtml",};static const char *font_prefs_set[] = {	"/plugins/gtk/purplerc/set/font/*pidgin_conv_entry",	"/plugins/gtk/purplerc/set/font/*pidgin_conv_imhtml",	"/plugins/gtk/purplerc/set/font/*pidgin_log_imhtml",	"/plugins/gtk/purplerc/set/font/*pidgin_request_imhtml",	"/plugins/gtk/purplerc/set/font/*pidgin_notify_imhtml",};static const char *font_names[] = {	N_("Conversation Entry"),	N_("Conversation History"),	N_("Log Viewer"),	N_("Request Dialog"),	N_("Notify Dialog")};static GtkWidget *font_widgets[G_N_ELEMENTS(font_prefs)];/*static const char *widget_bool_prefs[] = {};static const char *widget_bool_prefs_set[] = {};static const char *widget_bool_names[] = {};static GtkWidget *widget_bool_widgets[G_N_ELEMENTS(widget_bool_prefs)];*/static voidpurplerc_make_changes(){	int i;	char *prefbase = NULL;#if GTK_CHECK_VERSION(2,4,0)	GtkSettings *setting = NULL;#endif	GString *style_string = g_string_new("");	if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) {		const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name");		if (pref != NULL && strcmp(pref, ""))			g_string_append_printf(style_string, "gtk-font-name = \"%s\"\n", pref);	}	if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) {		const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name");		if (pref != NULL && strcmp(pref, ""))			g_string_append_printf(style_string, "gtk-key-theme-name = \"%s\"\n", pref);	}	g_string_append(style_string, "style \"purplerc_style\" {\n");	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {		if (purple_prefs_get_bool(color_prefs_set[i])) {			const char *pref;			prefbase = g_path_get_basename(color_prefs[i]);			pref = purple_prefs_get_string(color_prefs[i]);			if (pref != NULL && strcmp(pref, ""))			    g_string_append_printf(style_string,			                           "%s = \"%s\"\n",			                           prefbase, pref);			g_free(prefbase);		}	}	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {		if (purple_prefs_get_bool(widget_size_prefs_set[i])) {			prefbase = g_path_get_basename(widget_size_prefs[i]);			g_string_append_printf(style_string,			                       "%s = %d\n", prefbase,			                       purple_prefs_get_int(widget_size_prefs[i]));			g_free(prefbase);		}	}	/*	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {		if (purple_prefs_get_bool(widget_bool_prefs_set[i])) {			prefbase = g_path_get_basename(widget_bool_prefs[i]);			g_string_append_printf(style_string,			                       "%s = %d\n", prefbase,			                       purple_prefs_get_bool(widget_bool_prefs[i]));			g_free(prefbase);		}	}	*/	g_string_append(style_string, "}");	g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n");	for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) {		if (purple_prefs_get_bool(font_prefs_set[i])) {			const char *pref;			prefbase = g_path_get_basename(font_prefs[i]);			pref = purple_prefs_get_string(font_prefs[i]);			if (pref != NULL && strcmp(pref, ""))				g_string_append_printf(style_string,				                       "style \"%s_style\"\n"				                       "{font_name = \"%s\"}\n"				                       "widget \"%s\" "				                       "style \"%s_style\"\n",				                       prefbase, pref,				                       prefbase, prefbase);			g_free(prefbase);		}	}	gtk_rc_parse_string(style_string->str);	g_string_free(style_string, TRUE);#if GTK_CHECK_VERSION(2,4,0)	setting = gtk_settings_get_default();	gtk_rc_reset_styles(setting);#endif}static voidpurplerc_write(GtkWidget *widget, gpointer data){	int i;	GString *style_string = g_string_new("");	char *prefbase = NULL;	if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name")) {		const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name");		if (pref != NULL && strcmp(pref, ""))			g_string_append_printf(style_string,			                       "gtk-font-name = \"%s\"\n",			                       pref);	}	if (purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name")) {		const char *pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-key-theme-name");		if (pref != NULL && strcmp(pref, ""))			g_string_append_printf(style_string,			                       "gtk-key-theme-name = \"%s\"\n",			                       pref);	}	g_string_append(style_string, "style \"purplerc_style\" {\n");	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {		if (purple_prefs_get_bool(color_prefs_set[i])) {			const char *pref;			prefbase = g_path_get_basename(color_prefs[i]);			pref = purple_prefs_get_string(color_prefs[i]);			if (pref != NULL && strcmp(pref, ""))			    g_string_append_printf(style_string,			                           "%s = \"%s\"\n",			                           prefbase, pref);			g_free(prefbase);		}	}	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {		if (purple_prefs_get_bool(widget_size_prefs_set[i])) {			prefbase = g_path_get_basename(widget_size_prefs[i]);			g_string_append_printf(style_string,			                       "%s = %d\n", prefbase,			                       purple_prefs_get_int(widget_size_prefs[i]));			g_free(prefbase);		}	}	/*	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {		if (purple_prefs_get_bool(widget_bool_prefs_set[i])) {			prefbase = g_path_get_basename(widget_bool_prefs[i]);			g_string_append_printf(style_string,			                       "%s = %d\n", prefbase,			                       purple_prefs_get_bool(widget_bool_prefs[i]));			g_free(prefbase);		}	}	*/	g_string_append(style_string, "}");	g_string_append(style_string, "widget_class \"*\" style \"purplerc_style\"\n");	for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) {		if (purple_prefs_get_bool(font_prefs_set[i])) {			const char *pref;			prefbase = g_path_get_basename(font_prefs[i]);			pref = purple_prefs_get_string(font_prefs[i]);			if (pref != NULL && strcmp(pref, ""))				g_string_append_printf(style_string,				                       "style \"%s_style\"\n"				                       "{font_name = \"%s\"}\n"				                       "widget \"%s\" "				                       "style \"%s_style\"\n",				                       prefbase, pref,				                       prefbase, prefbase);			g_free(prefbase);		}	}	purple_util_write_data_to_file("gtkrc-2.0", style_string->str, -1);	g_string_free(style_string, TRUE);}static voidpurplerc_reread(GtkWidget *widget, gpointer data){	gtk_rc_reparse_all();	/* I don't know if this is necessary but if not it shouldn't hurt. */	purplerc_make_changes();}static voidpurplerc_pref_changed_cb(const char *name, PurplePrefType type,                       gconstpointer value, gpointer data){	purplerc_make_changes();}static voidpurplerc_color_response(GtkDialog *color_dialog, gint response, gpointer data){	int subscript = GPOINTER_TO_INT(data);	if (response == GTK_RESPONSE_OK) {		GtkWidget *colorsel = GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel;		GdkColor color;		char colorstr[8];		gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(colorsel), &color);		g_snprintf(colorstr, sizeof(colorstr), "#%02X%02X%02X",		           color.red/256, color.green/256, color.blue/256);		purple_prefs_set_string(color_prefs[subscript], colorstr);	}	gtk_widget_destroy(GTK_WIDGET(color_dialog));}static voidpurplerc_set_color(GtkWidget *widget, gpointer data){	GtkWidget *color_dialog = NULL;	GdkColor color;	char title[128];	const char *pref = NULL;	int subscript = GPOINTER_TO_INT(data);	g_snprintf(title, sizeof(title), _("Select Color for %s"),	           _(color_names[GPOINTER_TO_INT(data)]));	color_dialog = gtk_color_selection_dialog_new(_("Select Color"));	g_signal_connect(G_OBJECT(color_dialog), "response",	                 G_CALLBACK(purplerc_color_response), data);	pref = purple_prefs_get_string(color_prefs[subscript]);	if (pref != NULL && strcmp(pref, "")) {		if (gdk_color_parse(pref, &color)) {			gtk_color_selection_set_current_color(GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(color_dialog)->colorsel), &color);		}	}	gtk_window_present(GTK_WINDOW(color_dialog));}static voidpurplerc_font_response(GtkDialog *font_dialog, gint response, gpointer data){	int subscript = GPOINTER_TO_INT(data);	if (response == GTK_RESPONSE_OK) {		char *fontname = NULL;		fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog));		purple_prefs_set_string(font_prefs[subscript], fontname);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人在线观看| 久久精品av麻豆的观看方式| 久久品道一品道久久精品| 欧美片网站yy| 欧美蜜桃一区二区三区| 欧美日韩一区二区电影| 欧美又粗又大又爽| 在线观看免费视频综合| 欧美专区日韩专区| 欧美日韩国产成人在线免费| 欧美色手机在线观看| 欧美日韩日日摸| 欧美一区二区在线视频| 欧美xxx久久| 日本一区二区视频在线| 中文字幕一区av| 一区二区三区四区蜜桃| 亚洲国产精品久久久久秋霞影院| 香港成人在线视频| 久久电影网站中文字幕| 国产成人av影院| 91天堂素人约啪| 欧美日韩三级在线| 精品国产一区二区三区久久影院 | 亚洲高清免费观看| 麻豆成人综合网| 丁香另类激情小说| 一本大道久久a久久精二百| 欧美日韩aaaaaa| 国产性天天综合网| 一区二区三区高清| 久久成人免费日本黄色| 不卡的av网站| 6080午夜不卡| 日本一区二区三区视频视频| 一区二区三区精密机械公司| 青青草伊人久久| www.亚洲免费av| 91.xcao| 中文字幕国产一区二区| 天天综合色天天| 国产成人福利片| 777色狠狠一区二区三区| 日本一区二区三区免费乱视频| 一区二区欧美国产| 国产精品一区久久久久| 欧美亚洲精品一区| 国产欧美久久久精品影院| 五月婷婷激情综合网| 菠萝蜜视频在线观看一区| 日韩一级在线观看| 亚洲最新视频在线播放| 成人精品在线视频观看| 日韩精品中午字幕| 一区二区三区电影在线播| 丰满放荡岳乱妇91ww| 日韩欧美一区二区在线视频| 夜夜揉揉日日人人青青一国产精品| 国产91在线|亚洲| 日韩免费看的电影| 日韩av一级片| 欧美三级中文字| 亚洲欧美日韩国产手机在线| 高清beeg欧美| 国产欧美日韩不卡免费| 激情综合色播激情啊| 欧美日韩夫妻久久| 中文字幕在线不卡一区| 久久aⅴ国产欧美74aaa| 欧美视频你懂的| 国产精品成人午夜| 极品少妇xxxx精品少妇| 91极品视觉盛宴| 亚洲人成精品久久久久久| 国产主播一区二区| 欧美一区二区三区视频在线观看| 中文在线资源观看网站视频免费不卡 | 日韩欧美你懂的| 亚洲综合男人的天堂| 99久久婷婷国产精品综合| 亚洲精品一线二线三线无人区| 亚洲精品视频一区| 99久久婷婷国产| 中文字幕在线一区二区三区| 国产毛片精品一区| 色av一区二区| 亚洲图片欧美综合| 欧美自拍偷拍一区| 一区二区三区在线视频观看| 不卡的电视剧免费网站有什么| 久久久久久综合| 国产精品综合久久| 久久久久国产精品厨房| 国产精品正在播放| 国产精品久久久久久久岛一牛影视| 韩国成人精品a∨在线观看| 欧美电影精品一区二区| 久久精品国产亚洲a| 欧美一级xxx| 喷水一区二区三区| 欧美成人a在线| 激情久久五月天| 国产无一区二区| 在线亚洲一区二区| 亚洲图片欧美综合| 日韩一区二区视频| 精品一区二区久久久| 日韩欧美的一区| 麻豆91精品视频| 久久日韩粉嫩一区二区三区| 国产在线视频一区二区| 亚洲精品欧美二区三区中文字幕| 91国内精品野花午夜精品| 一区二区三区精品在线| 欧美综合亚洲图片综合区| 人人爽香蕉精品| 久久精品视频免费| av电影在线不卡| 亚洲成人av在线电影| 国产无人区一区二区三区| av亚洲精华国产精华| 亚洲电影一级黄| 精品精品欲导航| 色婷婷国产精品久久包臀| 午夜一区二区三区在线观看| 26uuu久久天堂性欧美| 国产一区二区三区最好精华液| 亚洲国产中文字幕| 久久人人爽爽爽人久久久| 99久久久免费精品国产一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美一级在线观看| 成人永久aaa| 日本不卡一区二区三区高清视频| 26uuu国产电影一区二区| 成人黄色国产精品网站大全在线免费观看| 亚洲精品综合在线| 精品国产乱子伦一区| 91丨porny丨户外露出| 久久99精品久久久久久国产越南| 中文字幕不卡在线观看| 欧美一级搡bbbb搡bbbb| 欧美高清精品3d| 91色九色蝌蚪| 国产精品一级在线| 日韩高清一区在线| 亚洲欧美一区二区不卡| 精品国产制服丝袜高跟| 国产精品一二三| 国产一区二区不卡在线| 图片区小说区国产精品视频| 亚洲少妇最新在线视频| 国产精品久久久久三级| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区三区在线视频 | 国产精品久久毛片av大全日韩| 欧美电影在哪看比较好| 色婷婷久久久亚洲一区二区三区| 天天操天天综合网| 日本午夜精品视频在线观看| 一区二区在线观看视频| 成人免费一区二区三区视频| 欧美韩日一区二区三区| 欧美一区二区三级| 7777精品伊人久久久大香线蕉完整版 | 国产精品久久久久婷婷| 国产午夜精品久久久久久免费视| 欧美一区二区三区视频免费播放| 欧洲激情一区二区| 99视频精品全部免费在线| 国产精品亚洲午夜一区二区三区| 日本视频免费一区| 亚洲狠狠丁香婷婷综合久久久| 亚洲bt欧美bt精品777| 亚洲综合在线五月| 亚洲夂夂婷婷色拍ww47| 亚洲中国最大av网站| 亚洲成人高清在线| 日本欧美一区二区三区| 久久成人免费网| 激情深爱一区二区| 韩国女主播成人在线观看| 国模套图日韩精品一区二区| 国产酒店精品激情| 国产一区二区三区日韩| 成人免费视频app| 日本精品视频一区二区| 欧美乱妇20p| 日韩精品中文字幕在线不卡尤物| 欧美大片拔萝卜| 国产精品久久网站| 亚洲国产精品久久久男人的天堂 | 亚洲欧美日韩人成在线播放| 亚洲毛片av在线| 免费日韩伦理电影| 国产99久久精品| av成人老司机| 欧美在线观看视频在线| 精品国产亚洲一区二区三区在线观看| 欧美经典一区二区|