/** * Populate fields from control data. * \param ctl Export control data. */ static void export_html_fill_fields( ExportHtmlCtl *ctl ) { gtk_entry_set_text( GTK_ENTRY(exphtml_dlg.entryHtml), "" ); if( ctl->path ) { gtk_entry_set_text( GTK_ENTRY(exphtml_dlg.entryHtml), ctl->path ); } combobox_select_by_data( GTK_COMBO_BOX(exphtml_dlg.optmenuCSS), ctl->stylesheet ); combobox_select_by_data( GTK_COMBO_BOX(exphtml_dlg.optmenuName), ctl->nameFormat ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( exphtml_dlg.checkBanding ), ctl->banding ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( exphtml_dlg.checkLinkEMail ), ctl->linkEMail ); gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( exphtml_dlg.checkAttributes ), ctl->showAttribs ); }
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 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; }
/*! *\brief Create the matcher dialog */ static void prefs_filtering_action_create(void) { GtkWidget *window; GtkWidget *vbox; GtkWidget *ok_btn; GtkWidget *cancel_btn; GtkWidget *confirm_area; GtkWidget *vbox1; GtkWidget *frame; GtkWidget *table; GtkWidget *hbox1; GtkWidget *label1; GtkWidget *label2; GtkWidget *label3; GtkWidget *action_combo; GtkWidget *account_combo; GtkWidget *header_combo; GtkWidget *header_entry; #ifndef USE_NEW_ADDRBOOK GtkWidget *addressbook_btn; #endif GtkWidget *dest_entry; GtkWidget *dest_btn; GtkWidget *score_entry; GtkWidget *tags_combo; GtkWidget *reg_hbox; GtkWidget *btn_hbox; GtkWidget *arrow; GtkWidget *reg_btn; GtkWidget *subst_btn; GtkWidget *del_btn; GtkWidget *action_hbox; GtkWidget *action_scrolledwin; GtkWidget *action_list_view; GtkWidget *btn_vbox; GtkWidget *up_btn; GtkWidget *down_btn; GtkWidget *exec_btn; #if !GTK_CHECK_VERSION(3, 0, 0) GtkWidget *color_optmenu; #endif static GdkGeometry geometry; GList * accounts; GSList *tmp, *tags; GtkSizeGroup *size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); GtkSizeGroup *size_action = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); GtkTreeModel *model; GtkCellRenderer *renderer; debug_print("Creating matcher configuration window...\n"); window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_filtering_action"); gtk_container_set_border_width(GTK_CONTAINER(window), VBOX_BORDER); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_window_set_modal(GTK_WINDOW(window), TRUE); gtk_window_set_resizable(GTK_WINDOW(window), TRUE); vbox = gtk_vbox_new(FALSE, 6); gtk_container_add(GTK_CONTAINER(window), vbox); gtkut_stock_button_set_create(&confirm_area, &cancel_btn, GTK_STOCK_CANCEL, &ok_btn, GTK_STOCK_OK, NULL, NULL); gtk_box_pack_end(GTK_BOX(vbox), confirm_area, FALSE, FALSE, 0); gtk_widget_grab_default(ok_btn); gtk_window_set_title(GTK_WINDOW(window), _("Action configuration")); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(prefs_filtering_action_deleted), NULL); g_signal_connect(G_OBJECT(window), "size_allocate", G_CALLBACK(prefs_filtering_action_size_allocate_cb), NULL); g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(prefs_filtering_action_key_pressed), NULL); MANAGE_WINDOW_SIGNALS_CONNECT(window); g_signal_connect(G_OBJECT(ok_btn), "clicked", G_CALLBACK(prefs_filtering_action_ok), NULL); g_signal_connect(G_OBJECT(cancel_btn), "clicked", G_CALLBACK(prefs_filtering_action_cancel), NULL); vbox1 = gtk_vbox_new(FALSE, VSPACING); gtk_box_pack_start(GTK_BOX(vbox), vbox1, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER (vbox1), 2); frame = gtk_frame_new(_("Rule")); gtk_frame_set_label_align(GTK_FRAME(frame), 0.01, 0.5); gtk_box_pack_start (GTK_BOX (vbox1), frame, FALSE, FALSE, 0); gtk_widget_set_size_request(frame, -1, 110); table = gtk_table_new(3, 3, FALSE); gtk_container_set_border_width(GTK_CONTAINER(table), 2); gtk_table_set_row_spacings (GTK_TABLE (table), VSPACING_NARROW_2); gtk_table_set_col_spacings (GTK_TABLE (table), HSPACING_NARROW); gtk_container_add(GTK_CONTAINER(frame), table); /* first row labels */ label1 = gtk_label_new (_("Action")); gtk_widget_set_size_request(label1, LABELS_WIDTH, -1); gtk_size_group_add_widget(size_group, label1); gtk_misc_set_alignment (GTK_MISC (label1), 1, 0.5); gtk_table_attach(GTK_TABLE(table), label1, 0, 1, 0, 1, GTK_FILL, GTK_SHRINK, 0, 0); label2 = gtk_label_new (""); gtk_size_group_add_widget(size_group, label2); gtk_misc_set_alignment (GTK_MISC (label2), 1, 0.5); gtk_table_attach(GTK_TABLE(table), label2, 0, 1, 1, 2, GTK_FILL, GTK_SHRINK, 0, 0); label3 = gtk_label_new (""); gtk_size_group_add_widget(size_group, label3); gtk_misc_set_alignment (GTK_MISC (label3), 1, 0.5); gtk_table_attach(GTK_TABLE(table), label3, 0, 1, 2, 3, GTK_FILL, GTK_SHRINK, 0, 0); /* action combo */ hbox1 = gtk_hbox_new(FALSE, 0); gtk_table_attach(GTK_TABLE(table), hbox1, 1, 2, 0, 1, GTK_FILL, GTK_SHRINK, 0, 0); model = prefs_filtering_action_create_model(); action_combo = gtk_combo_box_new_with_model(model); gtk_size_group_add_widget(size_action, action_combo); renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(action_combo), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(action_combo), renderer, "text", ACTION_COMBO_TEXT, "sensitive", ACTION_COMBO_SENS, NULL); gtk_cell_layout_set_cell_data_func(GTK_CELL_LAYOUT(action_combo), renderer, cell_is_sensitive, NULL, NULL); combobox_select_by_data(GTK_COMBO_BOX(action_combo), ACTION_MOVE); g_signal_connect(G_OBJECT(action_combo), "changed", G_CALLBACK(prefs_filtering_action_type_selection_changed), NULL); gtk_box_pack_start(GTK_BOX(hbox1), action_combo, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox1), gtk_label_new(""), TRUE, TRUE, 0); /* accounts */ hbox1 = gtk_hbox_new (FALSE, 0); gtk_table_attach(GTK_TABLE(table), hbox1, 1, 2, 1, 2, GTK_FILL | GTK_EXPAND, GTK_SHRINK, 0, 0); #if !GTK_CHECK_VERSION(2, 24, 0) account_combo = gtk_combo_box_new_text (); #else account_combo = gtk_combo_box_text_new (); #endif gtk_size_group_add_widget(size_action, account_combo); for (accounts = account_get_list() ; accounts != NULL; accounts = accounts->next) { PrefsAccount *ac = (PrefsAccount *)accounts->data; gchar *name = g_strdup(ac->account_name); #if !GTK_CHECK_VERSION(2, 24, 0) gtk_combo_box_append_text(GTK_COMBO_BOX(account_combo), (gpointer) name); #else gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(account_combo), (gpointer) name); #endif g_free(name); } prefs_filtering_action_check_widget_width(account_combo); gtk_combo_box_set_active(GTK_COMBO_BOX(account_combo), 0); gtk_box_pack_start (GTK_BOX (hbox1), account_combo, FALSE, FALSE, 0); /* header */ header_combo = combobox_text_new(TRUE, "From", "To", "Cc", "Reply-To", "Sender", NULL); gtk_size_group_add_widget(size_action, header_combo); gtk_box_pack_start (GTK_BOX (hbox1), header_combo, FALSE, FALSE, 0); header_entry = gtk_bin_get_child(GTK_BIN((header_combo))); /* destination */ hbox1 = gtk_hbox_new (FALSE, 0); gtk_table_attach(GTK_TABLE(table), hbox1, 1, 2, 2, 3, GTK_FILL | GTK_EXPAND, GTK_SHRINK, 0, 0); dest_entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (hbox1), dest_entry, TRUE, TRUE, 0); score_entry = gtk_spin_button_new_with_range(-1000, 1000, 1); gtk_box_pack_start(GTK_BOX(hbox1), score_entry, FALSE, FALSE, 0); #if !GTK_CHECK_VERSION(3, 0, 0) color_optmenu = gtk_cmoption_menu_new(); gtk_size_group_add_widget(size_action, color_optmenu); gtk_cmoption_menu_set_menu(GTK_CMOPTION_MENU(color_optmenu), colorlabel_create_color_menu()); prefs_filtering_action_check_widget_width(color_optmenu); gtk_box_pack_start(GTK_BOX(hbox1), color_optmenu, FALSE, FALSE, 0); #endif #if !GTK_CHECK_VERSION(2, 24, 0) tags_combo = gtk_combo_box_new_text (); #else tags_combo = gtk_combo_box_text_new (); #endif gtk_size_group_add_widget(size_action, tags_combo); for (tmp = tags = tags_get_list() ; tmp != NULL; tmp = tmp->next) { gchar *name = g_strdup(tags_get_tag(GPOINTER_TO_INT(tmp->data))); #if !GTK_CHECK_VERSION(2, 24, 0) gtk_combo_box_append_text(GTK_COMBO_BOX(tags_combo), (gpointer) name); #else gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(tags_combo), (gpointer) name); #endif g_free(name); } g_slist_free(tags); prefs_filtering_action_check_widget_width(tags_combo); gtk_combo_box_set_active(GTK_COMBO_BOX(tags_combo), 0); gtk_box_pack_start (GTK_BOX (hbox1), tags_combo, FALSE, FALSE, 0); hbox1 = gtk_hbox_new (FALSE, 0); gtk_table_attach(GTK_TABLE(table), hbox1, 2, 3, 2, 3, GTK_FILL, GTK_SHRINK, 0, 0); dest_btn = gtk_button_new_with_label (_("Select...")); gtk_box_pack_start (GTK_BOX (hbox1), dest_btn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (dest_btn), "clicked", G_CALLBACK(prefs_filtering_action_select_dest), NULL); #ifndef USE_NEW_ADDRBOOK addressbook_btn = gtk_button_new_with_label (_("Select...")); gtk_box_pack_start (GTK_BOX (hbox1), addressbook_btn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (addressbook_btn), "clicked", G_CALLBACK(prefs_filtering_action_select_addressbook), NULL); #endif exec_btn = gtk_button_new_from_stock(GTK_STOCK_INFO); gtk_box_pack_start (GTK_BOX (hbox1), exec_btn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (exec_btn), "clicked", G_CALLBACK(prefs_filtering_action_exec_info), window); /* register / substitute / delete */ reg_hbox = gtk_hbox_new(FALSE, 4); gtk_box_pack_start(GTK_BOX(vbox1), reg_hbox, FALSE, FALSE, 0); arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT); gtk_box_pack_start(GTK_BOX(reg_hbox), arrow, FALSE, FALSE, 0); gtk_widget_set_size_request(arrow, -1, 16); btn_hbox = gtk_hbox_new(TRUE, 4); gtk_box_pack_start(GTK_BOX(reg_hbox), btn_hbox, FALSE, FALSE, 0); reg_btn = gtk_button_new_from_stock(GTK_STOCK_ADD); gtk_box_pack_start(GTK_BOX(btn_hbox), reg_btn, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(reg_btn), "clicked", G_CALLBACK(prefs_filtering_action_register_cb), NULL); subst_btn = gtkut_get_replace_btn(_("_Replace")); gtk_box_pack_start(GTK_BOX(btn_hbox), subst_btn, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(subst_btn), "clicked", G_CALLBACK(prefs_filtering_action_substitute_cb), NULL); del_btn = gtk_button_new_with_mnemonic (_("Re_move")); gtk_button_set_image(GTK_BUTTON(del_btn), gtk_image_new_from_stock(GTK_STOCK_REMOVE,GTK_ICON_SIZE_BUTTON)); gtk_box_pack_start(GTK_BOX(btn_hbox), del_btn, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(del_btn), "clicked", G_CALLBACK(prefs_filtering_action_delete_cb), NULL); action_hbox = gtk_hbox_new(FALSE, 8); gtk_box_pack_start(GTK_BOX(vbox1), action_hbox, TRUE, TRUE, 0); action_scrolledwin = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(action_scrolledwin, -1, 150); gtk_box_pack_start(GTK_BOX(action_hbox), action_scrolledwin, TRUE, TRUE, 0); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(action_scrolledwin), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(action_scrolledwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); action_list_view = prefs_filtering_action_list_view_create(); gtk_container_add(GTK_CONTAINER(action_scrolledwin), action_list_view); btn_vbox = gtk_vbox_new(FALSE, 8); gtk_box_pack_start(GTK_BOX(action_hbox), btn_vbox, FALSE, FALSE, 0); up_btn = gtk_button_new_from_stock(GTK_STOCK_GO_UP); gtk_box_pack_start(GTK_BOX(btn_vbox), up_btn, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(up_btn), "clicked", G_CALLBACK(prefs_filtering_action_up), NULL); down_btn = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN); gtk_box_pack_start(GTK_BOX(btn_vbox), down_btn, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(down_btn), "clicked", G_CALLBACK(prefs_filtering_action_down), NULL); if (!geometry.min_height) { geometry.min_width = 490; geometry.min_height = 348; } gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &geometry, GDK_HINT_MIN_SIZE); gtk_widget_set_size_request(window, prefs_common.filteringactionwin_width, prefs_common.filteringactionwin_height); gtk_widget_show_all(window); filtering_action.window = window; filtering_action.label1 = label1; filtering_action.label2 = label2; filtering_action.label3 = label3; filtering_action.action_combo = action_combo; filtering_action.account_combo = account_combo; filtering_action.tags_combo = tags_combo; filtering_action.dest_entry = dest_entry; filtering_action.dest_btn = dest_btn; filtering_action.exec_btn = exec_btn; #if !GTK_CHECK_VERSION(3, 0, 0) filtering_action.color_optmenu = color_optmenu; #endif filtering_action.score_entry = score_entry; filtering_action.header_combo = header_combo; filtering_action.header_entry = header_entry; #ifndef USE_NEW_ADDRBOOK filtering_action.addressbook_btn = addressbook_btn; #endif filtering_action.ok_btn = ok_btn; filtering_action.action_list_view = action_list_view; prefs_filtering_action_type_selection_changed(NULL, NULL); }