diff options
Diffstat (limited to 'src/xsane-setup.c')
-rw-r--r-- | src/xsane-setup.c | 502 |
1 files changed, 247 insertions, 255 deletions
diff --git a/src/xsane-setup.c b/src/xsane-setup.c index b420643..f97e7ef 100644 --- a/src/xsane-setup.c +++ b/src/xsane-setup.c @@ -31,6 +31,7 @@ #include "xsane-save.h" #include "xsane-gamma.h" #include "xsane-batch-scan.h" +#include "xsane-setup.h" #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ @@ -72,21 +73,22 @@ static void xsane_setup_display_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_saving_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data); -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data); +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_setup_email_apply_changes(GtkWidget *widget, gpointer data); #endif static void xsane_setup_ocr_apply_changes(GtkWidget *widget, gpointer data); static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data); static void xsane_printer_notebook(GtkWidget *notebook); static void xsane_saving_notebook(GtkWidget *notebook); -static void xsane_image_notebook(GtkWidget *notebook); +static void xsane_filetype_notebook(GtkWidget *notebook); static void xsane_fax_notebook(GtkWidget *notebook); -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_mail_notebook(GtkWidget *notebook); +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_email_notebook(GtkWidget *notebook); #endif static void xsane_display_notebook(GtkWidget *notebook); static void xsane_enhance_notebook_sensitivity(int lineart_mode); +static void xsane_setup_authentication_type_callback(GtkWidget *widget, gpointer data); static void xsane_setup_show_range_mode_callback(GtkWidget *widget, gpointer data); static void xsane_setup_lineart_mode_callback(GtkWidget *widget, gpointer data); static void xsane_enhance_notebook(GtkWidget *notebook); @@ -133,6 +135,7 @@ void xsane_new_printer(void) preferences.printer[preferences.printernr]->gamma_red = 1.0; preferences.printer[preferences.printernr]->gamma_green = 1.0; preferences.printer[preferences.printernr]->gamma_blue = 1.0; + preferences.printer[preferences.printernr]->ps_flatdecoded = 1; } else { @@ -272,6 +275,9 @@ static void xsane_setup_printer_update() gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_green_entry), buf); snprintf(buf, sizeof(buf), "%1.2f", preferences.printer[preferences.printernr]->gamma_blue); gtk_entry_set_text(GTK_ENTRY(xsane_setup.printer_gamma_blue_entry), buf); +#ifdef HAVE_LIBZ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(xsane_setup.printer_ps_flatdecoded_button), preferences.printer[preferences.printernr]->ps_flatdecoded); +#endif } /* ---------------------------------------------------------------------------------------------------------------------- */ @@ -348,6 +354,10 @@ static void xsane_setup_printer_apply_changes(GtkWidget *widget, gpointer data) xsane_update_double(xsane_setup.printer_gamma_green_entry, &preferences.printer[preferences.printernr]->gamma_green); xsane_update_double(xsane_setup.printer_gamma_blue_entry, &preferences.printer[preferences.printernr]->gamma_blue); +#ifdef HAVE_LIBZ + xsane_update_bool(xsane_setup.printer_ps_flatdecoded_button, &preferences.printer[preferences.printernr]->ps_flatdecoded); +#endif + if (option_menu) { xsane_setup_printer_menu_build(option_menu); @@ -509,31 +519,6 @@ static void xsane_setup_enhance_apply_changes(GtkWidget *widget, gpointer data) xsane.grayscale_scanmode = strdup(xsane_setup.grayscale_scanmode); } - - if (xsane.adf_scansource) - { - if (xsane_setup.adf_scansource) - { - device_options_changed |= (strcmp(xsane_setup.adf_scansource, xsane.adf_scansource)); - } - else - { - device_options_changed |= 1; - } - - free((void *) xsane.adf_scansource); - xsane.adf_scansource = NULL; - } - else if (xsane_setup.adf_scansource) - { - device_options_changed |= 1; - } - - if (xsane_setup.adf_scansource) - { - xsane.adf_scansource = strdup(xsane_setup.adf_scansource); - } - preferences.preview_pipette_range = xsane_setup.preview_pipette_range; xsane_update_bool(xsane_setup.auto_enhance_gamma_button, &preferences.auto_enhance_gamma); @@ -597,18 +582,24 @@ static void xsane_setup_image_apply_changes(GtkWidget *widget, gpointer data) #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ - xsane_update_scale(xsane_setup.pnm_image_compression_scale, &preferences.png_compression); + xsane_update_scale(xsane_setup.png_image_compression_scale, &preferences.png_compression); #endif #endif #ifdef HAVE_LIBTIFF + xsane_update_scale(xsane_setup.tiff_image_zip_compression_scale, &preferences.tiff_zip_compression); preferences.tiff_compression16_nr = xsane_setup.tiff_compression16_nr; preferences.tiff_compression8_nr = xsane_setup.tiff_compression8_nr; preferences.tiff_compression1_nr = xsane_setup.tiff_compression1_nr; #endif - xsane_update_bool(xsane_setup.save_pnm16_as_ascii_button, &preferences.save_pnm16_as_ascii); xsane_update_bool(xsane_setup.reduce_16bit_to_8bit_button, &preferences.reduce_16bit_to_8bit); + xsane_update_bool(xsane_setup.save_pnm16_as_ascii_button, &preferences.save_pnm16_as_ascii); + +#ifdef HAVE_LIBZ + xsane_update_bool(xsane_setup.save_ps_flatdecoded_button, &preferences.save_ps_flatdecoded); + xsane_update_bool(xsane_setup.save_pdf_flatdecoded_button, &preferences.save_pdf_flatdecoded); +#endif xsane_define_maximum_output_size(); } @@ -635,36 +626,41 @@ static void xsane_setup_fax_apply_changes(GtkWidget *widget, gpointer data) xsane_update_geometry_double(xsane_setup.fax_width_entry, &preferences.fax_width, preferences.length_unit); xsane_update_geometry_double(xsane_setup.fax_height_entry, &preferences.fax_height, preferences.length_unit); +#ifdef HAVE_LIBZ + xsane_update_bool(xsane_setup.fax_ps_flatdecoded_button, &preferences.fax_ps_flatdecoded); +#endif + xsane_define_maximum_output_size(); } /* ---------------------------------------------------------------------------------------------------------------------- */ -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_setup_mail_apply_changes(GtkWidget *widget, gpointer data) +#ifdef XSANE_ACTIVATE_EMAIL +static void xsane_setup_email_apply_changes(GtkWidget *widget, gpointer data) { int i; - DBG(DBG_proc, "xsane_setup_mail_apply_changes\n"); + DBG(DBG_proc, "xsane_setup_email_apply_changes\n"); - preferences.mail_from = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_from_entry))); - preferences.mail_reply_to = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_reply_to_entry))); - preferences.mail_smtp_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_smtp_server_entry))); - preferences.mail_pop3_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_server_entry))); - preferences.mail_pop3_user = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_user_entry))); - preferences.mail_pop3_pass = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_pop3_pass_entry))); - preferences.mail_viewer = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.mail_viewer_entry))); + preferences.email_from = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_from_entry))); + preferences.email_reply_to = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_reply_to_entry))); + preferences.email_smtp_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_smtp_server_entry))); + preferences.email_auth_user = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_auth_user_entry))); + preferences.email_auth_pass = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_auth_pass_entry))); + preferences.email_pop3_server = strdup(gtk_entry_get_text(GTK_ENTRY(xsane_setup.email_pop3_server_entry))); /* make sure password is not stored in ascii text */ /* this is very simple but better than nothing */ - for (i=0; i<strlen(preferences.mail_pop3_pass); i++) + for (i=0; i<strlen(preferences.email_auth_pass); i++) { - preferences.mail_pop3_pass[i] ^= 0x53; + preferences.email_auth_pass[i] ^= 0x53; } - xsane_update_bool(xsane_setup.mail_pop3_authentification_entry, &preferences.mail_pop3_authentification); - xsane_update_int(xsane_setup.mail_smtp_port_entry, &preferences.mail_smtp_port); - xsane_update_int(xsane_setup.mail_pop3_port_entry, &preferences.mail_pop3_port); +// xsane_update_bool(xsane_setup.email_authentication_entry, &preferences.email_authentication); + xsane_update_int(xsane_setup.email_smtp_port_entry, &preferences.email_smtp_port); + xsane_update_int(xsane_setup.email_pop3_port_entry, &preferences.email_pop3_port); + + preferences.email_authentication = xsane_setup.email_authentication; } #endif @@ -719,8 +715,8 @@ static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data) xsane_setup_saving_apply_changes(0, 0); xsane_setup_image_apply_changes(0, 0); xsane_setup_fax_apply_changes(0, 0); -#ifdef XSANE_ACTIVATE_MAIL - xsane_setup_mail_apply_changes(0, 0); +#ifdef XSANE_ACTIVATE_EMAIL + xsane_setup_email_apply_changes(0, 0); #endif xsane_setup_ocr_apply_changes(0, 0); @@ -730,13 +726,6 @@ static void xsane_setup_options_ok_callback(GtkWidget *widget, gpointer data) xsane_setup.grayscale_scanmode = NULL; } - if (xsane_setup.adf_scansource) - { - free((void *) xsane_setup.adf_scansource); - xsane_setup.adf_scansource = NULL; - } - - xsane_pref_save(); gtk_widget_destroy((GtkWidget *)data); /* => xsane_destroy_setup_dialog_callback */ @@ -1285,6 +1274,25 @@ static void xsane_printer_notebook(GtkWidget *notebook) xsane_setup.printer_gamma_blue_entry = text; + +#ifdef HAVE_LIBZ + xsane_separator_new(vbox, 2); + + + + /* flatdecoded = ps level 3 */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(TEXT_SETUP_PRINTER_PS_FLATDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_PRINTER_PS_FLATDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.printer[preferences.printernr]->ps_flatdecoded); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.printer_ps_flatdecoded_button = button; +#endif + + xsane_separator_new(vbox, 4); /* "apply" "add printer" "delete printer" */ @@ -1506,12 +1514,12 @@ static void xsane_saving_notebook(GtkWidget *notebook) /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_image_notebook(GtkWidget *notebook) +static void xsane_filetype_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *frame; +#ifdef HAVE_LIBTIFF int i, select = 1; -#ifdef HAVE_LIBTIFF GtkWidget *tiff_compression_option_menu, *tiff_compression_menu, *tiff_compression_item; typedef struct tiff_compression_t @@ -1520,8 +1528,8 @@ static void xsane_image_notebook(GtkWidget *notebook) int number; } tiff_compression; -#define TIFF_COMPRESSION16_NUMBER 2 -#define TIFF_COMPRESSION8_NUMBER 3 +#define TIFF_COMPRESSION16_NUMBER 3 +#define TIFF_COMPRESSION8_NUMBER 4 #define TIFF_COMPRESSION1_NUMBER 6 tiff_compression tiff_compression16_strings[TIFF_COMPRESSION16_NUMBER]; @@ -1532,6 +1540,8 @@ static void xsane_image_notebook(GtkWidget *notebook) tiff_compression16_strings[0].number = COMPRESSION_NONE; tiff_compression16_strings[1].name = MENU_ITEM_TIFF_COMP_PACKBITS; tiff_compression16_strings[1].number = COMPRESSION_PACKBITS; + tiff_compression16_strings[2].name = MENU_ITEM_TIFF_COMP_DEFLATE; + tiff_compression16_strings[2].number = COMPRESSION_DEFLATE; tiff_compression8_strings[0].name = MENU_ITEM_TIFF_COMP_NONE; tiff_compression8_strings[0].number = COMPRESSION_NONE; @@ -1539,6 +1549,8 @@ static void xsane_image_notebook(GtkWidget *notebook) tiff_compression8_strings[1].number = COMPRESSION_JPEG; tiff_compression8_strings[2].name = MENU_ITEM_TIFF_COMP_PACKBITS; tiff_compression8_strings[2].number = COMPRESSION_PACKBITS; + tiff_compression8_strings[3].name = MENU_ITEM_TIFF_COMP_DEFLATE; + tiff_compression8_strings[3].number = COMPRESSION_DEFLATE; tiff_compression1_strings[0].name = MENU_ITEM_TIFF_COMP_NONE; tiff_compression1_strings[0].number = COMPRESSION_NONE; @@ -1555,12 +1567,12 @@ static void xsane_image_notebook(GtkWidget *notebook) #endif /* HAVE_LIBTIFF */ - DBG(DBG_proc, "xsane_image_notebook\n"); + DBG(DBG_proc, "xsane_filetype_notebook\n"); /* Image options notebook page */ setup_vbox = gtk_vbox_new(FALSE, 5); - label = gtk_label_new(NOTEBOOK_IMAGE_OPTIONS); + label = gtk_label_new(NOTEBOOK_FILETYPE_OPTIONS); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label); gtk_widget_show(setup_vbox); @@ -1575,6 +1587,21 @@ static void xsane_image_notebook(GtkWidget *notebook) gtk_widget_show(vbox); + /* reduce 16bit to 8bit */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(RADIO_BUTTON_REDUCE_16BIT_TO_8BIT); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_REDUCE_16BIT_TO_8BIT); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.reduce_16bit_to_8bit); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.reduce_16bit_to_8bit_button = button; + + + xsane_separator_new(vbox, 4); + + /* save pnm16 as ascii */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); @@ -1586,16 +1613,31 @@ static void xsane_image_notebook(GtkWidget *notebook) gtk_widget_show(hbox); xsane_setup.save_pnm16_as_ascii_button = button; - /* reduce 16bit to 8bit */ + +#ifdef HAVE_LIBZ + /* save ps with zlib compression / flatdecode = ps level 3 */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(RADIO_BUTTON_REDUCE_16BIT_TO_8BIT); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_REDUCE_16BIT_TO_8BIT); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.reduce_16bit_to_8bit); + button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PS_FLATDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PS_FLATDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_ps_flatdecoded); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); gtk_widget_show(button); gtk_widget_show(hbox); - xsane_setup.reduce_16bit_to_8bit_button = button; + xsane_setup.save_ps_flatdecoded_button = button; + + + /* save pdf with zlib compression / flatdecode */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(RADIO_BUTTON_SAVE_PDF_FLATDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_SAVE_PDF_FLATDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.save_pdf_flatdecoded); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.save_pdf_flatdecoded_button = button; +#endif #ifdef HAVE_LIBJPEG @@ -1625,11 +1667,14 @@ static void xsane_image_notebook(GtkWidget *notebook) #ifdef HAVE_LIBPNG #ifdef HAVE_LIBZ xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_PNG_COMPRESSION, DESC_PNG_COMPRESSION, 0.0, Z_BEST_COMPRESSION, 1.0, 10.0, 0, - &preferences.png_compression, (GtkObject **) &xsane_setup.pnm_image_compression_scale, 0, TRUE); + &preferences.png_compression, (GtkObject **) &xsane_setup.png_image_compression_scale, 0, TRUE); #endif #endif #ifdef HAVE_LIBTIFF + xsane_range_new(GTK_BOX(vbox), TEXT_SETUP_TIFF_ZIP_COMPRESSION, DESC_TIFF_ZIP_COMPRESSION, 1.0, 9.0, 1.0, 6.0, 0, + &preferences.tiff_zip_compression, (GtkObject **) &xsane_setup.tiff_image_zip_compression_scale, 0, TRUE); + /* TIFF 16 BIT IMAGES COMPRESSION */ hbox = gtk_hbox_new(FALSE, 2); @@ -2033,8 +2078,27 @@ static void xsane_fax_notebook(GtkWidget *notebook) gtk_widget_show(hbox); xsane_setup.fax_bottomoffset_entry = text; + +#ifdef HAVE_LIBZ xsane_separator_new(vbox, 4); + + /* flatdecoded = ps level 3 */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + button = gtk_check_button_new_with_label(TEXT_SETUP_FAX_PS_FLATDECODED); + xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_FAX_PS_FLATDECODED); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.fax_ps_flatdecoded); + gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); + gtk_widget_show(button); + gtk_widget_show(hbox); + xsane_setup.fax_ps_flatdecoded_button = button; +#endif + + + xsane_separator_new(vbox, 4); + + /* apply button */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -2054,30 +2118,32 @@ static void xsane_fax_notebook(GtkWidget *notebook) /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_setup_pop3_authentification_callback(GtkWidget *widget, gpointer data) -{ - GtkWidget *pop3_vbox = (GtkWidget *) data; +#ifdef XSANE_ACTIVATE_EMAIL - gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(widget)->active != 0)); -} +static void xsane_email_notebook(GtkWidget *notebook) +{ + typedef struct show_range_mode_t + { + char *name; + int number; + } authentication_type; -/* ---------------------------------------------------------------------------------------------------------------------- */ +#define AUTHENTICATION_NUMBER 4 -#ifdef XSANE_ACTIVATE_MAIL -static void xsane_mail_notebook(GtkWidget *notebook) -{ GtkWidget *setup_vbox, *vbox, *pop3_vbox, *hbox, *button, *label, *text, *frame; + GtkWidget *authentication_option_menu, *authentication_menu, *authentication_menu_item; char buf[64]; char *password; - int i; + authentication_type authentication_strings[AUTHENTICATION_NUMBER]; + int i, select = 0; - DBG(DBG_proc, "xsane_mail_notebook\n"); + DBG(DBG_proc, "xsane_email_notebook\n"); /* Mail options notebook page */ setup_vbox = gtk_vbox_new(FALSE, 5); - label = gtk_label_new(NOTEBOOK_MAIL_OPTIONS); + label = gtk_label_new(NOTEBOOK_EMAIL_OPTIONS); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), setup_vbox, label); gtk_widget_show(setup_vbox); @@ -2096,36 +2162,36 @@ static void xsane_mail_notebook(GtkWidget *notebook) hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_FROM); + label = gtk_label_new(TEXT_SETUP_EMAIL_FROM); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_FROM); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_FROM); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_from); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_from); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_from_entry = text; + xsane_setup.email_from_entry = text; /* reply to */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_REPLY_TO); + label = gtk_label_new(TEXT_SETUP_EMAIL_REPLY_TO); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_REPLY_TO); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_REPLY_TO); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_reply_to); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_reply_to); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_reply_to_entry = text; + xsane_setup.email_reply_to_entry = text; xsane_separator_new(vbox, 2); @@ -2142,11 +2208,11 @@ static void xsane_mail_notebook(GtkWidget *notebook) text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_SERVER); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_smtp_server); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_smtp_server); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_smtp_server_entry = text; + xsane_setup.email_smtp_server_entry = text; /* smtp port */ @@ -2160,12 +2226,12 @@ static void xsane_mail_notebook(GtkWidget *notebook) text = gtk_entry_new(); xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_SMTP_PORT); gtk_widget_set_size_request(text, 50, -1); - snprintf(buf, sizeof(buf), "%d", preferences.mail_smtp_port); + snprintf(buf, sizeof(buf), "%d", preferences.email_smtp_port); gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_smtp_port_entry = text; + xsane_setup.email_smtp_port_entry = text; xsane_separator_new(vbox, 2); @@ -2175,79 +2241,72 @@ static void xsane_mail_notebook(GtkWidget *notebook) pop3_vbox = gtk_vbox_new(FALSE, 5); gtk_widget_show(pop3_vbox); - /* pop3 authentification */ + /* email authentication */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - button = gtk_check_button_new_with_label(RADIO_BUTTON_POP3_AUTHENTIFICATION); - g_signal_connect(GTK_OBJECT(button), "toggled", (GtkSignalFunc) xsane_setup_pop3_authentification_callback, (void *) pop3_vbox); - xsane_back_gtk_set_tooltip(xsane.tooltips, button, DESC_POP3_AUTHENTIFICATION); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), preferences.mail_pop3_authentification); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 2); - gtk_widget_show(button); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_authentification_entry = button; - - /* place vbox for pop3 settings after check_button */ - gtk_box_pack_start(GTK_BOX(vbox), pop3_vbox, FALSE, FALSE, 2); - gtk_widget_set_sensitive(pop3_vbox, (GTK_TOGGLE_BUTTON(button)->active != 0)); - - /* pop3 server */ - hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_SERVER); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTHENTICATION); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_SERVER); - gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_server); - gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); - gtk_widget_show(text); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_server_entry = text; + authentication_strings[0].name = MENU_ITEM_AUTH_NONE; + authentication_strings[0].number = EMAIL_AUTH_NONE; + authentication_strings[1].name = MENU_ITEM_AUTH_POP3; + authentication_strings[1].number = EMAIL_AUTH_POP3; + authentication_strings[2].name = MENU_ITEM_AUTH_ASMTP_PLAIN; + authentication_strings[2].number = EMAIL_AUTH_ASMTP_PLAIN; + authentication_strings[3].name = MENU_ITEM_AUTH_ASMTP_LOGIN; + authentication_strings[3].number = EMAIL_AUTH_ASMTP_LOGIN; +#if 0 + authentication_strings[4].name = MENU_ITEM_AUTH_ASMTP_CRAM_MD5; + authentication_strings[4].number = EMAIL_AUTH_ASMTP_CRAM_MD5; +#endif + authentication_option_menu = gtk_option_menu_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, authentication_option_menu, DESC_EMAIL_AUTHENTICATION); + gtk_box_pack_end(GTK_BOX(hbox), authentication_option_menu, FALSE, FALSE, 2); + gtk_widget_show(authentication_option_menu); + gtk_widget_show(hbox); - /* pop3 port */ - hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + authentication_menu = gtk_menu_new(); - label = gtk_label_new(TEXT_SETUP_POP3_PORT); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - gtk_widget_show(label); + for (i=1; i <= AUTHENTICATION_NUMBER; i++) + { + authentication_menu_item = gtk_menu_item_new_with_label(authentication_strings[i-1].name); + gtk_container_add(GTK_CONTAINER(authentication_menu), authentication_menu_item); + g_signal_connect(GTK_OBJECT(authentication_menu_item), "activate", (GtkSignalFunc) xsane_setup_authentication_type_callback, (void *) authentication_strings[i-1].number); + gtk_widget_show(authentication_menu_item); + if (authentication_strings[i-1].number == preferences.email_authentication) + { + select = i-1; + } + } - text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PORT); - gtk_widget_set_size_request(text, 50, -1); - snprintf(buf, sizeof(buf), "%d", preferences.mail_pop3_port); - gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); - gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); - gtk_widget_show(text); - gtk_widget_show(hbox); - xsane_setup.mail_pop3_port_entry = text; + gtk_option_menu_set_menu(GTK_OPTION_MENU(authentication_option_menu), authentication_menu); + gtk_option_menu_set_history(GTK_OPTION_MENU(authentication_option_menu), select); + xsane_setup.email_authentication = preferences.email_authentication; - /* pop3 username */ + /* email authorization username */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_USER); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTH_USER); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_USER); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_AUTH_USER); gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_pop3_user); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_auth_user); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_pop3_user_entry = text; + xsane_setup.email_auth_user_entry = text; - /* pop3 password */ - password = strdup(preferences.mail_pop3_pass); + /* email authorization password */ + password = strdup(preferences.email_auth_pass); for (i=0; i<strlen(password); i++) { @@ -2255,44 +2314,66 @@ static void xsane_mail_notebook(GtkWidget *notebook) } hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_POP3_PASS); + label = gtk_label_new(TEXT_SETUP_EMAIL_AUTH_PASS); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PASS); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_EMAIL_AUTH_PASS); gtk_widget_set_size_request(text, 250, -1); gtk_entry_set_text(GTK_ENTRY(text), (char *) password); gtk_entry_set_visibility(GTK_ENTRY(text), 0); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_pop3_pass_entry = text; + xsane_setup.email_auth_pass_entry = text; free(password); + /* place vbox for pop3 settings after check_button */ + gtk_box_pack_start(GTK_BOX(vbox), pop3_vbox, FALSE, FALSE, 2); + gtk_widget_set_sensitive(pop3_vbox, preferences.email_authentication == EMAIL_AUTH_POP3); - xsane_separator_new(vbox, 2); + /* pop3 server */ + hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); + gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); + label = gtk_label_new(TEXT_SETUP_POP3_SERVER); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); + gtk_widget_show(label); - /* mailviewer */ + text = gtk_entry_new(); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_SERVER); + gtk_widget_set_size_request(text, 250, -1); + gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.email_pop3_server); + gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); + gtk_widget_show(text); + gtk_widget_show(hbox); + xsane_setup.email_pop3_server_entry = text; + + + /* pop3 port */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 2); + gtk_box_pack_start(GTK_BOX(pop3_vbox), hbox, FALSE, FALSE, 2); - label = gtk_label_new(TEXT_SETUP_MAIL_VIEWER); + label = gtk_label_new(TEXT_SETUP_POP3_PORT); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); gtk_widget_show(label); text = gtk_entry_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_MAIL_VIEWER); - gtk_widget_set_size_request(text, 250, -1); - gtk_entry_set_text(GTK_ENTRY(text), (char *) preferences.mail_viewer); + xsane_back_gtk_set_tooltip(xsane.tooltips, text, DESC_POP3_PORT); + gtk_widget_set_size_request(text, 50, -1); + snprintf(buf, sizeof(buf), "%d", preferences.email_pop3_port); + gtk_entry_set_text(GTK_ENTRY(text), (char *) buf); gtk_box_pack_end(GTK_BOX(hbox), text, FALSE, FALSE, 2); gtk_widget_show(text); gtk_widget_show(hbox); - xsane_setup.mail_viewer_entry = text; + xsane_setup.email_pop3_port_entry = text; + + + xsane_setup.pop3_vbox = pop3_vbox; xsane_separator_new(vbox, 4); @@ -2307,7 +2388,7 @@ static void xsane_mail_notebook(GtkWidget *notebook) #else button = gtk_button_new_with_label(BUTTON_APPLY); #endif - g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_mail_apply_changes, NULL); + g_signal_connect(GTK_OBJECT(button), "clicked", (GtkSignalFunc) xsane_setup_email_apply_changes, NULL); gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); gtk_widget_show(button); @@ -2768,6 +2849,15 @@ static void xsane_enhance_notebook_sensitivity(int lineart_mode) /* ---------------------------------------------------------------------------------------------------------------------- */ +static void xsane_setup_authentication_type_callback(GtkWidget *widget, gpointer data) +{ + xsane_setup.email_authentication = (int) data; + + gtk_widget_set_sensitive(xsane_setup.pop3_vbox, (xsane_setup.email_authentication == EMAIL_AUTH_POP3)); +} + +/* ---------------------------------------------------------------------------------------------------------------------- */ + static void xsane_setup_show_range_mode_callback(GtkWidget *widget, gpointer data) { xsane_setup.show_range_mode = (int) data; @@ -2805,27 +2895,10 @@ static void xsane_setup_preview_pipette_range_callback(GtkWidget *widget, gpoint /* ---------------------------------------------------------------------------------------------------------------------- */ -static void xsane_setup_adf_mode_callback(GtkWidget *widget, gpointer data) -{ - if (xsane_setup.adf_scansource) - { - free(xsane_setup.adf_scansource); - xsane_setup.adf_scansource = NULL; - } - - if (data) - { - xsane_setup.adf_scansource = strdup( (char *) data); - } -} - -/* ---------------------------------------------------------------------------------------------------------------------- */ - static void xsane_enhance_notebook(GtkWidget *notebook) { GtkWidget *setup_vbox, *vbox, *hbox, *button, *label, *text, *frame; GtkWidget *lineart_mode_option_menu, *lineart_mode_menu, *lineart_mode_item; - GtkWidget *adf_option_menu, *adf_menu, *adf_item; GtkWidget *gray_option_menu, *gray_menu, *gray_item; GtkWidget *preview_pipette_range_option_menu, *preview_pipette_range_menu, *preview_pipette_range_item; const SANE_Option_Descriptor *opt; @@ -3130,87 +3203,6 @@ static void xsane_enhance_notebook(GtkWidget *notebook) xsane_separator_new(vbox, 4); - /* ADF modus menu */ - - hbox = gtk_hbox_new(FALSE, 2); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 2); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - - label = gtk_label_new(TEXT_SETUP_ADF_MODE); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 2); - gtk_widget_show(label); - - if (xsane.adf_scansource) - { - xsane_setup.adf_scansource = strdup(xsane.adf_scansource); - } - else - { - xsane_setup.adf_scansource = NULL; - } - - select = 0; - adf_menu = gtk_menu_new(); - - adf_item = gtk_menu_item_new_with_label(MENU_ITEM_SELECTION_NONE); - gtk_container_add(GTK_CONTAINER(adf_menu), adf_item); - g_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, NULL); - gtk_widget_show(adf_item); - - opt = xsane_get_option_descriptor(xsane.dev, xsane.well_known.scansource); - if (opt) - { - if (SANE_OPTION_IS_ACTIVE(opt->cap)) - { - switch (opt->constraint_type) - { - case SANE_CONSTRAINT_STRING_LIST: - { - char *set; - SANE_Status status; - - /* use a "list-selection" widget */ - set = malloc(opt->size); - status = xsane_control_option(xsane.dev, xsane.well_known.scansource, SANE_ACTION_GET_VALUE, set, 0); - - for (i=0; opt->constraint.string_list[i]; i++) - { - adf_item = gtk_menu_item_new_with_label(_BGT(opt->constraint.string_list[i])); - gtk_container_add(GTK_CONTAINER(adf_menu), adf_item); - g_signal_connect(GTK_OBJECT(adf_item), "activate", (GtkSignalFunc) xsane_setup_adf_mode_callback, (void *) opt->constraint.string_list[i]); - - gtk_widget_show(adf_item); - - if (xsane.adf_scansource) - { - if (!strcmp(opt->constraint.string_list[i], xsane.adf_scansource)) - { - select = i+1; - } - } - } - } - break; - - default: - DBG(DBG_error, "adf_scansource_selection: %s %d\n", ERR_UNKNOWN_CONSTRAINT_TYPE, opt->constraint_type); - } - } - } - - adf_option_menu = gtk_option_menu_new(); - xsane_back_gtk_set_tooltip(xsane.tooltips, adf_option_menu, DESC_ADF_MODE); - gtk_box_pack_end(GTK_BOX(hbox), adf_option_menu, FALSE, FALSE, 2); - gtk_option_menu_set_menu(GTK_OPTION_MENU(adf_option_menu), adf_menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(adf_option_menu), select); - gtk_widget_show(hbox); - - gtk_widget_show(adf_option_menu); - - - xsane_separator_new(vbox, 4); - - /* apply button */ hbox = gtk_hbox_new(/* homogeneous */ FALSE, 0); @@ -3266,11 +3258,11 @@ void xsane_setup_dialog(GtkWidget *widget, gpointer data) xsane_saving_notebook(notebook); - xsane_image_notebook(notebook); + xsane_filetype_notebook(notebook); xsane_printer_notebook(notebook); xsane_fax_notebook(notebook); -#ifdef XSANE_ACTIVATE_MAIL - xsane_mail_notebook(notebook); +#ifdef XSANE_ACTIVATE_EMAIL + xsane_email_notebook(notebook); #endif xsane_ocr_notebook(notebook); xsane_display_notebook(notebook); |