diff --git a/Changelog b/Changelog index d9e26ee..6e2ed3a 100644 --- a/Changelog +++ b/Changelog @@ -1,5 +1,9 @@ -2004-04-02 Henning Meier-Geinitz +2004-04-05 Gerard Klaver + * src/gtkglue.c src.gtkglue.h src/preferences.c src/preferences.h + src/xcam.c src/xscanimage.c: Add display option one or two column + See bug #300450. +2004-04-02 Henning Meier-Geinitz * src/preview.c src/xscanimage.c: Set sensitivity to false when scanning or previewing. This change fixes some problems that accour when preview ist started again while preview is running. diff --git a/src/gtkglue.c b/src/gtkglue.c index f68ff26..09ccbdb 100644 --- a/src/gtkglue.c +++ b/src/gtkglue.c @@ -894,8 +894,16 @@ panel_build (GSGDialog * dialog) int num_vector_opts = 0, *vector_opts; main_hbox = gtk_hbox_new (FALSE, 2); + + if (dialog->twocolumn) + { + option_vbox = gtk_hbox_new (FALSE, 2); /* two column display */ + } + else + { + option_vbox = gtk_vbox_new (FALSE, 2); /* one column display */ + } - option_vbox = gtk_vbox_new (FALSE, 2); gtk_box_pack_start (GTK_BOX (main_hbox), option_vbox, FALSE, FALSE, 0); gtk_widget_show (option_vbox); @@ -1258,6 +1266,7 @@ gsg_create_dialog (GtkWidget * window, const char *device_name, dialog->param_change_callback = param_change_callback; dialog->param_change_arg = param_change_arg; dialog->advanced = preferences.advanced; + dialog->twocolumn = preferences.twocolumn_enabled; dialog->element = malloc (num_elements * sizeof (dialog->element[0])); memset (dialog->element, 0, num_elements * sizeof (dialog->element[0])); @@ -1401,6 +1410,13 @@ gsg_set_tooltips (GSGDialog *dialog, int enable) gtk_tooltips_disable (dialog->tooltips); } +void +gsg_set_twocolumn (GSGDialog *dialog, int twocolumn) +{ + dialog->twocolumn = twocolumn; + panel_rebuild (dialog); +} + void gsg_set_sensitivity (GSGDialog *dialog, int sensitive) { diff --git a/src/gtkglue.h b/src/gtkglue.h index 064f204..9efc447 100644 --- a/src/gtkglue.h +++ b/src/gtkglue.h @@ -55,6 +55,7 @@ typedef struct GSGDialog GtkWidget *window; GtkWidget *main_hbox; GtkWidget *advanced_vbox; + GtkWidget *twocolumn; GtkTooltips *tooltips; GdkColor tooltips_fg; GdkColor tooltips_bg; @@ -111,6 +112,7 @@ extern void gsg_refresh_dialog (GSGDialog *dialog); extern void gsg_update_scan_window (GSGDialog *dialog); extern void gsg_set_advanced (GSGDialog *dialog, int advanced); extern void gsg_set_tooltips (GSGDialog *dialog, int enable); +extern void gsg_set_twocolumn (GSGDialog *dialog, int enable); extern void gsg_set_sensitivity (GSGDialog *dialog, int sensitive); extern void gsg_destroy_dialog (GSGDialog * dialog); diff --git a/src/preferences.c b/src/preferences.c index 999cdcc..16c3839 100644 --- a/src/preferences.c +++ b/src/preferences.c @@ -38,6 +38,7 @@ Preferences preferences = 0, /* no default filename */ 0, /* advanced user */ 1, /* tooltips enabled */ + 1, /* two column enabled */ 10.0, /* length unit */ 1, /* preserve_preview */ 0, /* preview_own_cmap */ @@ -60,6 +61,7 @@ desc[] = {"filename", w_string, POFFSET(filename)}, {"advanced", w_int, POFFSET(advanced)}, {"tool-tips", w_int, POFFSET(tooltips_enabled)}, + {"twocolumn", w_int, POFFSET(twocolumn_enabled)}, {"length-unit", w_double, POFFSET(length_unit)}, {"preserve-preview", w_int, POFFSET(preserve_preview)}, {"preview-own-cmap", w_int, POFFSET(preview_own_cmap)}, diff --git a/src/preferences.h b/src/preferences.h index 1caa62b..5c58df3 100644 --- a/src/preferences.h +++ b/src/preferences.h @@ -9,6 +9,7 @@ typedef struct const char *filename; /* default filename */ int advanced; /* advanced user? */ int tooltips_enabled; /* should tooltips be disabled? */ + int twocolumn_enabled; /* should two column be disabled? */ double length_unit; /* 1.0==mm, 10.0==cm, 25.4==inches, etc. */ int preserve_preview; /* save/restore preview image(s)? */ int preview_own_cmap; /* install colormap for preview */ diff --git a/src/xcam.c b/src/xcam.c index a8d4f62..9870a77 100644 --- a/src/xcam.c +++ b/src/xcam.c @@ -492,6 +492,13 @@ pref_toggle_tooltips (GtkWidget *widget, gpointer data) gsg_set_tooltips (dialog, preferences.tooltips_enabled); } +static void +pref_toggle_twocolumn (GtkWidget *widget, gpointer data) +{ + preferences.twocolumn_enabled = (GTK_CHECK_MENU_ITEM (widget)->active != 0); + gsg_set_twocolumn (dialog, preferences.twocolumn_enabled); +} + static GtkWidget * build_preferences_menu (GSGDialog *dialog) { @@ -517,6 +524,16 @@ build_preferences_menu (GSGDialog *dialog) gtk_widget_show (item); gtk_signal_connect (GTK_OBJECT (item), "toggled", (GtkSignalFunc) pref_toggle_tooltips, 0); + + /* twocolumn submenu: */ + + item = gtk_check_menu_item_new_with_label ("Show two column display"); + gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (item), + preferences.twocolumn_enabled); + gtk_menu_append (GTK_MENU (menu), item); + gtk_widget_show (item); + gtk_signal_connect (GTK_OBJECT (item), "toggled", + (GtkSignalFunc) pref_toggle_twocolumn, 0); item = gtk_menu_item_new (); gtk_container_add (GTK_CONTAINER (menu), item); diff --git a/src/xscanimage.c b/src/xscanimage.c index 41a9d9c..1825313 100644 --- a/src/xscanimage.c +++ b/src/xscanimage.c @@ -1583,6 +1583,14 @@ pref_toggle_tooltips (GtkWidget *widget, gpointer data) pref_xscanimage_save (); } +static void +pref_toggle_twocolumn (GtkWidget *widget, gpointer data) +{ + preferences.twocolumn_enabled = (GTK_CHECK_MENU_ITEM (widget)->active != 0); + gsg_set_twocolumn (dialog, preferences.twocolumn_enabled); + pref_xscanimage_save (); +} + static GtkWidget * pref_build_menu (void) { @@ -1612,6 +1620,16 @@ pref_build_menu (void) gtk_widget_show (item); gtk_signal_connect (GTK_OBJECT (item), "toggled", (GtkSignalFunc) pref_toggle_tooltips, 0); + + /* two column submenu: */ + + item = gtk_check_menu_item_new_with_label ("Show two column display"); + gtk_check_menu_item_set_state (GTK_CHECK_MENU_ITEM (item), + preferences.twocolumn_enabled); + gtk_menu_append (GTK_MENU (menu), item); + gtk_widget_show (item); + gtk_signal_connect (GTK_OBJECT (item), "toggled", + (GtkSignalFunc) pref_toggle_twocolumn, 0); /* length unit submenu: */