From 8d1e4afd6f3b6efe2ed989a6bbdd37f120ef8b06 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 24 Feb 2000 18:58:10 +0000 Subject: [PATCH] use the ui constructors from libgimp, put the widgets into frames, removed 2000-02-24 Michael Natterer * plug-ins/print/print.c: use the ui constructors from libgimp, put the widgets into frames, removed callbacks wich are not used any more. Makes the dialog smaller but is not perfect yet. Re-applied Sven's patch which initializes the "File" printer. --- ChangeLog | 7 + plug-ins/print/print.c | 2058 ++++++++++++++-------------------------- 2 files changed, 727 insertions(+), 1338 deletions(-) diff --git a/ChangeLog b/ChangeLog index ab6dc47ec0..b6888618b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2000-02-24 Michael Natterer + + * plug-ins/print/print.c: use the ui constructors from libgimp, + put the widgets into frames, removed callbacks wich are not used + any more. Makes the dialog smaller but is not perfect yet. + Re-applied Sven's patch which initializes the "File" printer. + Thu Feb 24 18:44:58 CET 2000 Sven Neumann * app/menus.c: Applied patch provided by Daniel Egger that diff --git a/plug-ins/print/print.c b/plug-ins/print/print.c index 0fd73c0e16..0c573929ab 100644 --- a/plug-ins/print/print.c +++ b/plug-ins/print/print.c @@ -26,16 +26,11 @@ * query() - Respond to a plug-in query... * run() - Run the plug-in... * print_dialog() - Pop up the print dialog... - * dialog_create_ivalue() - Create an integer value control... - * dialog_iscale_update() - Update the value field using the scale. - * dialog_ientry_update() - Update the value field using the text entry. * print_driver_callback() - Update the current printer driver... * media_size_callback() - Update the current media size... * print_command_callback() - Update the print command... * output_type_callback() - Update the current output type... * print_callback() - Start the print... - * cancel_callback() - Cancel the print... - * close_callback() - Exit the print dialog application. * * Revision History: * @@ -45,7 +40,6 @@ #include "print.h" -#include #include #ifdef __EMX__ #define INCL_DOSDEVICES @@ -57,7 +51,8 @@ #include #include -#include + +#include "libgimp/stdplugins-intl.h" #define PLUG_IN_VERSION "3.0.9 - 23 Feb 2000" #define PLUG_IN_NAME "Print" @@ -69,7 +64,7 @@ #define SCALE_WIDTH 64 #define ENTRY_WIDTH 64 -#define PREVIEW_SIZE 240 /* Assuming max media size of 24" */ +#define PREVIEW_SIZE 240 /* Assuming max media size of 24'' */ #define MAX_PLIST 100 @@ -89,63 +84,54 @@ typedef struct * Local functions... */ -static void printrc_load(void); -static void printrc_save(void); -static int compare_printers(plist_t *p1, plist_t *p2); -static void get_printers(void); +static void printrc_load (void); +static void printrc_save (void); +static int compare_printers (plist_t *p1, plist_t *p2); +static void get_printers (void); -static void query(void); -static void run(char *, int, GParam *, int *, GParam **); -static void init_gtk (void); -static int do_print_dialog(void); -static void brightness_update(GtkAdjustment *); -static void brightness_callback(GtkWidget *); -static void saturation_update(GtkAdjustment *); -static void saturation_callback(GtkWidget *); -static void density_update(GtkAdjustment *); -static void density_callback(GtkWidget *); -static void contrast_update(GtkAdjustment *); -static void contrast_callback(GtkWidget *); -static void red_update(GtkAdjustment *); -static void red_callback(GtkWidget *); -static void green_update(GtkAdjustment *); -static void green_callback(GtkWidget *); -static void blue_update(GtkAdjustment *); -static void blue_callback(GtkWidget *); -static void gamma_update(GtkAdjustment *); -static void gamma_callback(GtkWidget *); -static void scaling_update(GtkAdjustment *); -static void scaling_callback(GtkWidget *); -static void plist_callback(GtkWidget *, gint); -static void media_size_callback(GtkWidget *, gint); -static void media_type_callback(GtkWidget *, gint); -static void media_source_callback(GtkWidget *, gint); -static void resolution_callback(GtkWidget *, gint); -static void output_type_callback(GtkWidget *, gint); -static void linear_callback(GtkWidget *, gint); -static void orientation_callback(GtkWidget *, gint); -static void printandsave_callback(void); -static void print_callback(void); -static void save_callback(void); -static void cancel_callback(void); -static void close_callback(void); +static void query (void); +static void run (char *, int, GParam *, int *, GParam **); +static void init_gtk (void); +static int do_print_dialog (void); -static void setup_open_callback(void); -static void setup_ok_callback(void); -static void setup_cancel_callback(void); -static void ppd_browse_callback(void); -static void ppd_ok_callback(void); -static void ppd_cancel_callback(void); -static void print_driver_callback(GtkWidget *, gint); +static void brightness_update (GtkAdjustment *); +static void gamma_update (GtkAdjustment *); +static void contrast_update (GtkAdjustment *); +static void saturation_update (GtkAdjustment *); +static void density_update (GtkAdjustment *); +static void red_update (GtkAdjustment *); +static void green_update (GtkAdjustment *); +static void blue_update (GtkAdjustment *); -static void file_ok_callback(void); -static void file_cancel_callback(void); +static void scaling_update (GtkAdjustment *); +static void scaling_callback (GtkWidget *); -static void preview_update(void); -static void preview_button_callback(GtkWidget *, GdkEventButton *); -static void preview_motion_callback(GtkWidget *, GdkEventMotion *); -static void top_callback(GtkWidget *); -static void left_callback(GtkWidget *); +static void plist_callback (GtkWidget *, gint); +static void media_size_callback (GtkWidget *, gint); +static void media_type_callback (GtkWidget *, gint); +static void media_source_callback (GtkWidget *, gint); +static void resolution_callback (GtkWidget *, gint); +static void output_type_callback (GtkWidget *, gint); +static void linear_callback (GtkWidget *, gint); +static void orientation_callback (GtkWidget *, gint); +static void printandsave_callback (void); +static void print_callback (void); +static void save_callback (void); + +static void setup_open_callback (void); +static void setup_ok_callback (void); +static void ppd_browse_callback (void); +static void ppd_ok_callback (void); +static void print_driver_callback (GtkWidget *, gint); + +static void file_ok_callback (void); +static void file_cancel_callback (void); + +static void preview_update (void); +static void preview_button_callback (GtkWidget *, GdkEventButton *); +static void preview_motion_callback (GtkWidget *, GdkEventMotion *); +static void top_callback (GtkWidget *); +static void left_callback (GtkWidget *); /* * Globals... @@ -256,27 +242,9 @@ GtkWidget *print_dialog, /* Print dialog window */ *media_source_menu=NULL,/* Media source menu */ *resolution, /* Resolution option button */ *resolution_menu=NULL, /* Resolution menu */ - *scaling_scale, /* Scale widget for scaling */ - *scaling_entry, /* Text entry widget for scaling */ *scaling_percent, /* Scale by percent */ *scaling_ppi, /* Scale by pixels-per-inch */ *scaling_image, /* Scale to the image */ - *brightness_scale, /* Scale for brightness */ - *brightness_entry, /* Text entry widget for brightness */ - *saturation_scale, /* Scale for saturation */ - *saturation_entry, /* Text entry widget for saturation */ - *density_scale, /* Scale for density */ - *density_entry, /* Text entry widget for density */ - *contrast_scale, /* Scale for contrast */ - *contrast_entry, /* Text entry widget for contrast */ - *red_scale, /* Scale for red */ - *red_entry, /* Text entry widget for red */ - *green_scale, /* Scale for green */ - *green_entry, /* Text entry widget for green */ - *blue_scale, /* Scale for blue */ - *blue_entry, /* Text entry widget for blue */ - *gamma_scale, /* Scale for gamma */ - *gamma_entry, /* Text entry widget for gamma */ *output_gray, /* Output type toggle, black */ *output_color, /* Output type toggle, color */ *linear_on, /* Linear toggle, on */ @@ -483,7 +451,7 @@ run(char *name, /* I - Name of print program. */ if (export == EXPORT_CANCEL) { *nreturn_vals = 1; - values[0].data.d_status = STATUS_EXECUTION_ERROR; + values[0].data.d_status = STATUS_CANCEL; return; } break; @@ -729,13 +697,13 @@ run(char *name, /* I - Name of print program. */ } static void -init_gtk () +init_gtk (void) { gchar **argv; - gint argc; + gint argc; - argc = 1; - argv = g_new (gchar *, 1); + argc = 1; + argv = g_new (gchar *, 1); argv[0] = g_strdup ("print"); gtk_init (&argc, &argv); @@ -746,913 +714,672 @@ init_gtk () * 'do_print_dialog()' - Pop up the print dialog... */ -int -do_print_dialog(void) +gint +do_print_dialog (void) { - int i; /* Looping var */ - char s[100]; /* Text string */ - GtkWidget *dialog, /* Dialog window */ - *table, /* Table "container" for controls */ - *label, /* Label string */ - *hbbox, /* button_box for OK/Cancel buttons */ - *button, /* OK/Cancel buttons */ - *scale, /* Scale widget */ - *entry, /* Text entry widget */ - *menu, /* Menu of drivers/sizes */ - *item, /* Menu item */ - *option, /* Option menu button */ - *box; /* Box container */ - GtkObject *scale_data; /* Scale data (limits) */ - GSList *group; /* Grouping for output type */ - GSList *linear_group; /* Grouping for linear scale */ - static char *orients[] = /* Orientation strings */ - { - N_("Auto"), - N_("Portrait"), - N_("Landscape") - }; - gchar *plug_in_name; + gint i; /* Looping var */ + gchar s[100]; /* Text string */ + GtkWidget *dialog; /* Dialog window */ + GtkWidget *main_vbox; + GtkWidget *frame; + GtkWidget *hbox; + GtkWidget *vbox; + GtkWidget *table; /* Table "container" for controls */ + GtkWidget *printer_table; + GtkWidget *sep; + GtkWidget *label; /* Label string */ + GtkWidget *button; /* OK/Cancel buttons */ + GtkWidget *entry; /* Text entry widget */ + GtkWidget *menu; /* Menu of drivers/sizes */ + GtkWidget *item; /* Menu item */ + GtkWidget *option; /* Option menu button */ + GtkWidget *box; /* Box container */ + GSList *group; /* Grouping for output type */ + GSList *linear_group; /* Grouping for linear scale */ + gchar *plug_in_name; - - /* - * Initialize the program's display... - */ + /* + * Initialize the program's display... + */ init_gtk (); - gdk_set_use_xshm (gimp_use_xshm()); + gdk_set_use_xshm (gimp_use_xshm ()); #ifdef SIGBUS - signal(SIGBUS, SIG_DFL); + signal (SIGBUS, SIG_DFL); #endif - signal(SIGSEGV, SIG_DFL); + signal (SIGSEGV, SIG_DFL); - /* - * Get printrc options... - */ + /* + * Get printrc options... + */ - printrc_load(); + printrc_load (); - /* - * Print dialog window... - */ - - print_dialog = dialog = gtk_dialog_new(); + /* + * Print dialog window... + */ plug_in_name = g_strdup_printf (_("Print v%s"), PLUG_IN_VERSION); - gtk_window_set_title(GTK_WINDOW(dialog), plug_in_name); + + print_dialog = dialog = + gimp_dialog_new (plug_in_name, "print", + gimp_plugin_help_func, "filters/print.html", + GTK_WIN_POS_MOUSE, + FALSE, TRUE, FALSE, + + _("Print And\nSave Settings"), printandsave_callback, + NULL, NULL, &printandsave_button, TRUE, FALSE, + _("Save\nSettings"), save_callback, + NULL, NULL, NULL, FALSE, FALSE, + _("Print"), print_callback, + NULL, NULL, NULL, FALSE, FALSE, + _("Cancel"), gtk_widget_destroy, + NULL, 1, NULL, FALSE, TRUE, + + NULL); + g_free (plug_in_name); - - gtk_window_set_wmclass(GTK_WINDOW(dialog), "print", "Gimp"); - gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - gtk_container_border_width(GTK_CONTAINER(dialog), 0); - gtk_signal_connect(GTK_OBJECT(dialog), "destroy", - (GtkSignalFunc)close_callback, NULL); - /* - * Top-level table for dialog... - */ + gtk_signal_connect (GTK_OBJECT (dialog), "destroy", + GTK_SIGNAL_FUNC (gtk_main_quit), + NULL); - table = gtk_table_new(20, 4, FALSE); - gtk_container_border_width(GTK_CONTAINER(table), 6); - gtk_table_set_col_spacings(GTK_TABLE(table), 4); - gtk_table_set_row_spacings(GTK_TABLE(table), 8); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), table, FALSE, FALSE, 0); - gtk_widget_show(table); + /* + * Top-level vbox for dialog... + */ - /* - * Drawing area for page preview... - */ + main_vbox = gtk_vbox_new (FALSE, 4); + gtk_container_set_border_width (GTK_CONTAINER (main_vbox), 6); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), main_vbox, + FALSE, FALSE, 0); + gtk_widget_show (main_vbox); - preview = (GtkDrawingArea *)gtk_drawing_area_new(); - gtk_drawing_area_size(preview, PREVIEW_SIZE, PREVIEW_SIZE); - gtk_table_attach(GTK_TABLE(table), (GtkWidget *)preview, 0, 2, 0, 7, - GTK_FILL, GTK_FILL, 0, 0); - gtk_signal_connect(GTK_OBJECT((GtkWidget *)preview), "expose_event", - (GtkSignalFunc)preview_update, - NULL); - gtk_signal_connect(GTK_OBJECT((GtkWidget *)preview), "button_press_event", - (GtkSignalFunc)preview_button_callback, - NULL); - gtk_signal_connect(GTK_OBJECT((GtkWidget *)preview), "button_release_event", - (GtkSignalFunc)preview_button_callback, - NULL); - gtk_signal_connect(GTK_OBJECT((GtkWidget *)preview), "motion_notify_event", - (GtkSignalFunc)preview_motion_callback, - NULL); - gtk_widget_show((GtkWidget *)preview); + hbox = gtk_hbox_new (FALSE, 6); + gtk_box_pack_start (GTK_BOX (main_vbox), hbox, FALSE, FALSE, 0); + gtk_widget_show (hbox); - gtk_widget_set_events((GtkWidget *)preview, - GDK_EXPOSURE_MASK | GDK_BUTTON_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); - label = gtk_label_new(_("Left:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 8, 9, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 2, 8, 9, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - left_entry = entry = gtk_entry_new(); - sprintf(s, "%.3f", fabs(vars.left)); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "activate", - (GtkSignalFunc)left_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 60, 0); - gtk_widget_show(entry); + frame = gtk_frame_new (_("Preview")); + gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); + + vbox = gtk_vbox_new (FALSE, 4); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 4); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); + + /* + * Drawing area for page preview... + */ + + preview = (GtkDrawingArea *) gtk_drawing_area_new (); + gtk_drawing_area_size (preview, PREVIEW_SIZE, PREVIEW_SIZE); + gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (preview), FALSE, FALSE, 0); + gtk_signal_connect (GTK_OBJECT ((GtkWidget *) preview), "expose_event", + (GtkSignalFunc)preview_update, + NULL); + gtk_signal_connect (GTK_OBJECT ((GtkWidget *) preview), "button_press_event", + (GtkSignalFunc) preview_button_callback, + NULL); + gtk_signal_connect (GTK_OBJECT ((GtkWidget *) preview), "button_release_event", + (GtkSignalFunc) preview_button_callback, + NULL); + gtk_signal_connect (GTK_OBJECT ((GtkWidget *) preview), "motion_notify_event", + (GtkSignalFunc) preview_motion_callback, + NULL); + gtk_widget_show ((GtkWidget *) preview); + + gtk_widget_set_events ((GtkWidget *) preview, + GDK_EXPOSURE_MASK | + GDK_BUTTON_MOTION_MASK | + GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK); + + table = gtk_table_new (2, 4, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 4); + gtk_table_set_row_spacings (GTK_TABLE (table), 4); + gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); + gtk_widget_show (table); + + left_entry = entry = gtk_entry_new (); + sprintf (s, "%.3f", fabs (vars.left)); + gtk_entry_set_text (GTK_ENTRY (entry), s); + gtk_signal_connect (GTK_OBJECT (entry), "activate", + (GtkSignalFunc)left_callback, NULL); + gtk_widget_set_usize (entry, 60, 0); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 0, + _("Left:"), 1.0, 0.5, + entry, 1, TRUE); + + top_entry = entry = gtk_entry_new (); + sprintf (s, "%.3f", fabs (vars.top)); + gtk_entry_set_text (GTK_ENTRY (entry), s); + gtk_signal_connect (GTK_OBJECT (entry), "activate", + (GtkSignalFunc) top_callback, NULL); + gtk_widget_set_usize (entry, 60, 0); + gimp_table_attach_aligned (GTK_TABLE (table), 2, 0, + _("Top:"), 1.0, 0.5, + entry, 1, TRUE); + + right_entry = entry = gtk_entry_new (); + sprintf (s, "%.3f", fabs (vars.left)); + gtk_entry_set_text (GTK_ENTRY (entry), s); + gtk_entry_set_editable (GTK_ENTRY (entry), FALSE); + gtk_widget_set_usize (entry, 60, 0); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 1, + _("Right:"), 1.0, 0.5, + entry, 1, TRUE); + + bottom_entry = entry = gtk_entry_new (); + sprintf (s, "%.3f", fabs (vars.left)); + gtk_entry_set_text (GTK_ENTRY (entry), s); + gtk_entry_set_editable (GTK_ENTRY (entry), FALSE); + gtk_widget_set_usize (entry, 60, 0); + gimp_table_attach_aligned (GTK_TABLE (table), 2, 1, + _("Bottom:"), 1.0, 0.5, + entry, 1, TRUE); - label = gtk_label_new(_("Top:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 8, 9, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 8, 9, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - top_entry = entry = gtk_entry_new(); - sprintf(s, "%.3f", fabs(vars.top)); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "activate", - (GtkSignalFunc)top_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 60, 0); - gtk_widget_show(entry); + frame = gtk_frame_new (_("Printer Settings")); + gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); + gtk_widget_show (frame); + vbox = gtk_vbox_new (FALSE, 4); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 4); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_widget_show (vbox); - label = gtk_label_new(_("Right:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 9, 10, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 2, 9, 10, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - right_entry = entry = gtk_entry_new(); - sprintf(s, "%.3f", fabs(vars.left)); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_entry_set_editable(GTK_ENTRY(entry), FALSE); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 60, 0); - gtk_widget_show(entry); + table = printer_table = gtk_table_new (8, 2, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 4); + gtk_table_set_row_spacings (GTK_TABLE (table), 4); + gtk_container_set_border_width (GTK_CONTAINER (table), 4); + gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); + gtk_widget_show (table); + /* + * Media size option menu... + */ - label = gtk_label_new(_("Bottom:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 9, 10, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 9, 10, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - bottom_entry = entry = gtk_entry_new(); - sprintf(s, "%.3f", fabs(vars.left)); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_entry_set_editable(GTK_ENTRY(entry), FALSE); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 60, 0); - gtk_widget_show(entry); + media_size = option = gtk_option_menu_new (); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 1, + _("Media Size:"), 1.0, 0.5, + option, 1, TRUE); + /* + * Media type option menu... + */ - /* - * Media size option menu... - */ + media_type = option = gtk_option_menu_new (); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 2, + _("Media Type:"), 1.0, 0.5, + option, 1, TRUE); - label = gtk_label_new(_("Media Size:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + /* + * Media source option menu... + */ - box = gtk_hbox_new(FALSE, 0); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 1, 2, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + media_source = option = gtk_option_menu_new (); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 3, + _("Media Source:"), 1.0, 0.5, + option, 1, TRUE); - media_size = option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); + /* + * Orientation option menu... + */ - /* - * Media type option menu... - */ + option = gimp_option_menu_new (FALSE, - label = gtk_label_new(_("Media Type:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 2, 3, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + _("Auto"), orientation_callback, + (gpointer) -1, NULL, NULL, TRUE, + _("Portrait"), orientation_callback, + (gpointer) 0, NULL, NULL, FALSE, + _("Landscape"), orientation_callback, + (gpointer) 1, NULL, NULL, FALSE, - box = gtk_hbox_new(FALSE, 0); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 2, 3, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + NULL); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 4, + _("Orientation:"), 1.0, 0.5, + option, 1, TRUE); - media_type = option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); + /* + * Resolution option menu... + */ - /* - * Media source option menu... - */ + resolution = option = gtk_option_menu_new (); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 5, + _("Resolution:"), 1.0, 0.5, + option, 1, TRUE); - label = gtk_label_new(_("Media Source:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 3, 4, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + /* + * Output type toggles... + */ - box = gtk_hbox_new(FALSE, 0); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 3, 4, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + box = gtk_vbox_new (FALSE, 2); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 6, + _("Output Type:"), 1.0, 0.15, + box, 1, TRUE); - media_source = option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); - - /* - * Orientation option menu... - */ - - label = gtk_label_new(_("Orientation:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 4, 5, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - menu = gtk_menu_new(); - for (i = 0; i < (int)(sizeof(orients) / sizeof(orients[0])); i ++) - { - item = gtk_menu_item_new_with_label(gettext(orients[i])); - gtk_menu_append(GTK_MENU(menu), item); - gtk_signal_connect(GTK_OBJECT(item), "activate", - (GtkSignalFunc)orientation_callback, - (gpointer)(i - 1)); - gtk_widget_show(item); - } - - box = gtk_hbox_new(FALSE, 0); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 4, 5, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); - gtk_option_menu_set_menu(GTK_OPTION_MENU(option), menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(option), vars.orientation + 1); - gtk_widget_show(option); - - /* - * Resolution option menu... - */ - - label = gtk_label_new(_("Resolution:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 5, 6, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 0); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 5, 6, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - resolution = option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); - - /* - * Output type toggles... - */ - - label = gtk_label_new(_("Output Type:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 7, 8, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 7, 8, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - output_gray = button = gtk_radio_button_new_with_label(NULL, _("B&W")); - group = gtk_radio_button_group(GTK_RADIO_BUTTON(button)); + output_gray = button = gtk_radio_button_new_with_label (NULL, _("B&W")); + group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); if (vars.output_type == 0) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)output_type_callback, - (gpointer)OUTPUT_GRAY); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) output_type_callback, + (gpointer) OUTPUT_GRAY); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - output_color = button = gtk_radio_button_new_with_label(group, _("Color")); + output_color = button = gtk_radio_button_new_with_label (group, _("Color")); if (vars.output_type == 1) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)output_type_callback, - (gpointer)OUTPUT_COLOR); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) output_type_callback, + (gpointer) OUTPUT_COLOR); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - label = gtk_label_new(_("Output Level:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 10, 11, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + box = gtk_vbox_new (FALSE, 2); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 7, + _("Output Level:"), 1.0, 0.15, + box, 1, TRUE); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 10, 11, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - linear_off = button = gtk_radio_button_new_with_label(NULL, _("Normal scale")); - linear_group = gtk_radio_button_group(GTK_RADIO_BUTTON(button)); + linear_off = button = gtk_radio_button_new_with_label (NULL, _("Normal Scale")); + linear_group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); if (vars.linear == 0) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)linear_callback, - (gpointer)0); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) linear_callback, + (gpointer) 0); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - linear_on = button = gtk_radio_button_new_with_label(linear_group, _("Experimental linear scale")); + linear_on = button = gtk_radio_button_new_with_label (linear_group, _("Experimental Linear Scale")); if (vars.linear == 1) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)linear_callback, - (gpointer)1); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) linear_callback, + (gpointer) 1); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - /* - * Scaling... - */ + frame = gtk_frame_new (_("Scaling and Color Settings")); + gtk_box_pack_start (GTK_BOX (main_vbox), frame, FALSE, FALSE, 0); + gtk_widget_show (frame); - label = gtk_label_new(_("Scaling:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 11, 12, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + table = gtk_table_new (11, 3, FALSE); + gtk_table_set_col_spacings (GTK_TABLE (table), 4); + gtk_table_set_row_spacings (GTK_TABLE (table), 2); + gtk_container_set_border_width (GTK_CONTAINER (table), 4); + gtk_container_add (GTK_CONTAINER (frame), table); + gtk_widget_show (table); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 11, 12, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + /* + * Scaling... + */ if (vars.scaling < 0.0) - scaling_adjustment = scale_data = - gtk_adjustment_new(-vars.scaling, 36.0, 1201.0, 1.0, 1.0, 1.0); + { + scaling_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 0, + _("Scaling:"), 200, 0, + -vars.scaling, 36.0, 1201.0, 1.0, 10.0, 1, + TRUE, 0, 0, + NULL, NULL); + } else - scaling_adjustment = scale_data = - gtk_adjustment_new(vars.scaling, 5.0, 101.0, 1.0, 1.0, 1.0); + { + scaling_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 0, + _("Scaling:"), 200, 75, + vars.scaling, 5.0, 100.0, 1.0, 10.0, 1, + TRUE, 0, 0, + NULL, NULL); + } + gtk_signal_connect (GTK_OBJECT (scaling_adjustment), "value_changed", + GTK_SIGNAL_FUNC (scaling_update), + NULL); - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)scaling_update, NULL); + box = gtk_hbox_new (FALSE, 4); + gimp_table_attach_aligned (GTK_TABLE (table), 0, 1, + NULL, 0, 0, + box, 1, TRUE); - scaling_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - scaling_entry = entry = gtk_entry_new(); - sprintf(s, "%.1f", fabs(vars.scaling)); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)scaling_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 60, 0); - gtk_widget_show(entry); - - scaling_percent = button = gtk_radio_button_new_with_label(NULL, _("Percent")); - group = gtk_radio_button_group(GTK_RADIO_BUTTON(button)); + scaling_percent = button = gtk_radio_button_new_with_label (NULL, _("Percent")); + group = gtk_radio_button_group (GTK_RADIO_BUTTON (button)); if (vars.scaling > 0.0) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)scaling_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) scaling_callback, + NULL); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - scaling_ppi = button = gtk_radio_button_new_with_label(group, _("PPI")); + scaling_ppi = button = gtk_radio_button_new_with_label (group, _("PPI")); if (vars.scaling < 0.0) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), TRUE); - gtk_signal_connect(GTK_OBJECT(button), "toggled", - (GtkSignalFunc)scaling_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); + gtk_signal_connect (GTK_OBJECT (button), "toggled", + (GtkSignalFunc) scaling_callback, + NULL); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); - scaling_image = button = gtk_toggle_button_new_with_label(_("Set Image Scale")); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc)scaling_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_widget_show(button); + scaling_image = button = gtk_toggle_button_new_with_label (_("Set Image Scale")); + gtk_signal_connect (GTK_OBJECT (button), "clicked", + (GtkSignalFunc) scaling_callback, + NULL); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); + gtk_widget_show (button); + /* + * Separator + */ - /* - * Brightness slider... - */ + sep = gtk_hseparator_new (); + gtk_table_attach (GTK_TABLE (table), sep, 0, 3, 2, 3, + GTK_FILL, 0, 0, 0); + gtk_widget_show (sep); - label = gtk_label_new(_("Brightness:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 12, 13, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + /* + * Brightness slider... + */ - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 12, 13, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + brightness_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 3, + _("Brightness:"), 200, 0, + vars.brightness, 0.0, 400.0, 1.0, 10.0, 0, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (brightness_adjustment), "value_changed", + GTK_SIGNAL_FUNC (brightness_update), + NULL); - brightness_adjustment = scale_data = - gtk_adjustment_new((float)vars.brightness, 0.0, 401.0, 1.0, 1.0, 1.0); + /* + * Gamma slider... + */ - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)brightness_update, NULL); + gamma_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 4, + _("Gamma:"), 200, 0, + vars.gamma, 0.1, 4.0, 0.001, 0.01, 3, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (gamma_adjustment), "value_changed", + GTK_SIGNAL_FUNC (gamma_update), + NULL); - brightness_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); + /* + * Contrast slider... + */ - brightness_entry = entry = gtk_entry_new(); - sprintf(s, "%d", vars.brightness); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)brightness_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); + contrast_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 5, + _("Contrast:"), 200, 0, + vars.contrast, 25.0, 400.0, 1.0, 10.0, 0, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (contrast_adjustment), "value_changed", + GTK_SIGNAL_FUNC (contrast_update), + NULL); - /* - * Gamma slider... - */ + /* + * Red slider... + */ - label = gtk_label_new(_("Gamma:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 13, 14, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); + red_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 6, + _("Red:"), 200, 0, + vars.red, 0.0, 200.0, 1.0, 10.0, 0, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (red_adjustment), "value_changed", + GTK_SIGNAL_FUNC (red_update), + NULL); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 13, 14, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + /* + * Green slider... + */ - gamma_adjustment = scale_data = - gtk_adjustment_new((float)vars.gamma, 0.1, 4.0, 0.001, 0.01, 1.0); + green_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 7, + _("Green:"), 200, 0, + vars.green, 0.0, 200.0, 1.0, 10.0, 0, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (green_adjustment), "value_changed", + GTK_SIGNAL_FUNC (green_update), + NULL); - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)gamma_update, NULL); + /* + * Blue slider... + */ - gamma_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); + blue_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 8, + _("Blue:"), 200, 0, + vars.blue, 0.0, 200.0, 1.0, 10.0, 0, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (blue_adjustment), "value_changed", + GTK_SIGNAL_FUNC (blue_update), + NULL); - gamma_entry = entry = gtk_entry_new(); - sprintf(s, "%5.3f", vars.gamma); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)gamma_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); + /* + * Saturation slider... + */ + saturation_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 9, + _("Saturation:"), 200, 0, + vars.saturation, 0.001, 10.0, 0.001, 0.01, 3, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (saturation_adjustment), "value_changed", + GTK_SIGNAL_FUNC (saturation_update), + NULL); - /* - * Contrast slider... - */ + /* + * Density slider... + */ - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2); - gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), FALSE); - hbbox = gtk_hbutton_box_new (); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4); - gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox, FALSE, FALSE, 0); - gtk_widget_show (hbbox); + density_adjustment = + gimp_scale_entry_new (GTK_TABLE (table), 0, 10, + _("Density:"), 200, 0, + vars.density, 0.1, 3.0, 0.001, 0.01, 3, + TRUE, 0, 0, + NULL, NULL); + gtk_signal_connect (GTK_OBJECT (density_adjustment), "value_changed", + GTK_SIGNAL_FUNC (density_update), + NULL); - label = gtk_label_new(_("Contrast:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 14, 15, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 14, 15, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + /* + * Printer option menu... + */ - contrast_adjustment = scale_data = - gtk_adjustment_new((float)vars.contrast, 25.0, 401.0, 1.0, 1.0, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)contrast_update, NULL); - - contrast_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - contrast_entry = entry = gtk_entry_new(); - sprintf(s, "%d", vars.contrast); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)contrast_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - /* - * Red slider... - */ - - label = gtk_label_new(_("Red:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 15, 16, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 15, 16, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - red_adjustment = scale_data = - gtk_adjustment_new((float)vars.red, 0.0, 201.0, 1.0, 1.0, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)red_update, NULL); - - red_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - red_entry = entry = gtk_entry_new(); - sprintf(s, "%d", vars.red); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)red_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - /* - * Green slider... - */ - - label = gtk_label_new(_("Green:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 16, 17, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 16, 17, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - green_adjustment = scale_data = - gtk_adjustment_new((float)vars.green, 0.0, 201.0, 1.0, 1.0, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)green_update, NULL); - - green_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - green_entry = entry = gtk_entry_new(); - sprintf(s, "%d", vars.green); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)green_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - /* - * Blue slider... - */ - - label = gtk_label_new(_("Blue:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 17, 18, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 17, 18, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - blue_adjustment = scale_data = - gtk_adjustment_new((float)vars.blue, 0.0, 201.0, 1.0, 1.0, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)blue_update, NULL); - - blue_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - blue_entry = entry = gtk_entry_new(); - sprintf(s, "%d", vars.blue); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)blue_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - /* - * Saturation slider... - */ - - label = gtk_label_new(_("Saturation:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 18, 19, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 18, 19, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - saturation_adjustment = scale_data = - gtk_adjustment_new((float)vars.saturation, 0.001, 10.0, 0.001, 0.01, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)saturation_update, NULL); - - saturation_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - saturation_entry = entry = gtk_entry_new(); - sprintf(s, "%5.3f", vars.saturation); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)saturation_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - /* - * Density slider... - */ - - label = gtk_label_new(_("Density:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 19, 20, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 4, 19, 20, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - density_adjustment = scale_data = - gtk_adjustment_new((float)vars.density, 0.1, 3.0, 0.001, 0.01, 1.0); - - gtk_signal_connect(GTK_OBJECT(scale_data), "value_changed", - (GtkSignalFunc)density_update, NULL); - - density_scale = scale = gtk_hscale_new(GTK_ADJUSTMENT(scale_data)); - gtk_box_pack_start(GTK_BOX(box), scale, FALSE, FALSE, 0); - gtk_widget_set_usize(scale, 200, 0); - gtk_scale_set_draw_value(GTK_SCALE(scale), FALSE); - gtk_range_set_update_policy(GTK_RANGE(scale), GTK_UPDATE_CONTINUOUS); - gtk_widget_show(scale); - - density_entry = entry = gtk_entry_new(); - sprintf(s, "%5.3f", vars.density); - gtk_entry_set_text(GTK_ENTRY(entry), s); - gtk_signal_connect(GTK_OBJECT(entry), "changed", - (GtkSignalFunc)density_callback, NULL); - gtk_box_pack_start(GTK_BOX(box), entry, FALSE, FALSE, 0); - gtk_widget_set_usize(entry, 40, 0); - gtk_widget_show(entry); - - - /* - * Printer option menu... - */ - - label = gtk_label_new(_("Printer:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - menu = gtk_menu_new(); + menu = gtk_menu_new (); for (i = 0; i < plist_count; i ++) { if (plist[i].active) - item = gtk_menu_item_new_with_label(gettext(plist[i].name)); + item = gtk_menu_item_new_with_label (gettext (plist[i].name)); else { - char buf[18]; + gchar buf[18]; buf[0] = '*'; - memcpy(buf + 1, plist[i].name, 17); - item = gtk_menu_item_new_with_label(gettext(buf)); + memcpy (buf + 1, plist[i].name, 17); + item = gtk_menu_item_new_with_label (gettext (buf)); } - gtk_menu_append(GTK_MENU(menu), item); - gtk_signal_connect(GTK_OBJECT(item), "activate", - (GtkSignalFunc)plist_callback, - (gpointer)i); - gtk_widget_show(item); + gtk_menu_append (GTK_MENU (menu), item); + gtk_signal_connect (GTK_OBJECT (item), "activate", + GTK_SIGNAL_FUNC (plist_callback), + (gpointer) i); + gtk_widget_show (item); } - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 3, 4, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); + box = gtk_hbox_new (FALSE, 6); + gimp_table_attach_aligned (GTK_TABLE (printer_table), 0, 0, + _("Printer:"), 1.0, 0.5, + box, 1, TRUE); - option = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(box), option, FALSE, FALSE, 0); - gtk_option_menu_set_menu(GTK_OPTION_MENU(option), menu); - gtk_option_menu_set_history(GTK_OPTION_MENU(option), plist_current); - gtk_widget_show(option); + option = gtk_option_menu_new (); + gtk_box_pack_start (GTK_BOX (box), option, FALSE, FALSE, 0); + gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu); + gtk_option_menu_set_history (GTK_OPTION_MENU (option), plist_current); + gtk_widget_show (option); - button = gtk_button_new_with_label(_("Setup")); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc)setup_open_callback, NULL); - gtk_widget_show(button); - - /* - * Print, cancel buttons... - */ - - gtk_box_set_homogeneous(GTK_BOX(GTK_DIALOG(dialog)->action_area), FALSE); - gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog)->action_area), 0); - - button = printandsave_button = - gtk_button_new_with_label (_("Print And Save Settings")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); + button = gtk_button_new_with_label (_("Setup")); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - (GtkSignalFunc) printandsave_callback, + GTK_SIGNAL_FUNC (setup_open_callback), NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); - gtk_widget_grab_default (button); gtk_widget_show (button); - button = gtk_button_new_with_label (_("Print")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); + /* + * Setup dialog window... + */ + + setup_dialog = dialog = + gimp_dialog_new (_("Setup"), "print", + gimp_plugin_help_func, "filters/print.html", + GTK_WIN_POS_MOUSE, + FALSE, TRUE, FALSE, + + _("OK"), setup_ok_callback, + NULL, NULL, NULL, TRUE, FALSE, + _("Cancel"), gtk_widget_hide, + NULL, 1, NULL, FALSE, TRUE, + + NULL); + + /* + * Top-level table for dialog... + */ + + table = gtk_table_new (3, 2, FALSE); + gtk_container_border_width (GTK_CONTAINER (table), 6); + gtk_table_set_col_spacings (GTK_TABLE (table), 4); + gtk_table_set_row_spacings (GTK_TABLE (table), 8); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), table, + FALSE, FALSE, 0); + gtk_widget_show (table); + + /* + * Printer driver option menu... + */ + + label = gtk_label_new (_("Driver:")); + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + menu = gtk_menu_new (); + for (i = 0; i < (gint) (sizeof (printers) / sizeof (printers[0])); i ++) + { + item = gtk_menu_item_new_with_label (gettext (printers[i].long_name)); + gtk_menu_append (GTK_MENU (menu), item); + gtk_signal_connect (GTK_OBJECT (item), "activate", + (GtkSignalFunc) print_driver_callback, + (gpointer) i); + gtk_widget_show (item); + } + + printer_driver = option = gtk_option_menu_new (); + gtk_table_attach (GTK_TABLE (table), option, 1, 2, 0, 1, + GTK_FILL, GTK_FILL, 0, 0); + gtk_option_menu_set_menu (GTK_OPTION_MENU (option), menu); + gtk_widget_show (option); + + /* + * PPD file... + */ + + label = gtk_label_new (_("PPD File:")); + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + box = gtk_hbox_new (FALSE, 8); + gtk_table_attach (GTK_TABLE (table), box, 1, 2, 1, 2, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (box); + + ppd_file = entry = gtk_entry_new (); + gtk_box_pack_start (GTK_BOX (box), entry, TRUE, TRUE, 0); + gtk_widget_show (entry); + + ppd_button = button = gtk_button_new_with_label (_("Browse")); + gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (button), "clicked", - (GtkSignalFunc) print_callback, + (GtkSignalFunc) ppd_browse_callback, NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); gtk_widget_show (button); - button = gtk_button_new_with_label (_("Save Current Settings")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - (GtkSignalFunc) save_callback, + /* + * Print command... + */ + + label = gtk_label_new (_("Command:")); + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (label); + + output_cmd = entry = gtk_entry_new (); + gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 2, 3, + GTK_FILL, GTK_FILL, 0, 0); + gtk_widget_show (entry); + + /* + * Output file selection dialog... + */ + + file_browser = gtk_file_selection_new (_("Print To File?")); + gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_browser)->ok_button), + "clicked", + (GtkSignalFunc) file_ok_callback, + NULL); + gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (file_browser)->cancel_button), + "clicked", + (GtkSignalFunc) file_cancel_callback, NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); - gtk_widget_show (button); - button = gtk_button_new_with_label (_("Cancel")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_signal_connect (GTK_OBJECT(button), "clicked", - (GtkSignalFunc) cancel_callback, NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); - gtk_widget_show (button); + /* + * PPD file selection dialog... + */ - /* - * Setup dialog window... - */ + ppd_browser = gtk_file_selection_new (_("PPD File?")); + gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (ppd_browser)); + gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (ppd_browser)->ok_button), + "clicked", + (GtkSignalFunc) ppd_ok_callback, + NULL); + gtk_signal_connect_object (GTK_OBJECT (GTK_FILE_SELECTION (ppd_browser)->cancel_button), + "clicked", + (GtkSignalFunc) gtk_widget_hide, + GTK_OBJECT (ppd_browser)); - setup_dialog = dialog = gtk_dialog_new(); - gtk_window_set_title(GTK_WINDOW(dialog), _("Setup")); - gtk_window_set_wmclass(GTK_WINDOW(dialog), "print", "Gimp"); - gtk_window_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - gtk_container_border_width(GTK_CONTAINER(dialog), 0); - gtk_signal_connect(GTK_OBJECT(dialog), "destroy", - (GtkSignalFunc)setup_cancel_callback, NULL); + /* + * Show the main dialog and wait for the user to do something... + */ - /* - * Top-level table for dialog... - */ + plist_callback (NULL, plist_current); - table = gtk_table_new(3, 2, FALSE); - gtk_container_border_width(GTK_CONTAINER(table), 6); - gtk_table_set_col_spacings(GTK_TABLE(table), 4); - gtk_table_set_row_spacings(GTK_TABLE(table), 8); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), table, FALSE, FALSE, 0); - gtk_widget_show(table); + gtk_widget_show (print_dialog); - /* - * Printer driver option menu... - */ + gtk_main (); + gdk_flush (); - label = gtk_label_new(_("Driver:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - menu = gtk_menu_new(); - for (i = 0; i < (int)(sizeof(printers) / sizeof(printers[0])); i ++) - { - item = gtk_menu_item_new_with_label(gettext(printers[i].long_name)); - gtk_menu_append(GTK_MENU(menu), item); - gtk_signal_connect(GTK_OBJECT(item), "activate", - (GtkSignalFunc)print_driver_callback, - (gpointer)i); - gtk_widget_show(item); - } - - printer_driver = option = gtk_option_menu_new(); - gtk_table_attach(GTK_TABLE(table), option, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0); - gtk_option_menu_set_menu(GTK_OPTION_MENU(option), menu); - gtk_widget_show(option); - - /* - * PPD file... - */ - - label = gtk_label_new(_("PPD File:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - box = gtk_hbox_new(FALSE, 8); - gtk_table_attach(GTK_TABLE(table), box, 1, 2, 1, 2, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(box); - - ppd_file = entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(box), entry, TRUE, TRUE, 0); - gtk_widget_show(entry); - - ppd_button = button = gtk_button_new_with_label(_("Browse")); - gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc)ppd_browse_callback, NULL); - gtk_widget_show(button); - - /* - * Print command... - */ - - label = gtk_label_new(_("Command:")); - gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); - gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(label); - - output_cmd = entry = gtk_entry_new(); - gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 2, 3, GTK_FILL, GTK_FILL, 0, 0); - gtk_widget_show(entry); - - /* - * OK, cancel buttons... - */ - - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->action_area), 2); - gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), FALSE); - hbbox = gtk_hbutton_box_new (); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbbox), 4); - gtk_box_pack_end (GTK_BOX (GTK_DIALOG (dialog)->action_area), hbbox, FALSE, FALSE, 0); - gtk_widget_show (hbbox); - - button = gtk_button_new_with_label (_("OK")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - (GtkSignalFunc) setup_ok_callback, NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); - gtk_widget_grab_default (button); - gtk_widget_show (button); - - button = gtk_button_new_with_label (_("Cancel")); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_signal_connect(GTK_OBJECT(button), "clicked", - (GtkSignalFunc)setup_cancel_callback, NULL); - gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); - gtk_widget_show (button); - - - /* - * Output file selection dialog... - */ - - file_browser = gtk_file_selection_new(_("Print To File?")); - gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(file_browser)->ok_button), - "clicked", (GtkSignalFunc)file_ok_callback, NULL); - gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(file_browser)->cancel_button), - "clicked", (GtkSignalFunc)file_cancel_callback, NULL); - - /* - * PPD file selection dialog... - */ - - ppd_browser = gtk_file_selection_new(_("PPD File?")); - gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(ppd_browser)); - gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(ppd_browser)->ok_button), - "clicked", (GtkSignalFunc)ppd_ok_callback, NULL); - gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(ppd_browser)->cancel_button), - "clicked", (GtkSignalFunc)ppd_cancel_callback, NULL); - - /* - * Show the main dialog and wait for the user to do something... - */ - - plist_callback(NULL, plist_current); - - gtk_widget_show(print_dialog); - - gtk_main(); - gdk_flush(); - - /* - * Set printrc options... - */ + /* + * Set printrc options... + */ if (saveme) - printrc_save(); + printrc_save (); - /* - * Return ok/cancel... - */ + /* + * Return ok/cancel... + */ - return (runme); + return runme; } @@ -1661,343 +1388,97 @@ do_print_dialog(void) */ static void -brightness_update(GtkAdjustment *adjustment) /* I - New value */ +brightness_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.brightness != adjustment->value) - { - vars.brightness = adjustment->value; - plist[plist_current].v.brightness = adjustment->value; - - sprintf(s, "%d", vars.brightness); - - gtk_signal_handler_block_by_data(GTK_OBJECT(brightness_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(brightness_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(brightness_entry), NULL); - } -} - - -/* - * 'brightness_callback()' - Update the brightness scale using the text entry. - */ - -static void -brightness_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.brightness != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(brightness_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(brightness_adjustment)->upper)) { - GTK_ADJUSTMENT(brightness_adjustment)->value = new_value; - - gtk_signal_emit_by_name(brightness_adjustment, "value_changed"); + vars.brightness = adjustment->value; + plist[plist_current].v.brightness = adjustment->value; } - } } - /* * 'contrast_update()' - Update the contrast field using the scale. */ static void -contrast_update(GtkAdjustment *adjustment) /* I - New value */ +contrast_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.contrast != adjustment->value) - { - vars.contrast = adjustment->value; - plist[plist_current].v.contrast = adjustment->value; - - sprintf(s, "%d", vars.contrast); - - gtk_signal_handler_block_by_data(GTK_OBJECT(contrast_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(contrast_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(contrast_entry), NULL); - } -} - - -/* - * 'contrast_callback()' - Update the contrast scale using the text entry. - */ - -static void -contrast_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.contrast != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(contrast_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(contrast_adjustment)->upper)) { - GTK_ADJUSTMENT(contrast_adjustment)->value = new_value; - - gtk_signal_emit_by_name(contrast_adjustment, "value_changed"); + vars.contrast = adjustment->value; + plist[plist_current].v.contrast = adjustment->value; } - } } - /* * 'red_update()' - Update the red field using the scale. */ static void -red_update(GtkAdjustment *adjustment) /* I - New value */ +red_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.red != adjustment->value) - { - vars.red = adjustment->value; - plist[plist_current].v.red = adjustment->value; - - sprintf(s, "%d", vars.red); - - gtk_signal_handler_block_by_data(GTK_OBJECT(red_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(red_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(red_entry), NULL); - } -} - - -/* - * 'red_callback()' - Update the red scale using the text entry. - */ - -static void -red_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.red != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(red_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(red_adjustment)->upper)) { - GTK_ADJUSTMENT(red_adjustment)->value = new_value; - - gtk_signal_emit_by_name(red_adjustment, "value_changed"); + vars.red = adjustment->value; + plist[plist_current].v.red = adjustment->value; } - } } - /* * 'green_update()' - Update the green field using the scale. */ static void -green_update(GtkAdjustment *adjustment) /* I - New value */ +green_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.green != adjustment->value) - { - vars.green = adjustment->value; - plist[plist_current].v.green = adjustment->value; - - sprintf(s, "%d", vars.green); - - gtk_signal_handler_block_by_data(GTK_OBJECT(green_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(green_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(green_entry), NULL); - } -} - - -/* - * 'green_callback()' - Update the green scale using the text entry. - */ - -static void -green_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.green != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(green_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(green_adjustment)->upper)) { - GTK_ADJUSTMENT(green_adjustment)->value = new_value; - - gtk_signal_emit_by_name(green_adjustment, "value_changed"); + vars.green = adjustment->value; + plist[plist_current].v.green = adjustment->value; } - } } - /* * 'blue_update()' - Update the blue field using the scale. */ static void -blue_update(GtkAdjustment *adjustment) /* I - New value */ +blue_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.blue != adjustment->value) - { - vars.blue = adjustment->value; - plist[plist_current].v.blue = adjustment->value; - - sprintf(s, "%d", vars.blue); - - gtk_signal_handler_block_by_data(GTK_OBJECT(blue_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(blue_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(blue_entry), NULL); - } -} - - -/* - * 'blue_callback()' - Update the blue scale using the text entry. - */ - -static void -blue_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.blue != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(blue_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(blue_adjustment)->upper)) { - GTK_ADJUSTMENT(blue_adjustment)->value = new_value; - - gtk_signal_emit_by_name(blue_adjustment, "value_changed"); + vars.blue = adjustment->value; + plist[plist_current].v.blue = adjustment->value; } - } } - /* * 'gamma_update()' - Update the gamma field using the scale. */ static void -gamma_update(GtkAdjustment *adjustment) /* I - New value */ +gamma_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.gamma != adjustment->value) - { - vars.gamma = adjustment->value; - plist[plist_current].v.gamma = adjustment->value; - - sprintf(s, "%5.3f", vars.gamma); - - gtk_signal_handler_block_by_data(GTK_OBJECT(gamma_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(gamma_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(gamma_entry), NULL); - - } -} - - -/* - * 'gamma_callback()' - Update the gamma scale using the text entry. - */ - -static void -gamma_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.gamma != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(gamma_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(gamma_adjustment)->upper)) { - GTK_ADJUSTMENT(gamma_adjustment)->value = new_value; - - gtk_signal_emit_by_name(gamma_adjustment, "value_changed"); + vars.gamma = adjustment->value; + plist[plist_current].v.gamma = adjustment->value; } - } } - - /* * 'saturation_update()' - Update the saturation field using the scale. */ static void -saturation_update(GtkAdjustment *adjustment) /* I - New value */ +saturation_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.saturation != adjustment->value) - { - vars.saturation = adjustment->value; - plist[plist_current].v.saturation = adjustment->value; - - sprintf(s, "%5.3f", vars.saturation); - - gtk_signal_handler_block_by_data(GTK_OBJECT(saturation_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(saturation_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(saturation_entry), NULL); - } -} - - -/* - * 'saturation_callback()' - Update the saturation scale using the text entry. - */ - -static void -saturation_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.saturation != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(saturation_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(saturation_adjustment)->upper)) { - GTK_ADJUSTMENT(saturation_adjustment)->value = new_value; - - gtk_signal_emit_by_name(saturation_adjustment, "value_changed"); + vars.saturation = adjustment->value; + plist[plist_current].v.saturation = adjustment->value; } - } } /* @@ -2005,135 +1486,74 @@ saturation_callback(GtkWidget *widget) /* I - Entry widget */ */ static void -density_update(GtkAdjustment *adjustment) /* I - New value */ +density_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.density != adjustment->value) - { - vars.density = adjustment->value; - plist[plist_current].v.density = adjustment->value; - - sprintf(s, "%4.3f", vars.density); - - gtk_signal_handler_block_by_data(GTK_OBJECT(density_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(density_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(density_entry), NULL); - } -} - - -/* - * 'density_callback()' - Update the density scale using the text entry. - */ - -static void -density_callback(GtkWidget *widget) /* I - Entry widget */ -{ - gint new_value; /* New scaling value */ - - - new_value = atoi(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.density != new_value) - { - if ((new_value >= GTK_ADJUSTMENT(density_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(density_adjustment)->upper)) { - GTK_ADJUSTMENT(density_adjustment)->value = new_value; - - gtk_signal_emit_by_name(density_adjustment, "value_changed"); + vars.density = adjustment->value; + plist[plist_current].v.density = adjustment->value; } - } } - /* * 'scaling_update()' - Update the scaling field using the scale. */ static void -scaling_update(GtkAdjustment *adjustment) /* I - New value */ +scaling_update (GtkAdjustment *adjustment) /* I - New value */ { - char s[255]; /* Text buffer */ - - if (vars.scaling != adjustment->value) - { - if (GTK_TOGGLE_BUTTON(scaling_ppi)->active) - vars.scaling = -adjustment->value; - else - vars.scaling = adjustment->value; - plist[plist_current].v.scaling = vars.scaling; + { + if (GTK_TOGGLE_BUTTON (scaling_ppi)->active) + vars.scaling = -adjustment->value; + else + vars.scaling = adjustment->value; + plist[plist_current].v.scaling = vars.scaling; + } - sprintf(s, "%.1f", adjustment->value); - - gtk_signal_handler_block_by_data(GTK_OBJECT(scaling_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(scaling_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(scaling_entry), NULL); - - preview_update(); - } + preview_update (); } - /* - * 'scaling_callback()' - Update the scaling scale using the text entry. + * 'scaling_callback()' - Update the scaling scale using radio buttons. */ static void -scaling_callback(GtkWidget *widget) /* I - Entry widget */ +scaling_callback (GtkWidget *widget) { - gfloat new_value; /* New scaling value */ - - - if (widget == scaling_entry) - { - new_value = atof(gtk_entry_get_text(GTK_ENTRY(widget))); - - if (vars.scaling != new_value) + if (widget == scaling_ppi) { - if ((new_value >= GTK_ADJUSTMENT(scaling_adjustment)->lower) && - (new_value < GTK_ADJUSTMENT(scaling_adjustment)->upper)) - { - GTK_ADJUSTMENT(scaling_adjustment)->value = new_value; - - gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); - } + GTK_ADJUSTMENT (scaling_adjustment)->lower = 36.0; + GTK_ADJUSTMENT (scaling_adjustment)->upper = 1200.0; + GTK_ADJUSTMENT (scaling_adjustment)->value = 72.0; + vars.scaling = 0.0; + plist[plist_current].v.scaling = vars.scaling; } - } - else if (widget == scaling_ppi) - { - GTK_ADJUSTMENT(scaling_adjustment)->lower = 36.0; - GTK_ADJUSTMENT(scaling_adjustment)->upper = 1201.0; - GTK_ADJUSTMENT(scaling_adjustment)->value = 72.0; - vars.scaling = 0.0; - plist[plist_current].v.scaling = vars.scaling; - gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); - } else if (widget == scaling_percent) - { - GTK_ADJUSTMENT(scaling_adjustment)->lower = 5.0; - GTK_ADJUSTMENT(scaling_adjustment)->upper = 101.0; - GTK_ADJUSTMENT(scaling_adjustment)->value = 100.0; - vars.scaling = 0.0; - plist[plist_current].v.scaling = vars.scaling; - gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); - } + { + GTK_ADJUSTMENT (scaling_adjustment)->lower = 5.0; + GTK_ADJUSTMENT (scaling_adjustment)->upper = 100.0; + GTK_ADJUSTMENT (scaling_adjustment)->value = 100.0; + vars.scaling = 0.0; + plist[plist_current].v.scaling = vars.scaling; + } else if (widget == scaling_image) - { - double xres, yres; - gimp_image_get_resolution(image_ID, &xres, &yres); - GTK_ADJUSTMENT(scaling_adjustment)->lower = 36.0; - GTK_ADJUSTMENT(scaling_adjustment)->upper = 1201.0; - GTK_ADJUSTMENT(scaling_adjustment)->value = yres; - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(scaling_ppi), TRUE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(scaling_image), FALSE); - vars.scaling = 0.0; - plist[plist_current].v.scaling = vars.scaling; - gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); - } + { + gdouble xres, yres; + + gimp_image_get_resolution (image_ID, &xres, &yres); + + GTK_ADJUSTMENT (scaling_adjustment)->lower = 36.0; + GTK_ADJUSTMENT (scaling_adjustment)->upper = 1201.0; + GTK_ADJUSTMENT (scaling_adjustment)->value = yres; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (scaling_ppi), TRUE); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (scaling_image), FALSE); + vars.scaling = 0.0; + plist[plist_current].v.scaling = vars.scaling; + } + + gtk_adjustment_changed (GTK_ADJUSTMENT (scaling_adjustment)); + gtk_adjustment_value_changed (GTK_ADJUSTMENT (scaling_adjustment)); } static void @@ -2182,29 +1602,37 @@ plist_build_menu(GtkWidget *option, /* I - Option button */ if (*menu != NULL) - { - gtk_widget_destroy(*menu); - *menu = NULL; - } + { + gtk_widget_destroy(*menu); + *menu = NULL; + } + + *menu = gtk_menu_new (); if (num_items == 0) - { - gtk_widget_hide(option); - return; - } - - *menu = gtk_menu_new(); + { + item = gtk_menu_item_new_with_label (_("None")); + gtk_menu_append (GTK_MENU (*menu), item); + gtk_widget_show (item); + gtk_option_menu_set_menu (GTK_OPTION_MENU (option), *menu); + gtk_widget_set_sensitive (option, FALSE); + return; + } + else + { + gtk_widget_set_sensitive (option, TRUE); + } for (i = 0; i < num_items; i ++) - { - item = gtk_menu_item_new_with_label(gettext(items[i])); - if (i == 0) - item0 = item; - gtk_menu_append(GTK_MENU(*menu), item); - gtk_signal_connect(GTK_OBJECT(item), "activate", - (GtkSignalFunc)callback, (gpointer)i); - gtk_widget_show(item); - } + { + item = gtk_menu_item_new_with_label(gettext(items[i])); + if (i == 0) + item0 = item; + gtk_menu_append(GTK_MENU(*menu), item); + gtk_signal_connect(GTK_OBJECT(item), "activate", + (GtkSignalFunc)callback, (gpointer)i); + gtk_widget_show(item); + } gtk_option_menu_set_menu(GTK_OPTION_MENU(option), *menu); @@ -2213,32 +1641,29 @@ plist_build_menu(GtkWidget *option, /* I - Option button */ #endif /* DEBUG */ for (i = 0; i < num_items; i ++) - { + { #ifdef DEBUG - printf("item[%d] = \'%s\'\n", i, items[i]); + printf("item[%d] = \'%s\'\n", i, items[i]); #endif /* DEBUG */ - if (strcmp(items[i], cur_item) == 0) - { - gtk_option_menu_set_history(GTK_OPTION_MENU(option), i); - break; + if (strcmp(items[i], cur_item) == 0) + { + gtk_option_menu_set_history(GTK_OPTION_MENU(option), i); + break; + } } - } if (i == num_items) - { - gtk_option_menu_set_history(GTK_OPTION_MENU(option), 0); - gtk_signal_emit_by_name(GTK_OBJECT(item0), "activate"); - } - - gtk_widget_show(option); + { + gtk_option_menu_set_history(GTK_OPTION_MENU(option), 0); + gtk_signal_emit_by_name(GTK_OBJECT(item0), "activate"); + } } static void -do_misc_updates() +do_misc_updates (void) { - char s[255]; vars.scaling = plist[plist_current].v.scaling; vars.orientation = plist[plist_current].v.orientation; vars.left = plist[plist_current].v.left; @@ -2250,25 +1675,17 @@ do_misc_updates() plist[plist_current].v.scaling = -plist[plist_current].v.scaling; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(scaling_ppi), TRUE); GTK_ADJUSTMENT(scaling_adjustment)->lower = 36.0; - GTK_ADJUSTMENT(scaling_adjustment)->upper = 1201.0; - sprintf(s, "%.1f", tmp); + GTK_ADJUSTMENT(scaling_adjustment)->upper = 1200.0; GTK_ADJUSTMENT(scaling_adjustment)->value = tmp; - gtk_signal_handler_block_by_data(GTK_OBJECT(scaling_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(scaling_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(scaling_entry), NULL); gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); } else { float tmp = plist[plist_current].v.scaling; GTK_ADJUSTMENT(scaling_adjustment)->lower = 5.0; - GTK_ADJUSTMENT(scaling_adjustment)->upper = 101.0; - sprintf(s, "%.1f", tmp); + GTK_ADJUSTMENT(scaling_adjustment)->upper = 100.0; GTK_ADJUSTMENT(scaling_adjustment)->value = tmp; gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(scaling_percent), TRUE); - gtk_signal_handler_block_by_data(GTK_OBJECT(scaling_entry), NULL); - gtk_entry_set_text(GTK_ENTRY(scaling_entry), s); - gtk_signal_handler_unblock_by_data(GTK_OBJECT(scaling_entry), NULL); gtk_signal_emit_by_name(scaling_adjustment, "value_changed"); } @@ -2552,33 +1969,12 @@ printandsave_callback(void) } static void -save_callback(void) +save_callback (void) { - printrc_save(); - gtk_widget_grab_default(printandsave_button); + printrc_save (); + gtk_widget_grab_default (printandsave_button); } -/* - * 'cancel_callback()' - Cancel the print... - */ - -static void -cancel_callback(void) -{ - gtk_widget_destroy(print_dialog); -} - -/* - * 'close_callback()' - Exit the print dialog application. - */ - -static void -close_callback(void) -{ - gtk_main_quit(); -} - - static void setup_open_callback(void) { @@ -2630,13 +2026,6 @@ setup_ok_callback(void) } -static void -setup_cancel_callback(void) -{ - gtk_widget_hide(setup_dialog); -} - - /* * 'print_driver_callback()' - Update the current printer driver... */ @@ -2678,13 +2067,6 @@ ppd_ok_callback(void) } -static void -ppd_cancel_callback(void) -{ - gtk_widget_hide(ppd_browser); -} - - static void file_ok_callback(void) { @@ -3350,7 +2732,7 @@ get_printers(void) strcpy(plist[0].name, _("File")); plist[0].v.output_to[0] = '\0'; strcpy(plist[0].v.driver, "ps2"); - plist[0].v.output_type = OUTPUT_COLOR; + initialize_printer (&plist[0]); #ifdef LPC_COMMAND if ((pfile = popen(LPC_COMMAND " status < /dev/null", "r")) != NULL)