static void prefs_themes_create_widget(PrefsPage *page, GtkWindow *window, gpointer data) { ThemesPage *prefs_themes = (ThemesPage *)page; ThemesData *tdata = prefs_themes_data; GtkWidget *vbox1; GtkWidget *frame1; GtkWidget *vbox2; GtkWidget *hbox3; GtkWidget *menu_themes; GtkWidget *btn_install; GtkWidget *btn_more; GtkWidget *label_global_status; GtkWidget *frame_info; GtkWidget *table1; GtkWidget *label1; GtkWidget *label2; GtkWidget *label3; GtkWidget *label_name; GtkWidget *label_author; GtkWidget *label_url; GtkWidget *label4; GtkWidget *label_status; GtkWidget *frame_preview; GtkWidget *hbox1; GtkWidget *icon_1; GtkWidget *icon_2; GtkWidget *icon_3; GtkWidget *icon_4; GtkWidget *icon_5; GtkWidget *icon_6; GtkWidget *icon_7; GtkWidget *frame_buttons; GtkWidget *hbuttonbox1; GtkWidget *btn_remove; GtkCellRenderer *renderer; vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); gtk_widget_show (vbox1); vbox2 = gtkut_get_options_frame(vbox1, &frame1, _("Selector")); hbox3 = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox3); gtk_box_pack_start (GTK_BOX (vbox2), hbox3, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox3), 5); menu_themes = gtk_combo_box_new(); gtk_widget_show (menu_themes); gtk_box_pack_start (GTK_BOX (hbox3), menu_themes, FALSE, FALSE, 0); btn_install = gtk_button_new_with_label (_("Install new...")); gtk_widget_show (btn_install); gtk_box_pack_start (GTK_BOX (hbox3), btn_install, FALSE, FALSE, 0); gtkut_widget_set_can_default (btn_install, TRUE); btn_more = gtkut_get_link_btn((GtkWidget *)window, THEMES_URI, _("Get more...")); gtk_widget_show (btn_more); gtk_box_pack_start (GTK_BOX (hbox3), btn_more, FALSE, FALSE, 0); label_global_status = gtk_label_new (""); gtk_widget_show (label_global_status); gtk_box_pack_start (GTK_BOX (vbox2), label_global_status, FALSE, FALSE, 0); gtk_label_set_justify (GTK_LABEL (label_global_status), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label_global_status), 0, 0.5); gtk_misc_set_padding (GTK_MISC (label_global_status), 6, 0); PACK_FRAME(vbox1, frame_info, _("Information")); table1 = gtk_table_new (4, 2, FALSE); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (frame_info), table1); label1 = gtk_label_new (_("Name: ")); gtk_widget_show (label1); gtk_table_attach (GTK_TABLE (table1), label1, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 8, 2); gtk_label_set_justify (GTK_LABEL (label1), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5); label2 = gtk_label_new (_("Author: ")); gtk_widget_show (label2); gtk_table_attach (GTK_TABLE (table1), label2, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 8, 2); gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_LEFT); gtk_misc_set_alignment (GTK_MISC (label2), 0, 0.5); label3 = gtk_label_new (_("URL:")); gtk_widget_show (label3); gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 8, 2); gtk_misc_set_alignment (GTK_MISC (label3), 0, 0.5); label_name = gtk_label_new (""); gtk_widget_show (label_name); gtk_table_attach (GTK_TABLE (table1), label_name, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_name), 0, 0.5); label_author = gtk_label_new (""); gtk_widget_show (label_author); gtk_table_attach (GTK_TABLE (table1), label_author, 1, 2, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_author), 0, 0.5); label_url = gtk_label_new (""); gtk_widget_show (label_url); gtk_table_attach (GTK_TABLE (table1), label_url, 1, 2, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_url), 0, 0.5); label4 = gtk_label_new (_("Status:")); gtk_widget_show (label4); gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 8, 2); gtk_misc_set_alignment (GTK_MISC (label4), 0, 0.5); label_status = gtk_label_new (""); gtk_widget_show (label_status); gtk_table_attach (GTK_TABLE (table1), label_status, 1, 2, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment (GTK_MISC (label_status), 0, 0.5); PACK_FRAME(vbox1, frame_preview, _("Preview")); hbox1 = gtk_hbox_new (FALSE, 0); gtk_widget_show (hbox1); gtk_container_add (GTK_CONTAINER (frame_preview), hbox1); icon_1 = gtk_image_new(); gtk_widget_show (icon_1); gtk_box_pack_start (GTK_BOX (hbox1), icon_1, TRUE, TRUE, 2); gtk_misc_set_padding (GTK_MISC (icon_1), 0, 5); icon_2 = gtk_image_new(); gtk_widget_show (icon_2); gtk_box_pack_start (GTK_BOX (hbox1), icon_2, TRUE, TRUE, 2); gtk_misc_set_padding (GTK_MISC (icon_2), 0, 5); icon_3 = gtk_image_new(); gtk_widget_show (icon_3); gtk_box_pack_start (GTK_BOX (hbox1), icon_3, TRUE, TRUE, 2); gtk_misc_set_padding (GTK_MISC (icon_3), 0, 5); icon_4 = gtk_image_new(); gtk_widget_show (icon_4); gtk_box_pack_start (GTK_BOX (hbox1), icon_4, TRUE, TRUE, 2); gtk_misc_set_padding (GTK_MISC (icon_4), 0, 5); icon_5 = gtk_image_new(); gtk_widget_show (icon_5); gtk_box_pack_start (GTK_BOX (hbox1), icon_5, TRUE, TRUE, 2); gtk_misc_set_padding (GTK_MISC (icon_5), 0, 5); icon_6 = gtk_image_new(); gtk_widget_show (icon_6); gtk_box_pack_start (GTK_BOX (hbox1), icon_6, TRUE, TRUE, 0); gtk_misc_set_padding (GTK_MISC (icon_6), 0, 5); icon_7 = gtk_image_new(); gtk_widget_show (icon_7); gtk_box_pack_start (GTK_BOX (hbox1), icon_7, TRUE, TRUE, 0); gtk_misc_set_padding (GTK_MISC (icon_7), 0, 5); PACK_FRAME(vbox1, frame_buttons, _("Actions")); hbuttonbox1 = gtk_hbutton_box_new (); gtk_widget_show (hbuttonbox1); gtk_container_add (GTK_CONTAINER (frame_buttons), hbuttonbox1); gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox1), 5); gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_START); gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 5); btn_remove = gtk_button_new_with_label (_("Remove")); gtk_widget_show (btn_remove); gtk_container_add (GTK_CONTAINER (hbuttonbox1), btn_remove); gtkut_widget_set_can_default (btn_remove, TRUE); g_signal_connect(G_OBJECT(btn_remove), "clicked", G_CALLBACK(prefs_themes_btn_remove_clicked_cb), NULL); g_signal_connect(G_OBJECT(btn_install), "clicked", G_CALLBACK(prefs_themes_btn_install_clicked_cb), NULL); prefs_themes->window = GTK_WIDGET(window); prefs_themes->name = label_name; prefs_themes->author = label_author; prefs_themes->url = label_url; prefs_themes->status = label_status; prefs_themes->global = label_global_status; prefs_themes->icons[0] = icon_1; prefs_themes->icons[1] = icon_2; prefs_themes->icons[2] = icon_3; prefs_themes->icons[3] = icon_4; prefs_themes->icons[4] = icon_5; prefs_themes->icons[5] = icon_6; prefs_themes->icons[6] = icon_7; prefs_themes->btn_remove = btn_remove; prefs_themes->btn_install = btn_install; prefs_themes->btn_more = btn_more; prefs_themes->op_menu = menu_themes; prefs_themes->page.widget = vbox1; prefs_themes_set_themes_menu(GTK_COMBO_BOX(menu_themes), tdata); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(menu_themes), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(menu_themes), renderer, "text", 0, NULL); prefs_themes_get_theme_info(tdata); prefs_themes_display_global_stats(tdata); }
static void prefs_gpg_account_create_widget_func(PrefsPage *_page, GtkWindow *window, gpointer data) { struct GPGAccountPage *page = (struct GPGAccountPage *) _page; PrefsAccount *account = (PrefsAccount *) data; GPGAccountConfig *config; GtkWidget *vbox; GtkWidget *frame1; GtkWidget *vbox2; GtkWidget *hbox; GSList *key_group = NULL; GtkWidget *key_default; GtkWidget *key_by_from; GtkWidget *key_custom; GtkWidget *keyid_label; GtkWidget *keyid; GtkWidget *image; GtkWidget *new_key_label; GtkWidget *new_key_btn; GtkWidget *new_key_box; vbox = gtk_vbox_new(FALSE, VSPACING); gtk_container_set_border_width (GTK_CONTAINER (vbox), VBOX_BORDER); gtk_widget_show(vbox); vbox2 = gtkut_get_options_frame(vbox, &frame1, _("Sign key")); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); key_default = gtk_radio_button_new_with_label(key_group, _("Use default GnuPG key")); key_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(key_default)); gtk_widget_show(key_default); gtk_box_pack_start(GTK_BOX(hbox), key_default, FALSE, FALSE, 0); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); key_by_from = gtk_radio_button_new_with_label(key_group, _("Select key by your email address")); key_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(key_by_from)); gtk_widget_show(key_by_from); gtk_box_pack_start(GTK_BOX(hbox), key_by_from, FALSE, FALSE, 0); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); key_custom = gtk_radio_button_new_with_label(key_group, _("Specify key manually")); key_group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(key_custom)); gtk_widget_show(key_custom); gtk_box_pack_start(GTK_BOX(hbox), key_custom, FALSE, FALSE, 0); hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox2), hbox, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); keyid_label = gtk_label_new(_("User or key ID:")); gtk_widget_show(keyid_label); gtk_label_set_justify(GTK_LABEL(keyid_label), GTK_JUSTIFY_LEFT); gtk_box_pack_start(GTK_BOX(hbox), keyid_label, FALSE, FALSE, 0); keyid = gtk_entry_new(); gtk_widget_show(keyid); gtk_box_pack_start(GTK_BOX(hbox), keyid, FALSE, FALSE, 0); config = prefs_gpg_account_get_config(account); switch (config->sign_key) { case SIGN_KEY_DEFAULT: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(key_default), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(keyid_label), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(keyid), FALSE); break; case SIGN_KEY_BY_FROM: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(key_by_from), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(keyid_label), FALSE); gtk_widget_set_sensitive(GTK_WIDGET(keyid), FALSE); break; case SIGN_KEY_CUSTOM: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(key_custom), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(keyid_label), TRUE); gtk_widget_set_sensitive(GTK_WIDGET(keyid), TRUE); break; } hbox = gtk_hbox_new (FALSE, 5); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); new_key_box = gtk_hbox_new(FALSE, 6); gtk_widget_show(new_key_box); gtk_box_pack_start(GTK_BOX(hbox), new_key_box, FALSE, FALSE, 0); image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_SMALL_TOOLBAR); gtk_box_pack_start(GTK_BOX(new_key_box), image, FALSE, FALSE, 0); new_key_label = gtk_label_new( _("No secret key found.")); gtk_box_pack_start(GTK_BOX(new_key_box), new_key_label, FALSE, FALSE, 0); new_key_btn = gtk_button_new_with_label(_("Generate a new key pair")); gtk_widget_show(new_key_btn); gtk_box_pack_start(GTK_BOX(hbox), new_key_btn, FALSE, FALSE, 0); if (config->sign_key_id != NULL) gtk_entry_set_text(GTK_ENTRY(keyid), config->sign_key_id); g_signal_connect(G_OBJECT(key_custom), "toggled", G_CALLBACK(key_custom_toggled), page); g_signal_connect(G_OBJECT(new_key_btn), "clicked", G_CALLBACK(new_key_clicked), page); page->key_default = key_default; page->key_by_from = key_by_from; page->key_custom = key_custom; page->keyid = keyid; page->keyid_label = keyid_label; page->new_key_box = new_key_box; page->page.widget = vbox; page->account = account; prefs_gpg_update_sens(page); }
static void prefs_gpg_create_widget_func(PrefsPage *_page, GtkWindow *window, gpointer data) { struct GPGPage *page = (struct GPGPage *) _page; struct GPGConfig *config; GtkWidget *checkbtn_use_gpg_agent; GtkWidget *checkbtn_passphrase_grab; GtkWidget *checkbtn_store_passphrase; GtkWidget *checkbtn_auto_check_signatures; GtkWidget *checkbtn_autocompletion; GtkWidget *checkbtn_gpg_warning; GtkWidget *hbox1, *hbox2; GtkWidget *vbox1, *vbox2; GtkWidget *label_gpg_path; GtkWidget *label_expire1; GtkAdjustment *spinbtn_store_passphrase_adj; GtkWidget *spinbtn_store_passphrase; GtkWidget *label_expire2; GtkWidget *frame_passphrase; GtkWidget *gpg_path, *gpg_path_btn; vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0); PACK_CHECK_BUTTON (vbox2, checkbtn_auto_check_signatures, _("Automatically check signatures")); PACK_CHECK_BUTTON (vbox2, checkbtn_autocompletion, _("Use keyring for address autocompletion")); vbox2 = gtkut_get_options_frame(vbox1, &frame_passphrase, _("Passphrase")); PACK_CHECK_BUTTON (vbox2, checkbtn_use_gpg_agent, _("Use gpg-agent to manage passwords")); if (saved_gpg_agent_info == NULL) gtk_widget_set_sensitive(checkbtn_use_gpg_agent, FALSE); PACK_CHECK_BUTTON (vbox2, checkbtn_store_passphrase, _("Store passphrase in memory")); SET_TOGGLE_SENSITIVITY_REVERSE(checkbtn_use_gpg_agent, checkbtn_store_passphrase); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); SET_TOGGLE_SENSITIVITY_REVERSE(checkbtn_use_gpg_agent, hbox1); label_expire1 = gtk_label_new(_("Expire after")); gtk_widget_show (label_expire1); gtk_box_pack_start (GTK_BOX (hbox1), label_expire1, FALSE, FALSE, 0); spinbtn_store_passphrase_adj = GTK_ADJUSTMENT(gtk_adjustment_new(1, 0, 1440, 1, 10, 0)); spinbtn_store_passphrase = gtk_spin_button_new(GTK_ADJUSTMENT (spinbtn_store_passphrase_adj), 1, 0); gtk_widget_show(spinbtn_store_passphrase); gtk_box_pack_start(GTK_BOX(hbox1), spinbtn_store_passphrase, FALSE, FALSE, 0); gtk_widget_set_size_request(spinbtn_store_passphrase, 64, -1); CLAWS_SET_TIP(spinbtn_store_passphrase, _("Setting to '0' will store the passphrase for the whole session")); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON (spinbtn_store_passphrase), TRUE); label_expire2 = gtk_label_new(_("minute(s)")); gtk_widget_show(label_expire2); gtk_box_pack_start(GTK_BOX(hbox1), label_expire2, FALSE, FALSE, 0); gtk_misc_set_alignment(GTK_MISC(label_expire2), 0.0, 0.5); SET_TOGGLE_SENSITIVITY (checkbtn_store_passphrase, label_expire1); SET_TOGGLE_SENSITIVITY (checkbtn_store_passphrase, spinbtn_store_passphrase); SET_TOGGLE_SENSITIVITY (checkbtn_store_passphrase, label_expire2); PACK_CHECK_BUTTON (vbox2, checkbtn_passphrase_grab, _("Grab input while entering a passphrase")); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0); PACK_CHECK_BUTTON (vbox2, checkbtn_gpg_warning, _("Display warning on start-up if GnuPG doesn't work")); hbox2 = gtk_hbox_new(FALSE, 6); label_gpg_path = gtk_label_new(_("Path to GnuPG executable")); gtk_box_pack_start(GTK_BOX(hbox2), label_gpg_path, FALSE, FALSE, 0); gpg_path = gtk_entry_new(); gtk_box_pack_start(GTK_BOX(hbox2), gpg_path, TRUE, TRUE, 0); CLAWS_SET_TIP(gpg_path, _("If left blank the location of the GnuPG executable will be automatically determined.")); gpg_path_btn = gtkut_get_browse_file_btn(_("Bro_wse")); gtk_box_pack_start(GTK_BOX(hbox2), gpg_path_btn, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(gpg_path_btn), "clicked", G_CALLBACK(gpg_path_browse_cb), gpg_path); pref_set_entry_from_pref(GTK_ENTRY(gpg_path), prefs_gpg.gpg_path); gtk_box_pack_start(GTK_BOX(vbox2), hbox2, FALSE, FALSE, 0); gtk_widget_show_all(vbox1); config = prefs_gpg_get_config(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_auto_check_signatures), config->auto_check_signatures); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_autocompletion), config->autocompletion); if (!g_getenv("GPG_AGENT_INFO")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_use_gpg_agent), FALSE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_use_gpg_agent), config->use_gpg_agent); if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(checkbtn_use_gpg_agent))) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_store_passphrase), config->store_passphrase); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_store_passphrase), (float) config->store_passphrase_timeout); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_passphrase_grab), config->passphrase_grab); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_gpg_warning), config->gpg_warning); gtk_entry_set_text(GTK_ENTRY(gpg_path), config->gpg_path); page->checkbtn_auto_check_signatures = checkbtn_auto_check_signatures; page->checkbtn_autocompletion = checkbtn_autocompletion; page->checkbtn_store_passphrase = checkbtn_store_passphrase; page->spinbtn_store_passphrase = spinbtn_store_passphrase; page->checkbtn_passphrase_grab = checkbtn_passphrase_grab; page->checkbtn_gpg_warning = checkbtn_gpg_warning; page->checkbtn_use_gpg_agent = checkbtn_use_gpg_agent; page->gpg_path = gpg_path; page->page.widget = vbox1; }
static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window, gpointer data) { SummariesPage *prefs_summaries = (SummariesPage *) _page; GtkWidget *vbox1; GtkWidget *checkbtn_transhdr; GtkWidget *hbox0; GtkWidget *optmenu_folder_unread; GtkWidget *hbox1; GtkWidget *label_ng_abbrev; GtkWidget *spinbtn_ng_abbrev_len; GtkAdjustment *spinbtn_ng_abbrev_len_adj; GtkWidget *vbox2; GtkWidget *vbox3; GtkWidget *checkbtn_useaddrbook; GtkWidget *checkbtn_show_tooltips; GtkWidget *checkbtn_threadsubj; GtkWidget *label_datefmt; GtkWidget *button_datefmt; GtkWidget *entry_datefmt; GtkWidget *hbox_dispitem; GtkWidget *button_dispitem; GtkWidget *hbox2; GtkWidget *checkbtn_reopen_last_folder; GtkWidget *optmenu_always_show_msg; GtkWidget *spinbtn_mark_as_read_delay; GtkAdjustment *spinbtn_mark_as_read_delay_adj; GtkWidget *checkbtn_immedexec; GtkWidget *checkbtn_ask_mark_all_read; GtkWidget *label, *label_fill; GtkListStore *menu; GtkTreeIter iter; GtkWidget *optmenu_nextunreadmsgdialog; GtkWidget *folderview_frame; GtkWidget *summaryview_frame; GtkWidget *button_edit_actions; GtkWidget *radio_mark_as_read_on_select; GtkWidget *radio_mark_as_read_on_new_win; GtkWidget *optmenu_sort_key; GtkWidget *optmenu_sort_type; vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); vbox2 = gtkut_get_options_frame(vbox1, &folderview_frame, _("Folder list")); hbox0 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox0); gtk_box_pack_start(GTK_BOX (vbox2), hbox0, FALSE, FALSE, 0); label = gtk_label_new (_("Display message count next to folder name")); gtk_widget_show (label); gtk_box_pack_start(GTK_BOX(hbox0), label, FALSE, FALSE, 0); optmenu_folder_unread = gtkut_sc_combobox_create(NULL, FALSE); menu = GTK_LIST_STORE(gtk_combo_box_get_model( GTK_COMBO_BOX(optmenu_folder_unread))); gtk_widget_show (optmenu_folder_unread); COMBOBOX_ADD (menu, _("No"), 0); COMBOBOX_ADD (menu, _("Unread messages"), 1); COMBOBOX_ADD (menu, _("Unread and Total messages"), 2); gtk_box_pack_start(GTK_BOX(hbox0), optmenu_folder_unread, FALSE, FALSE, 0); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); gtk_box_pack_start(GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); PACK_CHECK_BUTTON (vbox2, checkbtn_reopen_last_folder, _("Open last opened folder at start-up")); label_ng_abbrev = gtk_label_new (_("Abbreviate newsgroup names longer than")); gtk_widget_show (label_ng_abbrev); gtk_box_pack_start (GTK_BOX (hbox1), label_ng_abbrev, FALSE, FALSE, 0); spinbtn_ng_abbrev_len_adj = GTK_ADJUSTMENT(gtk_adjustment_new (16, 0, 999, 1, 10, 0)); spinbtn_ng_abbrev_len = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_ng_abbrev_len_adj), 1, 0); gtk_widget_show (spinbtn_ng_abbrev_len); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_ng_abbrev_len, FALSE, FALSE, 0); gtk_widget_set_size_request (spinbtn_ng_abbrev_len, 56, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_ng_abbrev_len), TRUE); label_ng_abbrev = gtk_label_new (_("letters")); gtk_widget_show (label_ng_abbrev); gtk_box_pack_start (GTK_BOX (hbox1), label_ng_abbrev, FALSE, FALSE, 0); hbox_dispitem = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox_dispitem); gtk_box_pack_start(GTK_BOX(vbox2), hbox_dispitem, FALSE, TRUE, 0); label = gtk_label_new(_("Displayed columns")); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox_dispitem), label, FALSE, FALSE, 0); button_dispitem = gtk_button_new_from_stock(GTK_STOCK_EDIT); gtk_widget_show (button_dispitem); gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_dispitem), "clicked", G_CALLBACK (prefs_folder_column_open), NULL); vbox2 = gtkut_get_options_frame(vbox1, &summaryview_frame, _("Message list")); hbox1 = gtk_hbox_new(FALSE, 10); gtk_widget_show(hbox1); gtk_box_pack_start(GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); label = gtk_label_new(_("Sort new folders by")); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); optmenu_sort_key = gtkut_sc_combobox_create(NULL, FALSE); menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_key))); gtk_widget_show(optmenu_sort_key); COMBOBOX_ADD(menu, _("Number"), SORT_BY_NUMBER); COMBOBOX_ADD(menu, _("Size"), SORT_BY_SIZE); COMBOBOX_ADD(menu, _("Date"), SORT_BY_DATE); COMBOBOX_ADD(menu, _("Thread date"), SORT_BY_THREAD_DATE); COMBOBOX_ADD(menu, _("From"), SORT_BY_FROM); COMBOBOX_ADD(menu, _("To"), SORT_BY_TO); COMBOBOX_ADD(menu, _("Subject"), SORT_BY_SUBJECT); COMBOBOX_ADD(menu, _("Color label"), SORT_BY_LABEL); COMBOBOX_ADD(menu, _("Tag"), SORT_BY_TAGS); COMBOBOX_ADD(menu, _("Mark"), SORT_BY_MARK); COMBOBOX_ADD(menu, _("Status"), SORT_BY_STATUS); COMBOBOX_ADD(menu, _("Attachment"), SORT_BY_MIME); COMBOBOX_ADD(menu, _("Score"), SORT_BY_SCORE); COMBOBOX_ADD(menu, _("Locked"), SORT_BY_LOCKED); COMBOBOX_ADD(menu, _("Don't sort"), SORT_BY_NONE); gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_key, FALSE, FALSE, 0); optmenu_sort_type = gtkut_sc_combobox_create(NULL, FALSE); menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_type))); gtk_widget_show(optmenu_sort_type); COMBOBOX_ADD(menu, _("Ascending"), SORT_ASCENDING); COMBOBOX_ADD(menu, _("Descending"), SORT_DESCENDING); gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_type, FALSE, FALSE, 0); hbox1 = gtk_hbox_new (FALSE, 10); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0); button_edit_actions = gtk_button_new_with_label(_("Set default selection when entering a folder")); gtk_widget_show (button_edit_actions); gtk_box_pack_start (GTK_BOX (hbox1), button_edit_actions, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (button_edit_actions), "clicked", G_CALLBACK (prefs_summary_open_open), NULL); /* Next Unread Message Dialog */ hbox1 = gtk_hbox_new (FALSE, 10); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); label = gtk_label_new (_("Show \"no unread (or new) message\" dialog")); gtk_widget_show (label); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); optmenu_nextunreadmsgdialog = gtkut_sc_combobox_create(NULL, FALSE); menu = GTK_LIST_STORE(gtk_combo_box_get_model( GTK_COMBO_BOX(optmenu_nextunreadmsgdialog))); gtk_widget_show (optmenu_nextunreadmsgdialog); COMBOBOX_ADD (menu, _("Always"), NEXTUNREADMSGDIALOG_ALWAYS); COMBOBOX_ADD (menu, _("Assume 'Yes'"), NEXTUNREADMSGDIALOG_ASSUME_YES); COMBOBOX_ADD (menu, _("Assume 'No'"), NEXTUNREADMSGDIALOG_ASSUME_NO); gtk_box_pack_start(GTK_BOX(hbox1), optmenu_nextunreadmsgdialog, FALSE, FALSE, 0); /* Open message on select policy */ hbox1 = gtk_hbox_new (FALSE, 10); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0); label = gtk_label_new (_("Open message when selected")); gtk_widget_show (label); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); optmenu_always_show_msg = gtkut_sc_combobox_create(NULL, FALSE); menu = GTK_LIST_STORE(gtk_combo_box_get_model( GTK_COMBO_BOX(optmenu_always_show_msg))); gtk_widget_show (optmenu_always_show_msg); COMBOBOX_ADD (menu, _("Never"), OPENMSG_REQUEST_ONLY); COMBOBOX_ADD (menu, _("Always"), OPENMSG_ALWAYS); COMBOBOX_ADD (menu, _("When message view is visible"), OPENMSG_WHEN_VIEW_VISIBLE); gtk_box_pack_start(GTK_BOX(hbox1), optmenu_always_show_msg, FALSE, FALSE, 0); PACK_CHECK_BUTTON (vbox2, checkbtn_threadsubj, _("Thread using subject in addition to standard headers")); PACK_CHECK_BUTTON (vbox2, checkbtn_immedexec, _("Execute immediately when moving or deleting messages")); CLAWS_SET_TIP(checkbtn_immedexec, _("Defers moving, copying and deleting of messages" " until you choose 'Tools/Execute'")); vbox3 = gtkut_get_options_frame(vbox2, NULL, _("Mark message as read")); radio_mark_as_read_on_select = gtk_radio_button_new_with_label(NULL, _("when selected, after")); hbox1 = gtk_hbox_new (FALSE, 8); gtk_box_pack_start (GTK_BOX (hbox1), radio_mark_as_read_on_select, FALSE, FALSE, 0); spinbtn_mark_as_read_delay_adj = GTK_ADJUSTMENT(gtk_adjustment_new (0, 0, 60, 1, 10, 0)); spinbtn_mark_as_read_delay = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_mark_as_read_delay_adj), 1, 0); gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_mark_as_read_delay, FALSE, FALSE, 0); gtk_widget_set_size_request (spinbtn_mark_as_read_delay, 56, -1); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_mark_as_read_delay), TRUE); gtk_box_pack_start (GTK_BOX (hbox1), gtk_label_new (_("seconds")), FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0); radio_mark_as_read_on_new_win = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON(radio_mark_as_read_on_select), _("only when opened in a new window, or replied to")); gtk_box_pack_start (GTK_BOX (vbox3), radio_mark_as_read_on_new_win, FALSE, FALSE, 0); gtk_widget_show_all(vbox3); PACK_CHECK_BUTTON (vbox2, checkbtn_useaddrbook, _("Display sender using address book")); PACK_CHECK_BUTTON (vbox2, checkbtn_show_tooltips, _("Show tooltips")); hbox2 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0); label_datefmt = gtk_label_new (_("Date format")); gtk_widget_show (label_datefmt); gtk_box_pack_start (GTK_BOX (hbox2), label_datefmt, FALSE, FALSE, 0); entry_datefmt = gtk_entry_new (); gtk_widget_show (entry_datefmt); gtk_widget_set_size_request(entry_datefmt, 200, -1); gtk_box_pack_start (GTK_BOX (hbox2), entry_datefmt, FALSE, FALSE, 0); button_datefmt = gtk_button_new_from_stock(GTK_STOCK_INFO); gtk_widget_show (button_datefmt); gtk_box_pack_start (GTK_BOX (hbox2), button_datefmt, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_datefmt), "clicked", G_CALLBACK (date_format_create), NULL); label_fill = gtk_label_new(" "); gtk_box_pack_start(GTK_BOX(hbox2), label_fill, TRUE, FALSE, 0); CLAWS_SET_TIP(button_datefmt, _("Date format help")); hbox_dispitem = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox_dispitem); gtk_box_pack_start(GTK_BOX(vbox2), hbox_dispitem, FALSE, TRUE, 0); label = gtk_label_new(_("Displayed columns")); gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox_dispitem), label, FALSE, FALSE, 0); button_dispitem = gtk_button_new_from_stock(GTK_STOCK_EDIT); gtk_widget_show (button_dispitem); gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_dispitem), "clicked", G_CALLBACK (prefs_summary_column_open), NULL); PACK_CHECK_BUTTON (vbox1, checkbtn_ask_mark_all_read, _("Confirm before marking all messages in a folder as read")); PACK_CHECK_BUTTON (vbox1, checkbtn_transhdr, _("Translate header names")); CLAWS_SET_TIP(checkbtn_transhdr, _("The display of standard headers (such as 'From:', 'Subject:') " "will be translated into your language.")); hbox2 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(radio_mark_as_read_on_select), "toggled", G_CALLBACK(mark_as_read_toggled), spinbtn_mark_as_read_delay); prefs_summaries->window = GTK_WIDGET(window); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_transhdr), prefs_common.trans_hdr); combobox_select_by_data(GTK_COMBO_BOX(optmenu_folder_unread), prefs_common.display_folder_unread); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_useaddrbook), prefs_common.use_addr_book); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_show_tooltips), prefs_common.show_tooltips); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_threadsubj), prefs_common.thread_by_subject); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_ng_abbrev_len), prefs_common.ng_abbrev_len); gtk_entry_set_text(GTK_ENTRY(entry_datefmt), prefs_common.date_format?prefs_common.date_format:""); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_reopen_last_folder), prefs_common.goto_last_folder_on_startup); combobox_select_by_data(GTK_COMBO_BOX(optmenu_always_show_msg), prefs_common.always_show_msg); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_mark_as_read_on_new_win), prefs_common.mark_as_read_on_new_window); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_mark_as_read_delay), prefs_common.mark_as_read_delay); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_immedexec), prefs_common.immediate_exec); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_ask_mark_all_read), prefs_common.ask_mark_all_read); combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_key), prefs_common.default_sort_key); combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_type), prefs_common.default_sort_type); combobox_select_by_data(GTK_COMBO_BOX(optmenu_nextunreadmsgdialog), prefs_common.next_unread_msg_dialog); prefs_summaries->checkbtn_transhdr = checkbtn_transhdr; prefs_summaries->optmenu_folder_unread = optmenu_folder_unread; prefs_summaries->spinbtn_ng_abbrev_len = spinbtn_ng_abbrev_len; prefs_summaries->checkbtn_useaddrbook = checkbtn_useaddrbook; prefs_summaries->checkbtn_show_tooltips = checkbtn_show_tooltips; prefs_summaries->checkbtn_threadsubj = checkbtn_threadsubj; prefs_summaries->entry_datefmt = entry_datefmt; prefs_summaries->checkbtn_reopen_last_folder = checkbtn_reopen_last_folder; prefs_summaries->optmenu_always_show_msg = optmenu_always_show_msg; prefs_summaries->checkbtn_mark_as_read_on_newwin = radio_mark_as_read_on_new_win; prefs_summaries->spinbtn_mark_as_read_delay = spinbtn_mark_as_read_delay; prefs_summaries->checkbtn_immedexec = checkbtn_immedexec; prefs_summaries->checkbtn_ask_mark_all_read = checkbtn_ask_mark_all_read; prefs_summaries->optmenu_sort_key = optmenu_sort_key; prefs_summaries->optmenu_sort_type = optmenu_sort_type; prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog; prefs_summaries->page.widget = vbox1; }
static void addkeeper_prefs_create_widget_func(PrefsPage * _page, GtkWindow * window, gpointer data) { struct AddressKeeperPrefsPage *page = (struct AddressKeeperPrefsPage *) _page; GtkWidget *path_frame; GtkWidget *path_hbox; GtkWidget *path_vbox; GtkWidget *path_entry; GtkWidget *path_label; GtkWidget *path_button; GtkWidget *keep_frame; GtkWidget *keep_hbox; GtkWidget *keep_to_checkbox; GtkWidget *keep_cc_checkbox; GtkWidget *keep_bcc_checkbox; GtkWidget *blocked_frame; GtkWidget *blocked_vbox; GtkWidget *blocked_scrolledwin; GtkWidget *vbox; GtkTextBuffer *buffer; vbox = gtk_vbox_new(FALSE, 6); path_vbox = gtkut_get_options_frame(vbox, &path_frame, _("Address book location")); gtk_container_set_border_width(GTK_CONTAINER(path_frame), 6); path_hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(path_vbox), path_hbox, FALSE, FALSE, 0); path_label = gtk_label_new(_("Keep to folder")); gtk_box_pack_start(GTK_BOX(path_hbox), path_label, FALSE, FALSE, 0); gtk_widget_show(path_label); path_entry = gtk_entry_new(); gtk_entry_set_text(GTK_ENTRY(path_entry), addkeeperprefs.addressbook_folder); gtk_box_pack_start(GTK_BOX(path_hbox), path_entry, TRUE, TRUE, 0); gtk_widget_show(path_entry); CLAWS_SET_TIP(path_entry, _("Address book path where addresses are kept")); path_button = gtk_button_new_with_label(_("Select...")); gtk_box_pack_start(GTK_BOX(path_hbox), path_button, FALSE, FALSE, 0); #ifndef USE_NEW_ADDRBOOK g_signal_connect(G_OBJECT (path_button), "clicked", G_CALLBACK (select_addressbook_clicked_cb), path_entry); #else gtk_widget_set_sensitive(path_button, FALSE); #endif gtk_widget_show(path_button); gtk_widget_show(path_hbox); gtk_widget_show(path_vbox); page->addressbook_folder = path_entry; keep_hbox = gtkut_get_options_frame(vbox, &keep_frame, _("Fields to keep addresses from")); gtk_container_set_border_width(GTK_CONTAINER(keep_frame), 6); keep_to_checkbox = gtk_check_button_new_with_label(_("To")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keep_to_checkbox), addkeeperprefs.keep_to_addrs); gtk_box_pack_start(GTK_BOX(keep_hbox), keep_to_checkbox, FALSE, FALSE, 0); gtk_widget_show(keep_to_checkbox); CLAWS_SET_TIP(keep_to_checkbox, _("Keep addresses which appear in 'To' headers")); gtk_widget_show(keep_to_checkbox); page->keep_to_addrs_check = keep_to_checkbox; keep_cc_checkbox = gtk_check_button_new_with_label(_("Cc")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keep_cc_checkbox), addkeeperprefs.keep_cc_addrs); gtk_box_pack_start(GTK_BOX(keep_hbox), keep_cc_checkbox, FALSE, FALSE, 0); gtk_widget_show(keep_cc_checkbox); CLAWS_SET_TIP(keep_cc_checkbox, _("Keep addresses which appear in 'Cc' headers")); gtk_widget_show(keep_cc_checkbox); page->keep_cc_addrs_check = keep_cc_checkbox; keep_bcc_checkbox = gtk_check_button_new_with_label(_("Bcc")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keep_bcc_checkbox), addkeeperprefs.keep_bcc_addrs); gtk_box_pack_start(GTK_BOX(keep_hbox), keep_bcc_checkbox, FALSE, FALSE, 0); gtk_widget_show(keep_bcc_checkbox); CLAWS_SET_TIP(keep_bcc_checkbox, _("Keep addresses which appear in 'Bcc' headers")); gtk_widget_show(keep_bcc_checkbox); page->keep_bcc_addrs_check = keep_bcc_checkbox; blocked_vbox = gtkut_get_options_frame(vbox, &blocked_frame, _("Exclude addresses matching the following regular expressions (one per line)")); gtk_container_set_border_width(GTK_CONTAINER(blocked_frame), 6); page->block_matching_addrs = gtk_text_view_new(); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(page->block_matching_addrs)); gtk_text_buffer_set_text(buffer, addkeeperprefs.block_matching_addrs, -1); blocked_scrolledwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (blocked_scrolledwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (blocked_scrolledwin), GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(blocked_scrolledwin), page->block_matching_addrs); gtk_widget_set_size_request(page->block_matching_addrs, -1, 72); gtk_box_pack_start(GTK_BOX(blocked_vbox), blocked_scrolledwin, FALSE, FALSE, 0); gtk_widget_show_all(vbox); page->page.widget = vbox; }
static void create_fancy_prefs_page(PrefsPage *page, GtkWindow *window, gpointer data) { FancyPrefsPage *prefs_page = (FancyPrefsPage *) page; GtkWidget *vbox; #ifdef HAVE_LIBSOUP_GNOME GtkWidget *gnome_proxy_checkbox; #endif GtkWidget *proxy_checkbox; GtkWidget *proxy_str; GtkWidget *vbox_proxy; GtkWidget *frame_proxy; GtkWidget *frame_remote; GtkWidget *vbox_remote; GtkWidget *remote_label; GtkWidget *enable_remote_content; GtkWidget *enable_images; GtkWidget *enable_scripts; GtkWidget *enable_plugins; GtkWidget *enable_java; vbox = gtk_vbox_new(FALSE, 3); gtk_container_set_border_width(GTK_CONTAINER(vbox), VBOX_BORDER); gtk_widget_show(vbox); GtkWidget *block = gtk_hbox_new(FALSE, FALSE); vbox_proxy = gtkut_get_options_frame(vbox, &frame_proxy, _("Proxy")); #ifdef HAVE_LIBSOUP_GNOME gnome_proxy_checkbox = gtk_check_button_new_with_label(_("Use GNOME's proxy settings")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gnome_proxy_checkbox), fancy_prefs.enable_gnome_proxy); if (fancy_prefs.enable_gnome_proxy) gtk_widget_set_sensitive(proxy_checkbox, FALSE); gtk_box_pack_start(GTK_BOX(vbox_proxy), gnome_proxy_checkbox, FALSE, FALSE, 0); gtk_widget_show(gnome_proxy_checkbox); g_signal_connect(G_OBJECT(gnome_proxy_checkbox), "toggled", G_CALLBACK(prefs_disable_fancy_proxy), block); #endif proxy_checkbox = gtk_check_button_new_with_label(_("Use proxy:")); proxy_str = gtk_entry_new(); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(proxy_checkbox), fancy_prefs.enable_proxy); prefs_set_proxy_entry_sens(proxy_checkbox, GTK_ENTRY(proxy_str)); g_signal_connect(G_OBJECT(proxy_checkbox), "toggled", G_CALLBACK(prefs_set_proxy_entry_sens), proxy_str); pref_set_entry_from_pref(GTK_ENTRY(proxy_str), fancy_prefs.proxy_str); gtk_box_pack_start(GTK_BOX(block), proxy_checkbox, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(block), proxy_str, FALSE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox_proxy), block, FALSE, FALSE, 0); gtk_widget_show_all(vbox_proxy); vbox_remote = gtkut_get_options_frame(vbox, &frame_remote, _("Remote resources")); remote_label = gtk_label_new(_("Loading remote resources can lead to some privacy issues.\n" "When remote content loading is disabled, nothing will be requested\n" "from the network. Rendering of images, scripts, plugin objects or\n" "Java applets can still be enabled for content that is attached\n" "in the email.")); gtk_misc_set_alignment(GTK_MISC(remote_label), 0, 0); enable_remote_content = gtk_check_button_new_with_label(_("Enable loading of remote content")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_remote_content), fancy_prefs.enable_remote_content); gtk_box_pack_start (GTK_BOX (vbox_remote), remote_label, FALSE, FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox_remote), enable_remote_content, FALSE, FALSE, 0); gtk_widget_show_all(vbox_remote); enable_images = gtk_check_button_new_with_label(("IMAGES")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_images), fancy_prefs.enable_images); gtk_box_pack_start(GTK_BOX(vbox), enable_images, FALSE, FALSE, 0); gtk_widget_show(enable_images); enable_scripts = gtk_check_button_new_with_label("SCRIPTS"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_scripts), fancy_prefs.enable_scripts); gtk_box_pack_start(GTK_BOX(vbox), enable_scripts, FALSE, FALSE, 0); gtk_widget_show(enable_scripts); enable_java = gtk_check_button_new_with_label("JAVA"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_java), fancy_prefs.enable_java); gtk_box_pack_start(GTK_BOX(vbox), enable_java, FALSE, FALSE, 0); gtk_widget_show(enable_java); enable_plugins = gtk_check_button_new_with_label("PLUGINS"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_plugins), fancy_prefs.enable_plugins); gtk_box_pack_start(GTK_BOX(vbox), enable_plugins, FALSE, FALSE, 0); gtk_widget_show(enable_plugins); GtkWidget *hbox_ext = gtk_hbox_new(FALSE, 8); GtkWidget *open_external_label = gtk_label_new(_("When clicking on a link, by default:")); GtkWidget *optmenu_open_external = gtkut_sc_combobox_create(NULL, FALSE); GtkListStore *menu = GTK_LIST_STORE(gtk_combo_box_get_model( GTK_COMBO_BOX(optmenu_open_external))); gtk_widget_show (optmenu_open_external); GtkTreeIter iter; COMBOBOX_ADD (menu, "DEFAULT_ACTION", FALSE); COMBOBOX_ADD (menu, _("Open in external browser"), TRUE); gtk_box_pack_start(GTK_BOX(hbox_ext), open_external_label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox_ext), optmenu_open_external, FALSE, FALSE, 0); gtk_widget_show_all(hbox_ext); gtk_box_pack_start(GTK_BOX(vbox), hbox_ext, FALSE, FALSE, 0); combobox_select_by_data(GTK_COMBO_BOX(optmenu_open_external), fancy_prefs.open_external); #ifdef HAVE_LIBSOUP_GNOME prefs_page->gnome_proxy_checkbox = gnome_proxy_checkbox; #endif prefs_page->proxy_checkbox = proxy_checkbox; prefs_page->proxy_str = proxy_str; prefs_page->enable_remote_content = enable_remote_content; prefs_page->enable_images = enable_images; prefs_page->enable_scripts = enable_scripts; prefs_page->enable_plugins = enable_plugins; prefs_page->enable_java = enable_java; prefs_page->open_external = optmenu_open_external; prefs_page->page.widget = vbox; g_signal_connect(G_OBJECT(prefs_page->enable_remote_content), "toggled", G_CALLBACK(remote_content_set_labels_cb), prefs_page); remote_content_set_labels_cb(NULL, prefs_page); }
static void spamassassin_create_widget_func(PrefsPage * _page, GtkWindow * window, gpointer data) { struct SpamAssassinPage *page = (struct SpamAssassinPage *) _page; SpamAssassinConfig *config; guint i, active; GtkWidget *vbox1, *vbox2; GtkWidget *frame_transport, *table_transport, *vbox_transport; GtkWidget *hbox_spamd, *hbox_max_size, *hbox_timeout; GtkWidget *hbox_process_emails, *hbox_save_spam; GtkWidget *hbox_mark_as_read, *hbox_whitelist; GtkWidget *whitelist_ab_checkbtn; GtkWidget *whitelist_ab_folder_combo; GtkWidget *whitelist_ab_select_btn; GtkWidget *enable_sa_checkbtn; GtkWidget *transport_label; GtkWidget *transport_optmenu; GtkWidget *user_label; GtkWidget *user_entry; GtkWidget *spamd_label; GtkWidget *spamd_hostname_entry; GtkWidget *spamd_colon_label; GtkAdjustment *spamd_port_spinbtn_adj; GtkWidget *spamd_port_spinbtn; GtkWidget *spamd_socket_entry; GtkWidget *max_size_label; GtkAdjustment *max_size_spinbtn_adj; GtkWidget *max_size_spinbtn; GtkWidget *max_size_kb_label; GtkWidget *timeout_label; GtkAdjustment *timeout_spinbtn_adj; GtkWidget *timeout_spinbtn; GtkWidget *timeout_seconds_label; GtkWidget *process_emails_checkbtn; GtkWidget *save_spam_checkbtn; GtkWidget *save_spam_folder_entry; GtkWidget *save_spam_folder_select; GtkWidget *mark_as_read_checkbtn; GtkListStore *store; GtkCellRenderer *renderer; GtkTreeIter iter; vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); vbox2 = gtk_vbox_new (FALSE, 4); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0); enable_sa_checkbtn = gtk_check_button_new_with_label(_("Enable SpamAssassin plugin")); gtk_widget_show(enable_sa_checkbtn); gtk_box_pack_start(GTK_BOX(vbox2), enable_sa_checkbtn, TRUE, TRUE, 0); vbox_transport = gtkut_get_options_frame(vbox2, &frame_transport, _("Transport")); table_transport = gtk_table_new (3, 3, FALSE); gtk_widget_show (table_transport); gtk_box_pack_start(GTK_BOX(vbox_transport), table_transport, TRUE, TRUE, 0); gtk_table_set_row_spacings (GTK_TABLE (table_transport), 4); gtk_table_set_col_spacings (GTK_TABLE (table_transport), 8); transport_label = gtk_label_new(_("Type of transport")); gtk_widget_show(transport_label); gtk_table_attach (GTK_TABLE (table_transport), transport_label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify(GTK_LABEL(transport_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC(transport_label), 1, 0.5); store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_POINTER); transport_optmenu = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(transport_optmenu), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(transport_optmenu), renderer, "text", 0, NULL); gtk_widget_show(transport_optmenu); gtk_table_attach (GTK_TABLE (table_transport), transport_optmenu, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); user_label = gtk_label_new(_("User")); gtk_widget_show(user_label); gtk_table_attach (GTK_TABLE (table_transport), user_label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify(GTK_LABEL(user_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC(user_label), 1, 0.5); user_entry = gtk_entry_new(); gtk_widget_show(user_entry); gtk_table_attach (GTK_TABLE (table_transport), user_entry, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); CLAWS_SET_TIP(user_entry, _("User to use with spamd server")); spamd_label = gtk_label_new(_("spamd")); gtk_widget_show(spamd_label); gtk_table_attach (GTK_TABLE (table_transport), spamd_label, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify(GTK_LABEL(spamd_label), GTK_JUSTIFY_RIGHT); gtk_misc_set_alignment(GTK_MISC(spamd_label), 1, 0.5); hbox_spamd = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_spamd); gtk_table_attach (GTK_TABLE (table_transport), hbox_spamd, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); spamd_hostname_entry = gtk_entry_new(); gtk_widget_show(spamd_hostname_entry); gtk_box_pack_start(GTK_BOX(hbox_spamd), spamd_hostname_entry, TRUE, TRUE, 0); CLAWS_SET_TIP(spamd_hostname_entry, _("Hostname or IP address of spamd server")); spamd_colon_label = gtk_label_new(":"); gtk_widget_show(spamd_colon_label); gtk_box_pack_start(GTK_BOX(hbox_spamd), spamd_colon_label, FALSE, FALSE, 0); spamd_port_spinbtn_adj = GTK_ADJUSTMENT(gtk_adjustment_new(783, 1, 65535, 1, 10, 0)); spamd_port_spinbtn = gtk_spin_button_new(GTK_ADJUSTMENT(spamd_port_spinbtn_adj), 1, 0); gtk_widget_show(spamd_port_spinbtn); gtk_box_pack_start(GTK_BOX(hbox_spamd), spamd_port_spinbtn, FALSE, FALSE, 0); CLAWS_SET_TIP(spamd_port_spinbtn, _("Port of spamd server")); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(spamd_port_spinbtn), TRUE); spamd_socket_entry = gtk_entry_new(); gtk_widget_show(spamd_socket_entry); gtk_box_pack_start(GTK_BOX(hbox_spamd), spamd_socket_entry, TRUE, TRUE, 0); CLAWS_SET_TIP(spamd_socket_entry, _("Path of Unix socket")); hbox_max_size = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_max_size); gtk_box_pack_start (GTK_BOX (vbox2), hbox_max_size, TRUE, TRUE, 0); max_size_label = gtk_label_new(_("Maximum size")); gtk_widget_show(max_size_label); gtk_box_pack_start(GTK_BOX(hbox_max_size), max_size_label, FALSE, FALSE, 0); max_size_spinbtn_adj = GTK_ADJUSTMENT(gtk_adjustment_new(250, 0, 10000, 10, 10, 0)); max_size_spinbtn = gtk_spin_button_new(GTK_ADJUSTMENT(max_size_spinbtn_adj), 1, 0); gtk_widget_show(max_size_spinbtn); gtk_box_pack_start(GTK_BOX(hbox_max_size), max_size_spinbtn, FALSE, FALSE, 0); CLAWS_SET_TIP(max_size_spinbtn, _("Messages larger than this will not be checked")); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(max_size_spinbtn), TRUE); max_size_kb_label = gtk_label_new(_("KB")); gtk_widget_show(max_size_kb_label); gtk_box_pack_start(GTK_BOX(hbox_max_size), max_size_kb_label, FALSE, FALSE, 0); hbox_timeout = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_timeout); gtk_box_pack_start (GTK_BOX (vbox2), hbox_timeout, TRUE, TRUE, 0); timeout_label = gtk_label_new(_("Timeout")); gtk_widget_show(timeout_label); gtk_box_pack_start(GTK_BOX(hbox_timeout), timeout_label, FALSE, FALSE, 0); timeout_spinbtn_adj = GTK_ADJUSTMENT(gtk_adjustment_new(60, 0, 10000, 10, 10, 0)); timeout_spinbtn = gtk_spin_button_new(GTK_ADJUSTMENT(timeout_spinbtn_adj), 1, 0); gtk_widget_show(timeout_spinbtn); gtk_box_pack_start(GTK_BOX(hbox_timeout), timeout_spinbtn, FALSE, FALSE, 0); CLAWS_SET_TIP(timeout_spinbtn, _("Maximum time allowed for checking. If the check takes longer " "it will be aborted.")); gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(timeout_spinbtn), TRUE); timeout_seconds_label = gtk_label_new(_("seconds")); gtk_widget_show(timeout_seconds_label); gtk_box_pack_start(GTK_BOX(hbox_timeout), timeout_seconds_label, FALSE, FALSE, 0); hbox_process_emails = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_process_emails); gtk_box_pack_start (GTK_BOX (vbox2), hbox_process_emails, TRUE, TRUE, 0); process_emails_checkbtn = gtk_check_button_new_with_label( _("Process messages on receiving")); gtk_widget_show(process_emails_checkbtn); gtk_box_pack_start(GTK_BOX(hbox_process_emails), process_emails_checkbtn, TRUE, TRUE, 0); hbox_save_spam = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_save_spam); gtk_box_pack_start (GTK_BOX (vbox2), hbox_save_spam, TRUE, TRUE, 0); save_spam_checkbtn = gtk_check_button_new_with_label(_("Save spam in")); gtk_widget_show(save_spam_checkbtn); gtk_box_pack_start(GTK_BOX(hbox_save_spam), save_spam_checkbtn, FALSE, FALSE, 0); save_spam_folder_entry = gtk_entry_new(); gtk_widget_show (save_spam_folder_entry); gtk_box_pack_start (GTK_BOX (hbox_save_spam), save_spam_folder_entry, TRUE, TRUE, 0); CLAWS_SET_TIP(save_spam_folder_entry, _("Folder for storing identified spam. Leave empty to use the trash folder.")); save_spam_folder_select = gtkut_get_browse_directory_btn(_("_Browse")); gtk_widget_show (save_spam_folder_select); gtk_box_pack_start (GTK_BOX (hbox_save_spam), save_spam_folder_select, FALSE, FALSE, 0); CLAWS_SET_TIP(save_spam_folder_select, _("Click this button to select a folder for storing spam")); hbox_mark_as_read = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_mark_as_read); gtk_box_pack_start (GTK_BOX (vbox2), hbox_mark_as_read, TRUE, TRUE, 0); mark_as_read_checkbtn = gtk_check_button_new_with_label( _("Mark spam as read")); gtk_widget_show(mark_as_read_checkbtn); gtk_box_pack_start(GTK_BOX(hbox_mark_as_read), mark_as_read_checkbtn, TRUE, TRUE, 0); hbox_whitelist = gtk_hbox_new(FALSE, 8); gtk_widget_show(hbox_whitelist); gtk_box_pack_start (GTK_BOX (vbox2), hbox_whitelist, TRUE, TRUE, 0); whitelist_ab_checkbtn = gtk_check_button_new_with_label(_("Whitelist senders found in address book/folder")); gtk_widget_show(whitelist_ab_checkbtn); gtk_box_pack_start(GTK_BOX(hbox_whitelist), whitelist_ab_checkbtn, FALSE, FALSE, 0); CLAWS_SET_TIP(whitelist_ab_checkbtn, _("Messages coming from your address book contacts will be received in the normal folder even if detected as spam")); whitelist_ab_folder_combo = combobox_text_new(TRUE, _("Any"), NULL); gtk_widget_set_size_request(whitelist_ab_folder_combo, 100, -1); gtk_box_pack_start (GTK_BOX (hbox_whitelist), whitelist_ab_folder_combo, TRUE, TRUE, 0); whitelist_ab_select_btn = gtk_button_new_with_label(_("Select...")); gtk_widget_show (whitelist_ab_select_btn); gtk_box_pack_start (GTK_BOX (hbox_whitelist), whitelist_ab_select_btn, FALSE, FALSE, 0); CLAWS_SET_TIP(whitelist_ab_select_btn, _("Click this button to select a book or folder in the address book")); SET_TOGGLE_SENSITIVITY(enable_sa_checkbtn, frame_transport); SET_TOGGLE_SENSITIVITY(enable_sa_checkbtn, hbox_max_size); SET_TOGGLE_SENSITIVITY(enable_sa_checkbtn, hbox_timeout); SET_TOGGLE_SENSITIVITY(enable_sa_checkbtn, hbox_save_spam); SET_TOGGLE_SENSITIVITY(save_spam_checkbtn, save_spam_folder_entry); SET_TOGGLE_SENSITIVITY(save_spam_checkbtn, save_spam_folder_select); SET_TOGGLE_SENSITIVITY(enable_sa_checkbtn, hbox_process_emails); SET_TOGGLE_SENSITIVITY(save_spam_checkbtn, mark_as_read_checkbtn); SET_TOGGLE_SENSITIVITY(whitelist_ab_checkbtn, whitelist_ab_folder_combo); #ifndef USE_ALT_ADDRBOOK SET_TOGGLE_SENSITIVITY(whitelist_ab_checkbtn, whitelist_ab_select_btn); #endif config = spamassassin_get_config(); g_signal_connect(G_OBJECT(save_spam_folder_select), "clicked", G_CALLBACK(foldersel_cb), page); #ifndef USE_ALT_ADDRBOOK g_signal_connect(G_OBJECT (whitelist_ab_select_btn), "clicked", G_CALLBACK(spamassassin_whitelist_ab_select_cb), page); #else gtk_widget_set_sensitive(GTK_WIDGET(whitelist_ab_select_btn), FALSE); #endif gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(enable_sa_checkbtn), config->enable); if (config->username != NULL) gtk_entry_set_text(GTK_ENTRY(user_entry), config->username); if (config->hostname != NULL) gtk_entry_set_text(GTK_ENTRY(spamd_hostname_entry), config->hostname); if (config->socket != NULL) gtk_entry_set_text(GTK_ENTRY(spamd_socket_entry), config->socket); if (config->whitelist_ab_folder != NULL) { /* translate "Any" (stored UNtranslated) */ if (strcasecmp(config->whitelist_ab_folder, "Any") == 0) gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))), config->whitelist_ab_folder); else /* backward compatibility (when translated "Any" was stored) */ if (g_utf8_collate(config->whitelist_ab_folder, _("Any")) == 0) gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))), config->whitelist_ab_folder); else gtk_entry_set_text(GTK_ENTRY(gtk_bin_get_child(GTK_BIN((whitelist_ab_folder_combo)))), config->whitelist_ab_folder); } gtk_spin_button_set_value(GTK_SPIN_BUTTON(spamd_port_spinbtn), (float) config->port); gtk_spin_button_set_value(GTK_SPIN_BUTTON(max_size_spinbtn), (float) config->max_size); gtk_spin_button_set_value(GTK_SPIN_BUTTON(timeout_spinbtn), (float) config->timeout); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(process_emails_checkbtn), config->process_emails); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(save_spam_checkbtn), config->receive_spam); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(whitelist_ab_checkbtn), config->whitelist_ab); if (config->save_folder != NULL) gtk_entry_set_text(GTK_ENTRY(save_spam_folder_entry), config->save_folder); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mark_as_read_checkbtn), config->mark_as_read); page->enable_sa_checkbtn = enable_sa_checkbtn; page->transport_label = transport_label; page->transport_optmenu = transport_optmenu; page->username = user_entry; page->hostname = spamd_hostname_entry; page->colon = spamd_colon_label; page->port = spamd_port_spinbtn; page->socket = spamd_socket_entry; page->max_size = max_size_spinbtn; page->timeout = timeout_spinbtn; page->process_emails = process_emails_checkbtn; page->receive_spam = save_spam_checkbtn; page->save_folder = save_spam_folder_entry; page->save_folder_select = save_spam_folder_select; page->mark_as_read = mark_as_read_checkbtn; page->whitelist_ab = whitelist_ab_checkbtn; page->whitelist_ab_folder_combo = whitelist_ab_folder_combo; active = 0; for (i = 0; i < (sizeof(transports) / sizeof(struct Transport)); i++) { gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, gettext(transports[i].name), 1, &transports[i], -1); if (config->transport == transports[i].transport) { show_transport(page, &transports[i]); active = i; } else if (config->transport == SPAMASSASSIN_DISABLED && transports[i].transport == SPAMASSASSIN_TRANSPORT_LOCALHOST) { show_transport(page, &transports[i]); active = i; /* and disable via new way */ config->enable = FALSE; gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(enable_sa_checkbtn), config->enable); } } gtk_combo_box_set_active(GTK_COMBO_BOX(transport_optmenu), active); g_signal_connect(G_OBJECT(transport_optmenu), "changed", G_CALLBACK(transport_sel_cb), page); page->page.widget = vbox1; }
static void prefs_message_create_widget(PrefsPage *_page, GtkWindow *window, gpointer data) { MessagePage *prefs_message = (MessagePage *) _page; GtkWidget *vbox1; GtkWidget *vbox2; GtkWidget *hbox1; GtkWidget *checkbtn_disphdrpane; GtkWidget *checkbtn_disphdr; GtkWidget *checkbtn_dispxface; GtkWidget *button_edit_disphdr; GtkWidget *checkbtn_html; GtkWidget *checkbtn_html_plugin; GtkWidget *checkbtn_promote_html_part; GtkWidget *hbox_linespc; GtkWidget *label_linespc; GtkAdjustment *spinbtn_linespc_adj; GtkWidget *spinbtn_linespc; GtkWidget *frame; GtkWidget *vbox_scr; GtkWidget *checkbtn_smoothscroll; GtkWidget *hbox_scr; GtkWidget *label_scr; GtkAdjustment *spinbtn_scrollstep_adj; GtkWidget *spinbtn_scrollstep; GtkWidget *checkbtn_halfpage; GtkWidget *checkbtn_hide_quoted; GtkWidget *checkbtn_attach_desc; GtkWidget *frame_quote; GtkWidget *hbox2; GtkWidget *vbox_quote; GtkWidget *entry_quote_chars; GtkWidget *label_quote_chars; vbox1 = gtk_vbox_new (FALSE, VSPACING); gtk_widget_show (vbox1); gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER); vbox2 = gtkut_get_options_frame(vbox1, &frame, _("Headers")); PACK_CHECK_BUTTON(vbox2, checkbtn_disphdrpane, _("Display header pane above message view")); #if HAVE_LIBCOMPFACE PACK_CHECK_BUTTON(vbox2, checkbtn_dispxface, _("Display (X-)Face in message view")); #else PACK_CHECK_BUTTON(vbox2, checkbtn_dispxface, _("Display Face in message view")); #endif gtk_widget_set_sensitive(checkbtn_dispxface, !prefs_common.display_header_pane); g_signal_connect(G_OBJECT(checkbtn_disphdrpane), "toggled", G_CALLBACK(disphdr_pane_toggled), checkbtn_dispxface); hbox1 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0); PACK_CHECK_BUTTON(hbox1, checkbtn_disphdr, _("Display headers in message view")); button_edit_disphdr = gtk_button_new_from_stock(GTK_STOCK_EDIT); gtk_widget_show (button_edit_disphdr); gtk_box_pack_start (GTK_BOX (hbox1), button_edit_disphdr, FALSE, TRUE, 0); g_signal_connect (G_OBJECT (button_edit_disphdr), "clicked", G_CALLBACK (prefs_display_header_open), NULL); SET_TOGGLE_SENSITIVITY(checkbtn_disphdr, button_edit_disphdr); vbox2 = gtkut_get_options_frame(vbox1, &frame, _("HTML messages")); PACK_CHECK_BUTTON(vbox2, checkbtn_html, _("Render HTML messages as text")); PACK_CHECK_BUTTON(vbox2, checkbtn_html_plugin, _("Render HTML-only messages with plugin if possible")); PACK_CHECK_BUTTON(vbox2, checkbtn_promote_html_part, _("Select the HTML part of multipart/alternative messages")); hbox1 = gtk_hbox_new (FALSE, 32); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 0); hbox_linespc = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (hbox1), hbox_linespc, FALSE, TRUE, 0); label_linespc = gtk_label_new (_("Line space")); gtk_widget_show (label_linespc); gtk_box_pack_start (GTK_BOX (hbox_linespc), label_linespc, FALSE, FALSE, 0); spinbtn_linespc_adj = GTK_ADJUSTMENT(gtk_adjustment_new (2, 0, 16, 1, 1, 0)); spinbtn_linespc = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_linespc_adj), 1, 0); gtk_widget_show (spinbtn_linespc); gtk_box_pack_start (GTK_BOX (hbox_linespc), spinbtn_linespc, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_linespc), TRUE); label_linespc = gtk_label_new (_("pixels")); gtk_widget_show (label_linespc); gtk_box_pack_start (GTK_BOX (hbox_linespc), label_linespc, FALSE, FALSE, 0); gtk_widget_show_all (hbox1); vbox_scr = gtkut_get_options_frame(vbox1, &frame, _("Scroll")); PACK_CHECK_BUTTON(vbox_scr, checkbtn_halfpage, _("Half page")); hbox1 = gtk_hbox_new (FALSE, 32); gtk_widget_show (hbox1); gtk_box_pack_start (GTK_BOX (vbox_scr), hbox1, FALSE, TRUE, 0); PACK_CHECK_BUTTON(hbox1, checkbtn_smoothscroll, _("Smooth scroll")); hbox_scr = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox_scr); gtk_box_pack_start (GTK_BOX (hbox1), hbox_scr, FALSE, FALSE, 0); label_scr = gtk_label_new (_("Step")); gtk_widget_show (label_scr); gtk_box_pack_start (GTK_BOX (hbox_scr), label_scr, FALSE, FALSE, 0); spinbtn_scrollstep_adj = GTK_ADJUSTMENT(gtk_adjustment_new (1, 1, 100, 1, 10, 0)); spinbtn_scrollstep = gtk_spin_button_new (GTK_ADJUSTMENT (spinbtn_scrollstep_adj), 1, 0); gtk_widget_show (spinbtn_scrollstep); gtk_box_pack_start (GTK_BOX (hbox_scr), spinbtn_scrollstep, FALSE, FALSE, 0); gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_scrollstep), TRUE); label_scr = gtk_label_new (_("pixels")); gtk_widget_show (label_scr); gtk_box_pack_start (GTK_BOX (hbox_scr), label_scr, FALSE, FALSE, 0); SET_TOGGLE_SENSITIVITY (checkbtn_smoothscroll, hbox_scr) PACK_CHECK_BUTTON(vbox1, checkbtn_attach_desc, _("Show attachment descriptions (rather than names)")); /* quote chars */ PACK_FRAME (vbox1, frame_quote, _("Quotation")); vbox_quote = gtk_vbox_new (FALSE, VSPACING_NARROW); gtk_widget_show (vbox_quote); gtk_container_add (GTK_CONTAINER (frame_quote), vbox_quote); gtk_container_set_border_width (GTK_CONTAINER (vbox_quote), 8); hbox1 = gtk_hbox_new (FALSE, 32); gtk_widget_show (hbox1); PACK_CHECK_BUTTON(vbox_quote, checkbtn_hide_quoted, _("Collapse quoted text on double click")); gtk_box_pack_start (GTK_BOX (vbox_quote), hbox1, FALSE, FALSE, 0); hbox2 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox2); gtk_box_pack_start (GTK_BOX (hbox1), hbox2, FALSE, FALSE, 0); label_quote_chars = gtk_label_new (_("Treat these characters as quotation marks")); gtk_widget_show (label_quote_chars); gtk_box_pack_start (GTK_BOX (hbox2), label_quote_chars, FALSE, FALSE, 0); entry_quote_chars = gtk_entry_new (); gtk_widget_show (entry_quote_chars); gtk_box_pack_start (GTK_BOX (hbox2), entry_quote_chars, FALSE, FALSE, 0); gtk_widget_set_size_request (entry_quote_chars, 64, -1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_disphdrpane), prefs_common.display_header_pane); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_dispxface), prefs_common.display_xface); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_disphdr), prefs_common.display_header); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_html), prefs_common.render_html); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_html_plugin), prefs_common.invoke_plugin_on_html); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_promote_html_part), prefs_common.promote_html_part); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_smoothscroll), prefs_common.enable_smooth_scroll); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_hide_quoted), prefs_common.hide_quoted); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_halfpage), prefs_common.scroll_halfpage); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_attach_desc), prefs_common.attach_desc); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_linespc), prefs_common.line_space); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_scrollstep), prefs_common.scroll_step); gtk_entry_set_text(GTK_ENTRY(entry_quote_chars), prefs_common.quote_chars?prefs_common.quote_chars:""); prefs_message->window = GTK_WIDGET(window); prefs_message->checkbtn_disphdrpane = checkbtn_disphdrpane; prefs_message->checkbtn_dispxface = checkbtn_dispxface; prefs_message->checkbtn_disphdr = checkbtn_disphdr; prefs_message->checkbtn_html = checkbtn_html; prefs_message->checkbtn_html_plugin = checkbtn_html_plugin; prefs_message->checkbtn_promote_html_part = checkbtn_promote_html_part; prefs_message->spinbtn_linespc = spinbtn_linespc; prefs_message->checkbtn_smoothscroll = checkbtn_smoothscroll; prefs_message->checkbtn_hide_quoted = checkbtn_hide_quoted; prefs_message->spinbtn_scrollstep = spinbtn_scrollstep; prefs_message->checkbtn_halfpage = checkbtn_halfpage; prefs_message->checkbtn_attach_desc = checkbtn_attach_desc; prefs_message->entry_quote_chars = entry_quote_chars; prefs_message->page.widget = vbox1; }