⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pidginrc.c

📁 Linux下的多协议即时通讯程序源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
		g_free(fontname);	}	gtk_widget_destroy(GTK_WIDGET(font_dialog));}static voidpurplerc_set_font(GtkWidget *widget, gpointer data){	GtkWidget *font_dialog = NULL;	char title[128];	const char *pref = NULL;	int subscript = GPOINTER_TO_INT(data);	g_snprintf(title, sizeof(title), _("Select Font for %s"),	           _(font_names[subscript]));	font_dialog = gtk_font_selection_dialog_new(title);	g_signal_connect(G_OBJECT(font_dialog), "response",	                 G_CALLBACK(purplerc_font_response), data);	pref = purple_prefs_get_string(font_prefs[subscript]);	if (pref != NULL && strcmp(pref, "")) {		gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref);	}	gtk_window_present(GTK_WINDOW(font_dialog));}static voidpurplerc_font_response_special(GtkDialog *font_dialog, gint response,                             gpointer 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("/plugins/gtk/purplerc/gtk-font-name",		                      fontname);		g_free(fontname);	}	gtk_widget_destroy(GTK_WIDGET(font_dialog));}static voidpurplerc_set_font_special(GtkWidget *widget, gpointer data){	GtkWidget *font_dialog = NULL;	const char *pref = NULL;	font_dialog = gtk_font_selection_dialog_new(_("Select Interface Font"));	g_signal_connect(G_OBJECT(font_dialog), "response",	                 G_CALLBACK(purplerc_font_response_special), NULL);	pref = purple_prefs_get_string("/plugins/gtk/purplerc/gtk-font-name");	if (pref != NULL && strcmp(pref, "")) {		gtk_font_selection_set_font_name(GTK_FONT_SELECTION(GTK_FONT_SELECTION_DIALOG(font_dialog)->fontsel), pref);	}	gtk_window_present(GTK_WINDOW(font_dialog));}static gbooleanpurplerc_plugin_load(PurplePlugin *plugin){	purplerc_make_changes();	pref_callback = purple_prefs_connect_callback(plugin, "/plugins/gtk/purplerc",	                                            purplerc_pref_changed_cb, NULL);	return TRUE;}static gbooleanpurplerc_plugin_unload(PurplePlugin *plugin){	purple_prefs_disconnect_callback(pref_callback);	return TRUE;}static GtkWidget *purplerc_get_config_frame(PurplePlugin *plugin){	/* Note: Intentionally not using the size group argument to the	 * pidgin_prefs_labeled_* functions they only add the text label to	 * the size group not the whole thing, which isn't what I want. */	int i;	char *tmp;	GtkWidget *check = NULL, *widget = NULL;	GtkSizeGroup *labelsg = NULL, *widgetsg = NULL;	GtkWidget *ret = NULL, *frame = NULL, *hbox = NULL, *vbox = NULL;	ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);	gtk_container_set_border_width(GTK_CONTAINER(ret), PIDGIN_HIG_BORDER);	labelsg  = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);	widgetsg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);	frame = pidgin_make_frame(ret, _("General"));	/* interface font */	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);	gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);	check = pidgin_prefs_checkbox(_("GTK+ Interface Font"),	                                "/plugins/gtk/purplerc/set/gtk-font-name",	                                hbox);	gtk_size_group_add_widget(labelsg, check);	widget = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT,	                                       PIDGIN_BUTTON_HORIZONTAL);	gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, FALSE, 0);	gtk_size_group_add_widget(widgetsg, widget);	gtk_widget_set_sensitive(widget,	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-font-name"));	g_signal_connect(G_OBJECT(check), "toggled",	                 G_CALLBACK(pidgin_toggle_sensitive), widget);	g_signal_connect(G_OBJECT(widget), "clicked",	                 G_CALLBACK(purplerc_set_font_special), NULL);	/* key theme name */	hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);	gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);	check = pidgin_prefs_checkbox(_("GTK+ Text Shortcut Theme"),	                                "/plugins/gtk/purplerc/set/gtk-key-theme-name",	                                hbox);	gtk_size_group_add_widget(labelsg, check);	widget = pidgin_prefs_labeled_entry(hbox, "",	                                      "/plugins/gtk/purplerc/gtk-key-theme-name",	                                      NULL);	/*	gtk_size_group_add_widget(widgetsg, widget);	*/	gtk_widget_set_sensitive(widget,	                         purple_prefs_get_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name"));	g_signal_connect(G_OBJECT(check), "toggled",	                 G_CALLBACK(pidgin_toggle_sensitive), widget);	/*	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);		check = pidgin_prefs_checkbox(_(widget_bool_names[i]),		                                widget_bool_prefs_set[i], hbox);		gtk_size_group_add_widget(labelsg, check);		widget_bool_widgets[i] = pidgin_prefs_checkbox("", widget_bool_prefs[i], hbox);		*		gtk_size_group_add_widget(widgetsb, widget_bool_widgets[i]);		*		gtk_widget_set_sensitive(widget_bool_widgets[i],		                         purple_prefs_get_bool(widget_bool_prefs_set[i]));		g_signal_connect(G_OBJECT(check), "toggled",		                 G_CALLBACK(pidgin_toggle_sensitive),		                 widget_bool_widgets[i]);	}	*/	frame = pidgin_make_frame(ret, _("Interface colors"));	/* imhtml stuff */	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);		check = pidgin_prefs_checkbox(_(color_names[i]),		                                color_prefs_set[i], hbox);		gtk_size_group_add_widget(labelsg, check);		color_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_COLOR, PIDGIN_BUTTON_HORIZONTAL);		gtk_size_group_add_widget(widgetsg, color_widgets[i]);		gtk_box_pack_start(GTK_BOX(hbox), color_widgets[i], FALSE,		                   FALSE, 0);		gtk_widget_set_sensitive(color_widgets[i],		                         purple_prefs_get_bool(color_prefs_set[i]));		g_signal_connect(G_OBJECT(check), "toggled",		                 G_CALLBACK(pidgin_toggle_sensitive),		                 color_widgets[i]);		g_signal_connect(G_OBJECT(color_widgets[i]), "clicked",		                 G_CALLBACK(purplerc_set_color),		                 GINT_TO_POINTER(i));	}	frame = pidgin_make_frame(ret, _("Widget Sizes"));	/* widget size stuff */	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);		check = pidgin_prefs_checkbox(_(widget_size_names[i]),		                                widget_size_prefs_set[i], hbox);		gtk_size_group_add_widget(labelsg, check);		widget_size_widgets[i] = pidgin_prefs_labeled_spin_button(hbox, "", widget_size_prefs[i], 0, 50, NULL);		/*		gtk_size_group_add_widget(widgetsg, widget_size_widgets[i]);		*/		gtk_widget_set_sensitive(widget_size_widgets[i],		                         purple_prefs_get_bool(widget_size_prefs_set[i]));		g_signal_connect(G_OBJECT(check), "toggled",		                 G_CALLBACK(pidgin_toggle_sensitive),		                 widget_size_widgets[i]);	}	frame = pidgin_make_frame(ret, _("Fonts"));	/* imhtml font stuff */	for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) {		hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);		gtk_box_pack_start(GTK_BOX(frame), hbox, FALSE, FALSE, 0);		check = pidgin_prefs_checkbox(_(font_names[i]),		                                font_prefs_set[i], hbox);		gtk_size_group_add_widget(labelsg, check);		font_widgets[i] = pidgin_pixbuf_button_from_stock("", GTK_STOCK_SELECT_FONT, PIDGIN_BUTTON_HORIZONTAL);		gtk_size_group_add_widget(widgetsg, font_widgets[i]);		gtk_box_pack_start(GTK_BOX(hbox), font_widgets[i], FALSE,		                   FALSE, 0);		gtk_widget_set_sensitive(font_widgets[i],		                         purple_prefs_get_bool(font_prefs_set[i]));		g_signal_connect(G_OBJECT(check), "toggled",		                 G_CALLBACK(pidgin_toggle_sensitive),		                 font_widgets[i]);		g_signal_connect(G_OBJECT(font_widgets[i]), "clicked",		                 G_CALLBACK(purplerc_set_font), GINT_TO_POINTER(i));	}	frame = pidgin_make_frame(ret, _("Tools"));	vbox = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);	gtk_box_pack_start(GTK_BOX(frame), vbox, FALSE, FALSE, 0);	tmp = g_strdup_printf(_("Write settings to %s%sgtkrc-2.0"), purple_user_dir(), G_DIR_SEPARATOR_S);	check = gtk_button_new_with_label(tmp);	g_free(tmp);	gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);	gtk_size_group_add_widget(labelsg, check);	g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_write),	                 NULL);	check = gtk_button_new_with_label(_("Re-read gtkrc files"));	gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);	gtk_size_group_add_widget(labelsg, check);	g_signal_connect(G_OBJECT(check), "clicked", G_CALLBACK(purplerc_reread),	                 NULL);	gtk_widget_show_all(ret);	return ret;}static PidginPluginUiInfo purplerc_ui_info ={	purplerc_get_config_frame,	0, /* page_num (Reserved) */	/* padding */	NULL,	NULL,	NULL,	NULL};static PurplePluginInfo purplerc_info ={	PURPLE_PLUGIN_MAGIC,	PURPLE_MAJOR_VERSION,	PURPLE_MINOR_VERSION,	PURPLE_PLUGIN_STANDARD,	PIDGIN_PLUGIN_TYPE,	0,	NULL,	PURPLE_PRIORITY_DEFAULT,	"purplerc",	N_("Pidgin GTK+ Theme Control"),	VERSION,	N_("Provides access to commonly used gtkrc settings."),	N_("Provides access to commonly used gtkrc settings."),	"Etan Reisner <deryni@eden.rutgers.edu>",	PURPLE_WEBSITE,	purplerc_plugin_load,	purplerc_plugin_unload,	NULL,	&purplerc_ui_info,	NULL,	NULL,	NULL,	/* padding */	NULL,	NULL,	NULL,	NULL};static voidpurplerc_init(PurplePlugin *plugin){	int i;	purple_prefs_add_none("/plugins");	purple_prefs_add_none("/plugins/gtk");	purple_prefs_add_none("/plugins/gtk/purplerc");	purple_prefs_add_none("/plugins/gtk/purplerc/set");	purple_prefs_add_string("/plugins/gtk/purplerc/gtk-font-name", "");	purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-font-name", FALSE);	purple_prefs_add_string("/plugins/gtk/purplerc/gtk-key-theme-name", "");	purple_prefs_add_bool("/plugins/gtk/purplerc/set/gtk-key-theme-name", FALSE);	purple_prefs_add_none("/plugins/gtk/purplerc/color");	purple_prefs_add_none("/plugins/gtk/purplerc/set/color");	for (i = 0; i < G_N_ELEMENTS(color_prefs); i++) {		purple_prefs_add_string(color_prefs[i], "");		purple_prefs_add_bool(color_prefs_set[i], FALSE);	}	purple_prefs_add_none("/plugins/gtk/purplerc/size");	purple_prefs_add_none("/plugins/gtk/purplerc/set/size");	for (i = 0; i < G_N_ELEMENTS(widget_size_prefs); i++) {		purple_prefs_add_int(widget_size_prefs[i], 0);		purple_prefs_add_bool(widget_size_prefs_set[i], FALSE);	}	purple_prefs_add_none("/plugins/gtk/purplerc/font");	purple_prefs_add_none("/plugins/gtk/purplerc/set/font");	for (i = 0; i < G_N_ELEMENTS(font_prefs); i++) {		purple_prefs_add_string(font_prefs[i], "");		purple_prefs_add_bool(font_prefs_set[i], FALSE);	}	/*	purple_prefs_add_none("/plugins/gtk/purplerc/bool");	purple_prefs_add_none("/plugins/gtk/purplerc/set/bool");	for (i = 0; i < G_N_ELEMENTS(widget_bool_prefs); i++) {		purple_prefs_add_bool(widget_bool_prefs[i], TRUE);		purple_prefs_add_bool(widget_bool_prefs_set[i], FALSE);	}	*/}PURPLE_INIT_PLUGIN(purplerc, purplerc_init, purplerc_info)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -