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

📄 dialog-pref.c

📁 GNOME下的短信息发送中心
💻 C
📖 第 1 页 / 共 2 页
字号:
	GtkWidget *frame;	gchar str[8];	frame = gtk_frame_new(_("SMTP - Settings"));	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(frame), vbox);	table = gtk_table_new(2, 3, FALSE);	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 5);	/* labels */	label = gtk_label_new(_("SMTP-Server"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	label = gtk_label_new(_("E-Mail Address"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	label = gtk_label_new(_("Hostname (optional)"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	/* server & port */	box = gtk_hbox_new(FALSE, 0);	gtk_table_attach(GTK_TABLE(table), box, 1, 2, 0, 1,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	pw.smtp_eserver = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(box), pw.smtp_eserver, TRUE, TRUE, 0);	pw.smtp_eport = gtk_entry_new_with_max_length(6);	gtk_widget_set_usize(pw.smtp_eport, 60, -2);	gtk_box_pack_end(GTK_BOX(box), pw.smtp_eport, FALSE, FALSE, 0);	label = gtk_label_new(_("  Port:"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_box_pack_end(GTK_BOX(box), label, FALSE, FALSE, 4);	/* E-Mail */	pw.smtp_email = gtk_entry_new();	gtk_table_attach(GTK_TABLE(table), pw.smtp_email, 1, 2, 1, 2,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	/* Hostname */	pw.smtp_ehostname = gtk_entry_new();	gtk_table_attach(GTK_TABLE(table), pw.smtp_ehostname, 1, 2, 2, 3,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	/* load configuration data */	gtk_entry_set_text(GTK_ENTRY(pw.smtp_eserver), 			   configuration.smtp_server);	sprintf(str, "%d", (gint) configuration.smtp_port);	gtk_entry_set_text(GTK_ENTRY(pw.smtp_eport), str);	gtk_entry_set_text(GTK_ENTRY(pw.smtp_email), 			   configuration.smtp_email);	gtk_entry_set_text(GTK_ENTRY(pw.smtp_ehostname), 			   configuration.smtp_host);	/* connect to prefs_changed callback */	gtk_signal_connect(GTK_OBJECT(pw.smtp_eserver), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.smtp_eport), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.smtp_email), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.smtp_ehostname), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_widget_show_all(vbox);	return frame;}/*********************** receiving mail page ******************************//* returns the page to configure how e-mails are received */static GtkWidget *email_receive_page(void){	GtkWidget *vbox;	GtkWidget *frame;	GtkWidget *table;	GtkWidget *notebook;	GtkWidget *rb[3];		/* radio Button */	const gchar *receive_methods[] = { "pop3", "mbox", "none", NULL };	gint i;	/* each sen method is a page in notebook */	pw.mail_receive_nb = notebook = gtk_notebook_new();	gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);	gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE);	gtk_notebook_append_page( GTK_NOTEBOOK(notebook), 				  pref_mail_pop3(), NULL );	gtk_notebook_append_page( GTK_NOTEBOOK(notebook), 				  gtk_label_new("not implemented"), NULL);	gtk_notebook_append_page( GTK_NOTEBOOK(notebook), 				  gtk_label_new("can't receive mails"), NULL);	table = gtk_table_new(1, 2, FALSE);	frame = gtk_frame_new(_("Receive-Method"));	gtk_table_attach(GTK_TABLE(table), frame, 0, 1, 0, 1,			 GTK_SHRINK | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 0);	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(frame), vbox);	gtk_table_attach(GTK_TABLE(table), notebook, 1, 2, 0, 1,			 GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 5, 5);	rb[0] = gtk_radio_button_new_with_label_from_widget(NULL, 							    _("POP3"));	gtk_box_pack_start(GTK_BOX(vbox), rb[0], FALSE, FALSE, 2);	gtk_signal_connect(GTK_OBJECT(rb[0]), "toggled",			   GTK_SIGNAL_FUNC(email_receive_method_cb),			   GINT_TO_POINTER(0)); /* data is the pagenum of the						   notebook */	rb[1] = gtk_radio_button_new_with_label_from_widget(		GTK_RADIO_BUTTON(rb[0]), _("MBOX"));	gtk_box_pack_start(GTK_BOX(vbox), rb[1], FALSE, FALSE, 2);	gtk_signal_connect(GTK_OBJECT(rb[1]), "toggled",			   GTK_SIGNAL_FUNC(email_receive_method_cb),			   GINT_TO_POINTER(1));	rb[2] = gtk_radio_button_new_with_label_from_widget(		GTK_RADIO_BUTTON(rb[1]), _("none"));	gtk_box_pack_start(GTK_BOX(vbox), rb[2], FALSE, FALSE, 2);	gtk_signal_connect(GTK_OBJECT(rb[2]), "toggled",			   GTK_SIGNAL_FUNC(email_receive_method_cb),			   GINT_TO_POINTER(2));	for(i = 0; receive_methods[i] != NULL; i++)		if(strcmp(receive_methods[i], 			  configuration.mail_receive_method) == 0) {			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(rb[i]),						     TRUE);			break;		}	gtk_widget_show_all(table);	gtk_notebook_set_page(GTK_NOTEBOOK(notebook),i);	return table;}/****************************** set_font page ********************************//* returns the page to configure the textfont */static GtkWidget *set_font_page(void){	GtkWidget *hbox, *vbox;	GtkWidget *label;	GtkWidget *button;	GtkWidget *frame;	frame = gtk_frame_new(_("Font - Settings"));	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(frame), vbox);	hbox = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);	label = gtk_label_new("Textfont:");	gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);	pw.font_entry = gtk_entry_new();	gtk_entry_set_text(GTK_ENTRY(pw.font_entry), configuration.fontname);	gtk_box_pack_start(GTK_BOX(hbox), pw.font_entry, FALSE, FALSE, 5);	button = gtk_button_new_with_label("Browse");	gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 5);	gtk_signal_connect (GTK_OBJECT (button), "clicked",			    GTK_SIGNAL_FUNC (font_sel_open_cb), NULL);	gtk_widget_show_all(frame);	return frame;}/* preferences frame for POP3 in the receive configuration */static GtkWidget *pref_mail_pop3(void){	GtkWidget *vbox, *box;	GtkWidget *table;	GtkWidget *label;	GtkAdjustment *adj;	GtkWidget * frame;	gchar str[8];	frame = gtk_frame_new(_("POP3 - Settings"));	vbox = gtk_vbox_new(FALSE, 0);	gtk_container_add(GTK_CONTAINER(frame), vbox);	table = gtk_table_new(2, 3, FALSE);	gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 5);	/* labels */	label = gtk_label_new(_("Server"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	label = gtk_label_new(_("Username"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	label = gtk_label_new(_("Password"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);	gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_SHRINK,			 GTK_SHRINK, 5, 2);	/* server & port */	box = gtk_hbox_new(FALSE, 0);	gtk_table_attach(GTK_TABLE(table), box, 1, 2, 0, 1,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	pw.pop3_eserver = gtk_entry_new();	gtk_box_pack_start(GTK_BOX(box), pw.pop3_eserver, TRUE, TRUE, 0);	pw.pop3_eport = gtk_entry_new_with_max_length(6);        /* why do i have to do this ? */	gtk_widget_set_usize(pw.pop3_eport, 60, -2);  	gtk_box_pack_end(GTK_BOX(box), pw.pop3_eport, FALSE, FALSE, 0);	label = gtk_label_new(_("  Port:"));	gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);	gtk_box_pack_end(GTK_BOX(box), label, FALSE, FALSE, 4);	/* Username */	pw.pop3_euser = gtk_entry_new();	gtk_table_attach(GTK_TABLE(table), pw.pop3_euser, 1, 2, 1, 2,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	/* Password */	pw.pop3_epasswd = gtk_entry_new();	gtk_entry_set_visibility(GTK_ENTRY(pw.pop3_epasswd), FALSE);	gtk_table_attach(GTK_TABLE(table), pw.pop3_epasswd, 1, 2, 2, 3,			 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 5, 2);	/* Some Flags */	box = gtk_hbox_new(FALSE, 0);	gtk_box_pack_start(GTK_BOX(vbox), box, FALSE, FALSE, 0);	pw.pop3_cbcheck=gtk_check_button_new_with_label(_("check mail every"));	gtk_box_pack_start(GTK_BOX(box), pw.pop3_cbcheck, FALSE, FALSE, 0);	adj = (GtkAdjustment *) gtk_adjustment_new(2, 1, 60, 1, 1, 0);	pw.pop3_sbcheck_period = gtk_spin_button_new(adj, 0.0, 0);	gtk_spin_button_set_wrap(GTK_SPIN_BUTTON(pw.pop3_sbcheck_period), 				 TRUE);	gtk_box_pack_start(GTK_BOX(box), pw.pop3_sbcheck_period, 			   FALSE, TRUE, 0);	label = gtk_label_new(_("minutes"));	gtk_box_pack_start(GTK_BOX(box), label, FALSE, TRUE, 0);	pw.pop3_cbstore_passwd = 		gtk_check_button_new_with_label(_("Store Password"));	gtk_box_pack_start(GTK_BOX(vbox), pw.pop3_cbstore_passwd, 			   FALSE, FALSE, 0);	pw.pop3_cbdelete = gtk_check_button_new_with_label(		_("delete messages from gsms"));	gtk_box_pack_start(GTK_BOX(vbox), pw.pop3_cbdelete, FALSE, FALSE, 0);	/* load configuration data */	gtk_entry_set_text(GTK_ENTRY(pw.pop3_eserver), 			   configuration.pop3_server);	sprintf(str, "%d", (gint) configuration.pop3_port);	gtk_entry_set_text(GTK_ENTRY(pw.pop3_eport), str);	gtk_entry_set_text(GTK_ENTRY(pw.pop3_euser), 			   configuration.pop3_user);	gtk_entry_set_text(GTK_ENTRY(pw.pop3_epasswd), 			   configuration.pop3_passwd);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw.pop3_cbcheck),				     configuration.pop3_check > 0);	gtk_spin_button_set_value(GTK_SPIN_BUTTON(pw.pop3_sbcheck_period),				  (gfloat) ABS(configuration.pop3_check));	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw.pop3_cbstore_passwd),				     configuration.pop3_store);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(pw.pop3_cbdelete),				     configuration.pop3_delete);	/* connect to prefs_changed callback */	gtk_signal_connect(GTK_OBJECT(pw.pop3_eserver), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_eport), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_euser), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_epasswd), "changed",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_cbcheck), "toggled",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect (GTK_OBJECT (adj), "value_changed",			    GTK_SIGNAL_FUNC (prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_cbstore_passwd), "toggled",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_signal_connect(GTK_OBJECT(pw.pop3_cbdelete), "toggled",			   GTK_SIGNAL_FUNC(prefs_changed_cb), NULL);	gtk_widget_show_all(vbox);	return frame;}/*************************** callbacks ***********************************/static voidnetwork_proxy_enable_cb(GtkToggleButton * togglebutton, gpointer user_data){	if (gtk_toggle_button_get_active(togglebutton)) {		gtk_widget_set_sensitive(GTK_WIDGET(pw.net_ehttp_proxy), TRUE);		gtk_widget_set_sensitive(GTK_WIDGET(pw.net_ehttp_proxy_port), 					 TRUE);	} else {		gtk_widget_set_sensitive(GTK_WIDGET(pw.net_ehttp_proxy),FALSE);		gtk_widget_set_sensitive(GTK_WIDGET(pw.net_ehttp_proxy_port),					 FALSE);	}	prefs_changed_cb(NULL, NULL);}/* callback: if one of the radiobuttons in sennd mail is pressed */static voidemail_send_method_cb(GtkToggleButton * togglebutton, gpointer user_data){	if (gtk_toggle_button_get_active(togglebutton))		gtk_notebook_set_page(GTK_NOTEBOOK(pw.mail_send_nb),				      GPOINTER_TO_INT(user_data));	prefs_changed_cb(NULL, NULL);}/* callback: if one of the radiobuttons in receive mail is pressed */static voidemail_receive_method_cb(GtkToggleButton * togglebutton, gpointer user_data){	if (gtk_toggle_button_get_active(togglebutton))		gtk_notebook_set_page(GTK_NOTEBOOK(pw.mail_receive_nb),				      GPOINTER_TO_INT(user_data));	prefs_changed_cb(NULL, NULL);}/* this event is called if something in the preferences gets changed */static voidprefs_changed_cb (GtkWidget *widget, gpointer data){	if(pw.propertybox != NULL)		gnome_property_box_changed(			GNOME_PROPERTY_BOX (pw.propertybox));}static voidapply_cb (GnomePropertyBox *pbox, gint page, gpointer data){	if(page == -1) {		save_to_configuration();		pref_save();	}}static voidfont_sel_open_cb (GtkWidget *button, gpointer user_data){        pw.fontsel = gtk_font_selection_dialog_new ("Select text font");        gtk_font_selection_dialog_set_font_name(GTK_FONT_SELECTION_DIALOG(pw.fontsel),                                                configuration.fontname);        gtk_signal_connect (GTK_OBJECT (GTK_FONT_SELECTION_DIALOG(pw.fontsel)->                                        ok_button),                            "clicked", GTK_SIGNAL_FUNC (set_font_cb), NULL);            /* Ensure that the dialog box is destroyed when the user clicks a button. */           gtk_signal_connect_object (GTK_OBJECT (GTK_FONT_SELECTION_DIALOG(pw.fontsel)                                               ->ok_button),                                   "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy),                                   (gpointer) pw.fontsel);         gtk_signal_connect_object (GTK_OBJECT (GTK_FONT_SELECTION_DIALOG(pw.fontsel)                                               ->cancel_button),                                   "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy),                                   (gpointer) pw.fontsel);	gtk_window_set_modal( GTK_WINDOW(pw.fontsel), TRUE);        gtk_widget_show(pw.fontsel);}static voidset_font_cb(GtkFontSelectionDialog *selector, gpointer user_data){	gchar *fontname;        	fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG							   (pw.fontsel));	gtk_entry_set_text(GTK_ENTRY(pw.font_entry),fontname);                                		prefs_changed_cb(NULL, NULL);}

⌨️ 快捷键说明

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