gnome-scan r485 - in trunk: . lib
- From: bersace svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-scan r485 - in trunk: . lib
- Date: Thu, 21 Feb 2008 15:31:39 +0000 (GMT)
Author: bersace
Date: Thu Feb 21 15:31:39 2008
New Revision: 485
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=485&view=rev
Log:
Fix progress bar not shown.
Modified:
trunk/ChangeLog
trunk/lib/gnome-scan-dialog.c
Modified: trunk/lib/gnome-scan-dialog.c
==============================================================================
--- trunk/lib/gnome-scan-dialog.c (original)
+++ trunk/lib/gnome-scan-dialog.c Thu Feb 21 15:31:39 2008
@@ -13,7 +13,7 @@
*
* You should have received a copy of the GNU Lesser General Public
* License along with gnome-scan. If not, write to:
- *
+ *
* the Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301, USA
@@ -50,11 +50,11 @@
#define GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNOME_TYPE_SCAN_DIALOG, GnomeScanDialogPrivate))
#define GTK_WIDGET_SET_VISIBLE(wid,show) if(wid){gtk_widget_set_no_show_all(wid,!show); \
- if(show){gtk_widget_show_all(wid);}else{gtk_widget_hide(wid);}}
+if(show){gtk_widget_show_all(wid);}else{gtk_widget_hide(wid);}}
#define GTK_BOX_SET_VISIBLE(box,show,hval) GTK_WIDGET_SET_VISIBLE(box,show); \
- gsd_add_to_box_show(g_object_get_qdata(G_OBJECT (box), GSD_PAGE_QUARK),show?1:hval); \
- GTK_WIDGET_SET_VISIBLE(gtk_widget_get_parent(box),gsd_get_box_show(gtk_widget_get_parent(box)))
+gsd_add_to_box_show(g_object_get_qdata(G_OBJECT (box), GSD_PAGE_QUARK),show?1:hval); \
+GTK_WIDGET_SET_VISIBLE(gtk_widget_get_parent(box),gsd_get_box_show(gtk_widget_get_parent(box)))
#define gsd_get_box_show(box) (guint)g_object_get_data(G_OBJECT(box),BOX_SHOWN)
#define gsd_set_box_show(box,val) g_object_set_data(G_OBJECT(box),BOX_SHOWN,(gpointer)(val))
@@ -68,118 +68,118 @@
struct _GnomeScanDialogPrivate
{
- /* Properties */
- GnomeScanJob* job;
+ /* Properties */
+ GnomeScanJob* job;
+
+ /* Internals */
+ gboolean disposed;
+ GSList* backends;
+ gint probing_backends;
+ gboolean probe_done;
+ gint scanner_count;
+ gulong scanner_changed_handler;
+ gboolean run;
+
+ /* Widgets */
+ GtkTooltips* tooltips;
+ GtkWidget* notebook;
+
+ /* General */
+ GtkWidget* general_page;
+ GtkWidget* front_scanner_box;
+ GtkWidget* front_sink_box;
+ /* front_custom_box ? */
+ GtkListStore* scanners;
+ GtkTreeSelection* scanner_selection;
+
+ /* preview */
+ GtkWidget* preview_page;
+ GtkWidget* preview_acquisition_box;
+ GtkWidget* preview_progress;
+ GtkWidget* preview_stage;
+ GtkWidget* preview_box;
+ GtkWidget* preview_area;
+ GtkWidget* preview_bbox;
+ GnomeScanJob* preview_job;
+ GValue* preview_res;
+ GValue* saved_res;
+ GValue* saved_origin;
+ GValue* saved_paper_size;
+
+ /* advanced tab */
+ GtkWidget* advanced_page;
+ GtkWidget* advanced_container;
+ GtkWidget* advanced_box;
+
+ GtkWidget* sink_box;
+ GtkWidget* sink_page;
+ GtkWidget* custom_widget;
+
+ /* processing */
+ GtkWidget *processing_page;
+ GtkWidget *processing_container;
+ GtkWidget *processing_box;
- /* Internals */
- gboolean disposed;
- GSList* backends;
- gint probing_backends;
- gboolean probe_done;
- gint scanner_count;
- gulong scanner_changed_handler;
- gboolean run;
-
- /* Widgets */
- GtkTooltips* tooltips;
- GtkWidget* notebook;
-
- /* General */
- GtkWidget* general_page;
- GtkWidget* front_scanner_box;
- GtkWidget* front_sink_box;
- /* front_custom_box ? */
- GtkListStore* scanners;
- GtkTreeSelection* scanner_selection;
-
- /* preview */
- GtkWidget* preview_page;
- GtkWidget* preview_acquisition_box;
- GtkWidget* preview_progress;
- GtkWidget* preview_stage;
- GtkWidget* preview_box;
- GtkWidget* preview_area;
- GtkWidget* preview_bbox;
- GnomeScanJob* preview_job;
- GValue* preview_res;
- GValue* saved_res;
- GValue* saved_origin;
- GValue* saved_paper_size;
-
- /* advanced tab */
- GtkWidget* advanced_page;
- GtkWidget* advanced_container;
- GtkWidget* advanced_box;
-
- GtkWidget* sink_box;
- GtkWidget* sink_page;
- GtkWidget* custom_widget;
-
- /* processing */
- GtkWidget *processing_page;
- GtkWidget *processing_container;
- GtkWidget *processing_box;
-
};
enum
- {
- PAGE_GENERAL,
- PAGE_PREVIEW,
- PAGE_ADVANCED,
- PAGE_PROCESSING,
- PAGE_SINK,
- PAGE_CUSTOM
- };
+{
+ PAGE_GENERAL,
+ PAGE_PREVIEW,
+ PAGE_ADVANCED,
+ PAGE_PROCESSING,
+ PAGE_SINK,
+ PAGE_CUSTOM
+};
enum
- {
- COLUMN_ICON,
- COLUMN_NAME,
- COLUMN_STATUS,
- COLUMN_OBJECT,
- N_COLUMNS
- };
+{
+ COLUMN_ICON,
+ COLUMN_NAME,
+ COLUMN_STATUS,
+ COLUMN_OBJECT,
+ N_COLUMNS
+};
enum
- {
- PROP_0,
- PROP_JOB
- };
+{
+ PROP_0,
+ PROP_JOB
+};
static GtkDialogClass* parent_class = NULL;
static void gsd_message_dialog (GnomeScanDialog *dialog,
- GtkMessageType mtype,
- GtkButtonsType btype,
- const gchar* primary,
- const gchar* secondary);
+ GtkMessageType mtype,
+ GtkButtonsType btype,
+ const gchar* primary,
+ const gchar* secondary);
static void gsd_build_group_box (GnomeScanDialog *dialog,
- GtkWidget *page,
- GtkBox *box,
- GnomeScanPlugin *plugin,
- GQuark group);
+ GtkWidget *page,
+ GtkBox *box,
+ GnomeScanPlugin *plugin,
+ GQuark group);
static void gsd_show_hide_param_widget (GParamSpec *param,
- GnomeScanDialog *dialog);
+ GnomeScanDialog *dialog);
/* INTERNALS */
static void gsd_load_backends (GnomeScanDialog *dialog);
static gboolean gsd_select_scanner_if_ready (GnomeScanDialog *gsd);
static void gsd_scanner_added (GnomeScanBackend *backend,
- GnomeScanner *scanner,
- GnomeScanDialog *dialog);
+ GnomeScanner *scanner,
+ GnomeScanDialog *dialog);
static void gsd_scanner_removed (GnomeScanBackend *backend,
- GnomeScanner *scanner,
- GnomeScanDialog *dialog);
+ GnomeScanner *scanner,
+ GnomeScanDialog *dialog);
static void gsd_plugin_params_changed (GnomeScanPlugin *plugin,
- GParamSpec *pspec,
- GnomeScanDialog* gsd);
+ GParamSpec *pspec,
+ GnomeScanDialog* gsd);
static void gsd_scanner_status_changed (GnomeScanner *scanner,
- GnomeScanDialog *gsd);
+ GnomeScanDialog *gsd);
static void gsd_probe_done (GnomeScanBackend *backend,
- GnomeScanDialog *dialog);
+ GnomeScanDialog *dialog);
/* UI */
@@ -189,7 +189,7 @@
static void gsd_build_sink_ui (GnomeScanDialog *dialog);
static void gsd_build_scanner_ui (GnomeScanDialog *gsd);
static void gsd_scanner_selected (GtkTreeSelection *selection,
- GnomeScanDialog *dialog);
+ GnomeScanDialog *dialog);
/* PREVIEW */
static void gsd_preview_scanner_selected (GnomeScanDialog *gsd);
@@ -217,220 +217,220 @@
static void
gnome_scan_dialog_init (GnomeScanDialog *object)
{
- GnomeScanDialogPrivate* priv = GET_PRIVATE (object);
+ GnomeScanDialogPrivate* priv = GET_PRIVATE (object);
- g_object_set (object,
- "border-width", 6,
- "window-position", GTK_WIN_POS_CENTER,
- "default-width", 320,
- "default-height", 420,
- "title", _("Scan"),
- "has-separator", FALSE,
- "modal", TRUE,
- NULL);
-
- priv->preview_res = g_new0 (GValue, 1);
- g_value_init (priv->preview_res, G_TYPE_DOUBLE);
- g_value_set_double (priv->preview_res, PREVIEW_RES);
+ g_object_set (object,
+ "border-width", 6,
+ "window-position", GTK_WIN_POS_CENTER,
+ "default-width", 320,
+ "default-height", 420,
+ "title", _("Scan"),
+ "has-separator", FALSE,
+ "modal", TRUE,
+ NULL);
+
+ priv->preview_res = g_new0 (GValue, 1);
+ g_value_init (priv->preview_res, G_TYPE_DOUBLE);
+ g_value_set_double (priv->preview_res, PREVIEW_RES);
}
GObject*
gnome_scan_dialog_constructor (GType type, guint n, GObjectConstructParam *params)
{
- GnomeScanDialogPrivate* priv;
- GObject* object;
- GnomeScanDialog *dialog;
- GtkWidget *widget;
- GtkWidget *label;
- GSList *node;
-
- object =
- G_OBJECT_CLASS (gnome_scan_dialog_parent_class)->constructor (type, n,
- params);
- widget = GTK_WIDGET (object);
- dialog = GNOME_SCAN_DIALOG (widget);
- priv = GET_PRIVATE (dialog);
-
- while (gtk_events_pending ())
- gtk_main_iteration ();
-
- /* Dialog */
- gtk_dialog_add_button (GTK_DIALOG (widget),
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL);
-
- gtk_dialog_add_button (GTK_DIALOG (widget),
- GS_STOCK_SCAN,
- GTK_RESPONSE_APPLY);
-
- priv->tooltips = gtk_tooltips_new();
- gtk_tooltips_enable (priv->tooltips);
-
- /* Notebook */
- priv->notebook = gtk_notebook_new ();
- gtk_box_pack_start (GTK_BOX (GTK_DIALOG (widget)->vbox), priv->notebook,
- TRUE, TRUE, 0);
- /* dialog.border_width + notebook.border_width = 6 + 6 = 12 */
- gtk_container_set_border_width (GTK_CONTAINER (priv->notebook), 6);
-
- /* General */
- label = gtk_label_new_with_mnemonic (_("_General"));
- priv->general_page = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (priv->general_page), 12);
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
- priv->general_page, label,
- PAGE_GENERAL);
-
- /* Preview */
- label = gtk_label_new_with_mnemonic (_("Pre_view"));
- priv->preview_page = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (priv->preview_page), 12);
- gtk_widget_set_no_show_all (priv->preview_page, TRUE);
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
- priv->preview_page, label,
- PAGE_PREVIEW);
-
- /* Advanced */
- label = gtk_label_new_with_mnemonic (_("_Advanced"));
- priv->advanced_page = gtk_alignment_new (.5, .5, 1., 1.);
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
- priv->advanced_page, label,
- PAGE_ADVANCED);
- gtk_widget_set_no_show_all (priv->advanced_page, TRUE);
-
- /* Processing */
- label = gtk_label_new_with_mnemonic (_("P_rocessing"));
- priv->processing_box = gtk_vbox_new (FALSE, 6);
- priv->processing_page = priv->processing_box;
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
- priv->processing_page, label,
- PAGE_PROCESSING);
-
- /* Sink */
- label = gtk_label_new_with_mnemonic (_("_Output"));
- priv->sink_box = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (priv->sink_box), 6);
-
- priv->sink_page = priv->sink_box;
- /*scrolled = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_set_no_show_all (priv->sink_page, TRUE);
- gtk_container_set_border_width (GTK_CONTAINER (scrolled), 12);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
- priv->sink_box);
- */
- gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
- priv->sink_page, label,
- PAGE_SINK);
-
- gtk_widget_show_all (priv->notebook);
-
- gsd_build_general_ui (dialog);
- gsd_build_preview_ui (dialog);
- gsd_build_processing_ui (dialog);
- gsd_build_sink_ui (dialog);
-
- /* configure preview job */
- priv->preview_job = gnome_scan_job_new ();
- gnome_scan_job_set_settings (priv->preview_job,
- gnome_scan_job_get_settings (priv->job));
- for (node = gnome_scan_job_get_processors (priv->job)->next; node; node = node->next)
- gnome_scan_job_add_processor (priv->preview_job, node->data);
-
- GnomeScanSink*sink = gnome_scan_preview_sink_new ();
- gnome_scan_job_set_sink (priv->preview_job, sink);
-
- return object;
+ GnomeScanDialogPrivate* priv;
+ GObject* object;
+ GnomeScanDialog *dialog;
+ GtkWidget *widget;
+ GtkWidget *label;
+ GSList *node;
+
+ object =
+ G_OBJECT_CLASS (gnome_scan_dialog_parent_class)->constructor (type, n,
+ params);
+ widget = GTK_WIDGET (object);
+ dialog = GNOME_SCAN_DIALOG (widget);
+ priv = GET_PRIVATE (dialog);
+
+ while (gtk_events_pending ())
+ gtk_main_iteration ();
+
+ /* Dialog */
+ gtk_dialog_add_button (GTK_DIALOG (widget),
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL);
+
+ gtk_dialog_add_button (GTK_DIALOG (widget),
+ GS_STOCK_SCAN,
+ GTK_RESPONSE_APPLY);
+
+ priv->tooltips = gtk_tooltips_new();
+ gtk_tooltips_enable (priv->tooltips);
+
+ /* Notebook */
+ priv->notebook = gtk_notebook_new ();
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (widget)->vbox), priv->notebook,
+ TRUE, TRUE, 0);
+ /* dialog.border_width + notebook.border_width = 6 + 6 = 12 */
+ gtk_container_set_border_width (GTK_CONTAINER (priv->notebook), 6);
+
+ /* General */
+ label = gtk_label_new_with_mnemonic (_("_General"));
+ priv->general_page = gtk_vbox_new (FALSE, 6);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->general_page), 12);
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
+ priv->general_page, label,
+ PAGE_GENERAL);
+
+ /* Preview */
+ label = gtk_label_new_with_mnemonic (_("Pre_view"));
+ priv->preview_page = gtk_vbox_new (FALSE, 6);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->preview_page), 12);
+ gtk_widget_set_no_show_all (priv->preview_page, TRUE);
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
+ priv->preview_page, label,
+ PAGE_PREVIEW);
+
+ /* Advanced */
+ label = gtk_label_new_with_mnemonic (_("_Advanced"));
+ priv->advanced_page = gtk_alignment_new (.5, .5, 1., 1.);
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
+ priv->advanced_page, label,
+ PAGE_ADVANCED);
+ gtk_widget_set_no_show_all (priv->advanced_page, TRUE);
+
+ /* Processing */
+ label = gtk_label_new_with_mnemonic (_("P_rocessing"));
+ priv->processing_box = gtk_vbox_new (FALSE, 6);
+ priv->processing_page = priv->processing_box;
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
+ priv->processing_page, label,
+ PAGE_PROCESSING);
+
+ /* Sink */
+ label = gtk_label_new_with_mnemonic (_("_Output"));
+ priv->sink_box = gtk_vbox_new (FALSE, 6);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->sink_box), 6);
+
+ priv->sink_page = priv->sink_box;
+ /*scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_set_no_show_all (priv->sink_page, TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (scrolled), 12);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
+ priv->sink_box);
+ */
+ gtk_notebook_insert_page (GTK_NOTEBOOK (priv->notebook),
+ priv->sink_page, label,
+ PAGE_SINK);
+
+ gtk_widget_show_all (priv->notebook);
+
+ gsd_build_general_ui (dialog);
+ gsd_build_preview_ui (dialog);
+ gsd_build_processing_ui (dialog);
+ gsd_build_sink_ui (dialog);
+
+ /* configure preview job */
+ priv->preview_job = gnome_scan_job_new ();
+ gnome_scan_job_set_settings (priv->preview_job,
+ gnome_scan_job_get_settings (priv->job));
+ for (node = gnome_scan_job_get_processors (priv->job)->next; node; node = node->next)
+ gnome_scan_job_add_processor (priv->preview_job, node->data);
+
+ GnomeScanSink*sink = gnome_scan_preview_sink_new ();
+ gnome_scan_job_set_sink (priv->preview_job, sink);
+
+ return object;
}
static void
gnome_scan_dialog_dispose (GObject *object)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (object);
- GSList *node;
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (object);
+ GSList *node;
- if (!priv->disposed) {
- g_object_unref (priv->scanners);
- for (node = priv->backends; node; node = node->next) {
- g_object_unref (node->data);
- }
- priv->disposed = TRUE;
- }
+ if (!priv->disposed) {
+ g_object_unref (priv->scanners);
+ for (node = priv->backends; node; node = node->next) {
+ g_object_unref (node->data);
+ }
+ priv->disposed = TRUE;
+ }
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ G_OBJECT_CLASS (parent_class)->dispose (object);
}
static void
gnome_scan_dialog_finalize (GObject *object)
{
- GnomeScanDialogPrivate* priv = GET_PRIVATE (object);
+ GnomeScanDialogPrivate* priv = GET_PRIVATE (object);
- g_value_unset (priv->preview_res);
- g_free (priv->preview_res);
+ g_value_unset (priv->preview_res);
+ g_free (priv->preview_res);
- G_OBJECT_CLASS (parent_class)->finalize (object);
+ G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
gnome_scan_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
- g_return_if_fail (GNOME_IS_SCAN_DIALOG (object));
+ g_return_if_fail (GNOME_IS_SCAN_DIALOG (object));
- switch (prop_id)
- {
- case PROP_JOB:
- GET_PRIVATE (object)->job = GNOME_SCAN_JOB (g_value_dup_object (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ switch (prop_id)
+ {
+ case PROP_JOB:
+ GET_PRIVATE (object)->job = GNOME_SCAN_JOB (g_value_dup_object (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
gnome_scan_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
{
- g_return_if_fail (GNOME_IS_SCAN_DIALOG (object));
+ g_return_if_fail (GNOME_IS_SCAN_DIALOG (object));
- switch (prop_id)
- {
- case PROP_JOB:
- g_value_set_object (value, GET_PRIVATE (object)->job);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ switch (prop_id)
+ {
+ case PROP_JOB:
+ g_value_set_object (value, GET_PRIVATE (object)->job);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
gnome_scan_dialog_class_init (GnomeScanDialogClass *klass)
{
- GObjectClass* object_class = G_OBJECT_CLASS (klass);
- parent_class = GTK_DIALOG_CLASS (g_type_class_peek_parent (klass));
+ GObjectClass* object_class = G_OBJECT_CLASS (klass);
+ parent_class = GTK_DIALOG_CLASS (g_type_class_peek_parent (klass));
- g_type_class_add_private (klass, sizeof (GnomeScanDialogPrivate));
+ g_type_class_add_private (klass, sizeof (GnomeScanDialogPrivate));
- object_class->constructor = gnome_scan_dialog_constructor;
- object_class->finalize = gnome_scan_dialog_finalize;
- object_class->dispose = gnome_scan_dialog_dispose;
- object_class->set_property = gnome_scan_dialog_set_property;
- object_class->get_property = gnome_scan_dialog_get_property;
-
-
- /**
- * GnomeScanDialog:job:
- *
- * The job the dialog is configuring.
- **/
- g_object_class_install_property (object_class,
- PROP_JOB,
- g_param_spec_object ("job",
- "Job",
- "The job the dialog will configure",
- GNOME_TYPE_SCAN_JOB,
- G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+ object_class->constructor = gnome_scan_dialog_constructor;
+ object_class->finalize = gnome_scan_dialog_finalize;
+ object_class->dispose = gnome_scan_dialog_dispose;
+ object_class->set_property = gnome_scan_dialog_set_property;
+ object_class->get_property = gnome_scan_dialog_get_property;
+
+
+ /**
+ * GnomeScanDialog:job:
+ *
+ * The job the dialog is configuring.
+ **/
+ g_object_class_install_property (object_class,
+ PROP_JOB,
+ g_param_spec_object ("job",
+ "Job",
+ "The job the dialog will configure",
+ GNOME_TYPE_SCAN_JOB,
+ G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
}
@@ -445,25 +445,25 @@
* processor and sink.
*
* Returns: a new #GnomeScanDialog
- **/
+ */
GtkWidget*
gnome_scan_dialog_new (GtkWindow *parent, GnomeScanJob *job)
{
- if (!GNOME_IS_SCAN_JOB (job))
- job = gnome_scan_job_new ();
+ if (!GNOME_IS_SCAN_JOB (job))
+ job = gnome_scan_job_new ();
- GObject* object = g_object_new (GNOME_TYPE_SCAN_DIALOG,
- "icon-name", "scanner",
- "transient-for", parent,
- "job", job,
- NULL);
+ GObject* object = g_object_new (GNOME_TYPE_SCAN_DIALOG,
+ "icon-name", "scanner",
+ "transient-for", parent,
+ "job", job,
+ NULL);
- return GTK_WIDGET (object);
+ return GTK_WIDGET (object);
}
/**
* gnome_scan_dialog_run:
- * @dialog: a #GnomeScanDialog
+ * @dialog: a #GnomeScanDialog
*
* Run the dialog. If no backends are loaded, a popup is shown, and
* the function returns. If no scanners has been detected, the dialog
@@ -477,72 +477,72 @@
* See: #GnomeScanJob
**/
void
-gnome_scan_dialog_run (GnomeScanDialog *dialog)
+ gnome_scan_dialog_run (GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate* priv = GET_PRIVATE (dialog);
- GtkWidget* acquisition_dialog;
- GtkWindow* parent = NULL;
- gint response;
-
- gsd_load_backends (dialog);
-
- if (g_slist_length (priv->backends) == 0) {
- gsd_message_dialog (dialog, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
- _("Unable to detect scanners !"),
- _("No drivers has been found."));
- return;
- }
-
- if (priv->probe_done && !priv->scanner_count) {
- gsd_message_dialog (dialog, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
- _("No device found !"),
- _("Ensure your device is plugged, powered, supported and configured. "
- "The dialog will run until you plug a scanner or cancel."));
- }
-
- priv->run = TRUE;
- response = gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_hide (GTK_WIDGET (dialog));
-
- if (response == GTK_RESPONSE_APPLY) {
- g_object_get (dialog, "transient-for", &parent, NULL);
- acquisition_dialog = gnome_scan_acquisition_dialog_new (parent, priv->job);
- gnome_scan_acquisition_dialog_run (GNOME_SCAN_ACQUISITION_DIALOG (acquisition_dialog));
- }
+ GnomeScanDialogPrivate* priv = GET_PRIVATE (dialog);
+ GtkWidget* acquisition_dialog;
+ GtkWindow* parent = NULL;
+ gint response;
+
+ gsd_load_backends (dialog);
+
+ if (g_slist_length (priv->backends) == 0) {
+ gsd_message_dialog (dialog, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE,
+ _("Unable to detect scanners !"),
+ _("No drivers has been found."));
+ return;
+ }
+
+ if (priv->probe_done && !priv->scanner_count) {
+ gsd_message_dialog (dialog, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
+ _("No device found !"),
+ _("Ensure your device is plugged, powered, supported and configured. "
+ "The dialog will run until you plug a scanner or cancel."));
+ }
+
+ priv->run = TRUE;
+ response = gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_hide (GTK_WIDGET (dialog));
+
+ if (response == GTK_RESPONSE_APPLY) {
+ g_object_get (dialog, "transient-for", &parent, NULL);
+ acquisition_dialog = gnome_scan_acquisition_dialog_new (parent, priv->job);
+ gnome_scan_acquisition_dialog_run (GNOME_SCAN_ACQUISITION_DIALOG (acquisition_dialog));
+ }
- return;
+ return;
}
/* INTERNAL */
static void
-gsd_message_dialog (GnomeScanDialog *dialog,
- GtkMessageType mtype,
- GtkButtonsType btype,
- const gchar* primary,
- const gchar* secondary)
-{
- GtkWidget* message_dialog;
- GtkWindow* parent = NULL;
-
- g_object_get (dialog, "transient-for", &parent, NULL);
- if (!(parent && GTK_WIDGET_VISIBLE (GTK_WIDGET (parent))) && GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog))) {
- parent = GTK_WINDOW (dialog);
- }
- else {
- parent = NULL;
- }
-
- message_dialog = gtk_message_dialog_new (parent,
- GTK_DIALOG_MODAL
- | GTK_DIALOG_DESTROY_WITH_PARENT,
- mtype, btype, g_strdup (primary));
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
- g_strdup (secondary));
-
- gtk_dialog_run (GTK_DIALOG (message_dialog));
- gtk_widget_destroy (message_dialog);
+ gsd_message_dialog (GnomeScanDialog *dialog,
+ GtkMessageType mtype,
+ GtkButtonsType btype,
+ const gchar* primary,
+ const gchar* secondary)
+{
+ GtkWidget* message_dialog;
+ GtkWindow* parent = NULL;
+
+ g_object_get (dialog, "transient-for", &parent, NULL);
+ if (!(parent && GTK_WIDGET_VISIBLE (GTK_WIDGET (parent))) && GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog))) {
+ parent = GTK_WINDOW (dialog);
+ }
+ else {
+ parent = NULL;
+ }
+
+ message_dialog = gtk_message_dialog_new (parent,
+ GTK_DIALOG_MODAL
+ | GTK_DIALOG_DESTROY_WITH_PARENT,
+ mtype, btype, g_strdup (primary));
+ gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (message_dialog),
+ g_strdup (secondary));
+
+ gtk_dialog_run (GTK_DIALOG (message_dialog));
+ gtk_widget_destroy (message_dialog);
}
@@ -550,228 +550,228 @@
static void
-gsd_build_group_box (GnomeScanDialog *dialog, GtkWidget *page, GtkBox *box, GnomeScanPlugin *plugin, GQuark group)
-{
- GnomeScanDialogPrivate *priv = GET_PRIVATE(dialog);
- GtkWidget *label, *group_box, *alignment, *table, *widget, *eventbox;
- GSList *node = NULL;
- const gchar *domain;
- gboolean expands, shows_label;
- gboolean box_expands = FALSE;
- gint count = 0;
-
- node = gnome_scan_plugin_get_param_group (plugin, group);
- if (!node)
- return;
-
- group_box = gtk_vbox_new (FALSE, 6);
- gtk_widget_set_no_show_all (group_box, FALSE);
- gsd_init_box_show (group_box);
- g_object_set_qdata (G_OBJECT (group_box), GSD_PAGE_QUARK, page);
- gtk_box_pack_start (box, GTK_WIDGET (group_box), FALSE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (group_box), 6);
-
- /* group label */
- label = gtk_label_new (NULL);
- domain = node ? gs_param_spec_get_domain (node->data) : GETTEXT_PACKAGE;
- domain = domain ? domain : GETTEXT_PACKAGE;
- gtk_label_set_markup (GTK_LABEL (label),
- g_strdup_printf ("<b>%s</b>",
- dgettext (domain,
- g_quark_to_string (group))));
- gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
- gtk_box_pack_start (GTK_BOX (group_box), label, FALSE, TRUE, 0);
-
- /* group's children are padded. */
- alignment = gtk_alignment_new (1., 0., 1., 1.);
- gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 24, 0);
- gtk_box_pack_start (GTK_BOX (group_box), alignment, TRUE, TRUE, 0);
-
- table = gtk_table_new (0, 2, FALSE);
- gtk_table_set_col_spacings (GTK_TABLE (table), 6);
- gtk_table_set_row_spacings (GTK_TABLE (table), 4);
- gtk_container_add (GTK_CONTAINER (alignment), table);
- g_object_set_qdata (G_OBJECT (group_box), GSD_TABLE_QUARK, table);
-
- for (; node ; node = node->next)
- {
- widget = gnome_scan_param_widget_new (gnome_scan_job_get_settings (priv->job),
- plugin, node->data);
+ gsd_build_group_box (GnomeScanDialog *dialog, GtkWidget *page, GtkBox *box, GnomeScanPlugin *plugin, GQuark group)
+{
+ GnomeScanDialogPrivate *priv = GET_PRIVATE(dialog);
+ GtkWidget *label, *group_box, *alignment, *table, *widget, *eventbox;
+ GSList *node = NULL;
+ const gchar *domain;
+ gboolean expands, shows_label;
+ gboolean box_expands = FALSE;
+ gint count = 0;
+
+ node = gnome_scan_plugin_get_param_group (plugin, group);
+ if (!node)
+ return;
+
+ group_box = gtk_vbox_new (FALSE, 6);
+ gtk_widget_set_no_show_all (group_box, FALSE);
+ gsd_init_box_show (group_box);
+ g_object_set_qdata (G_OBJECT (group_box), GSD_PAGE_QUARK, page);
+ gtk_box_pack_start (box, GTK_WIDGET (group_box), FALSE, TRUE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (group_box), 6);
+
+ /* group label */
+ label = gtk_label_new (NULL);
+ domain = node ? gs_param_spec_get_domain (node->data) : GETTEXT_PACKAGE;
+ domain = domain ? domain : GETTEXT_PACKAGE;
+ gtk_label_set_markup (GTK_LABEL (label),
+ g_strdup_printf ("<b>%s</b>",
+ dgettext (domain,
+ g_quark_to_string (group))));
+ gtk_misc_set_alignment (GTK_MISC (label), 0, .5);
+ gtk_box_pack_start (GTK_BOX (group_box), label, FALSE, TRUE, 0);
+
+ /* group's children are padded. */
+ alignment = gtk_alignment_new (1., 0., 1., 1.);
+ gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 24, 0);
+ gtk_box_pack_start (GTK_BOX (group_box), alignment, TRUE, TRUE, 0);
+
+ table = gtk_table_new (0, 2, FALSE);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+ gtk_table_set_row_spacings (GTK_TABLE (table), 4);
+ gtk_container_add (GTK_CONTAINER (alignment), table);
+ g_object_set_qdata (G_OBJECT (group_box), GSD_TABLE_QUARK, table);
+
+ for (; node ; node = node->next)
+ {
+ widget = gnome_scan_param_widget_new (gnome_scan_job_get_settings (priv->job),
+ plugin, node->data);
- if (!widget)
- continue;
+ if (!widget)
+ continue;
- expands = gnome_scan_param_widget_expands (GNOME_SCAN_PARAM_WIDGET (widget));
- shows_label = gnome_scan_param_widget_shows_label (GNOME_SCAN_PARAM_WIDGET (widget));
- box_expands = box_expands || expands;
+ expands = gnome_scan_param_widget_expands (GNOME_SCAN_PARAM_WIDGET (widget));
+ shows_label = gnome_scan_param_widget_shows_label (GNOME_SCAN_PARAM_WIDGET (widget));
+ box_expands = box_expands || expands;
- /* if widget does not have it's own GdkWindow, pack it in a GtkEventBox
- in order to enable tooltips */
- if (GTK_WIDGET_NO_WINDOW (widget)) {
- eventbox = gtk_event_box_new ();
- gtk_container_add (GTK_CONTAINER (eventbox), widget);
- widget = eventbox;
- }
+ /* if widget does not have it's own GdkWindow, pack it in a GtkEventBox
+ in order to enable tooltips */
+ if (GTK_WIDGET_NO_WINDOW (widget)) {
+ eventbox = gtk_event_box_new ();
+ gtk_container_add (GTK_CONTAINER (eventbox), widget);
+ widget = eventbox;
+ }
- gtk_tooltips_set_tip (priv->tooltips, widget,
- dgettext (gs_param_spec_get_domain (node->data),
- g_param_spec_get_blurb (node->data)),
- NULL);
+ gtk_tooltips_set_tip (priv->tooltips, widget,
+ dgettext (gs_param_spec_get_domain (node->data),
+ g_param_spec_get_blurb (node->data)),
+ NULL);
- gtk_widget_set_no_show_all (widget, FALSE);
- gsd_add_to_box_show (group_box, 1);
- g_object_set_qdata (G_OBJECT (widget), GSD_GROUP_QUARK, group_box);
- g_param_spec_set_qdata (node->data, GSD_WIDGET_QUARK, widget);
+ gtk_widget_set_no_show_all (widget, FALSE);
+ gsd_add_to_box_show (group_box, 1);
+ g_object_set_qdata (G_OBJECT (widget), GSD_GROUP_QUARK, group_box);
+ g_param_spec_set_qdata (node->data, GSD_WIDGET_QUARK, widget);
- /* Colspan if widgets shows label itself */
- if (shows_label) {
- gtk_table_attach (GTK_TABLE (table), widget,
- 0, 2,
- count, count+1,
- GTK_EXPAND | GTK_FILL,
- (expands ? GTK_EXPAND | GTK_FILL : GTK_FILL),
- 0, 0);
- label = NULL;
- }
- else {
- label = gtk_label_new (g_strdup_printf (_("%s:"),
- dgettext (gs_param_spec_get_domain (node->data),
- g_param_spec_get_nick (node->data))));
- gtk_misc_set_alignment (GTK_MISC (label), 0., .5);
+ /* Colspan if widgets shows label itself */
+ if (shows_label) {
+ gtk_table_attach (GTK_TABLE (table), widget,
+ 0, 2,
+ count, count+1,
+ GTK_EXPAND | GTK_FILL,
+ (expands ? GTK_EXPAND | GTK_FILL : GTK_FILL),
+ 0, 0);
+ label = NULL;
+ }
+ else {
+ label = gtk_label_new (g_strdup_printf (_("%s:"),
+ dgettext (gs_param_spec_get_domain (node->data),
+ g_param_spec_get_nick (node->data))));
+ gtk_misc_set_alignment (GTK_MISC (label), 0., .5);
- /* pack label in an eventbox */
- eventbox = gtk_event_box_new ();
- gtk_container_add (GTK_CONTAINER (eventbox), label);
- label = eventbox; /* substitute eventbox to label in the following code */
+ /* pack label in an eventbox */
+ eventbox = gtk_event_box_new ();
+ gtk_container_add (GTK_CONTAINER (eventbox), label);
+ label = eventbox; /* substitute eventbox to label in the following code */
- gtk_tooltips_set_tip (priv->tooltips, label,
- dgettext (gs_param_spec_get_domain (node->data),
- g_param_spec_get_blurb (node->data)),
- NULL);
- gtk_table_attach (GTK_TABLE (table), label,
- 0, 1,
- count, count+1,
- GTK_FILL,
- GTK_FILL,
- 0, 0);
- gtk_table_attach (GTK_TABLE (table), widget,
- 1, 2,
- count, count+1,
- GTK_EXPAND | GTK_FILL,
- (expands ? GTK_EXPAND : GTK_FILL) | GTK_FILL,
- 0, 0);
- }
- g_object_set_qdata (G_OBJECT (widget), GSD_LABEL_QUARK, label);
- count++;
- }
-
- /* special handling of front page */
- box_expands = box_expands || group == GS_PARAM_GROUP_SCANNER_FRONT;
-
- /* update packing */
- if (GTK_IS_BOX (page)) {
- gtk_box_set_child_packing (GTK_BOX (page), GTK_WIDGET (box),
- box_expands, TRUE, 0, GTK_PACK_START);
- }
- gtk_box_set_child_packing (GTK_BOX (box), GTK_WIDGET (group_box),
- box_expands, TRUE, 0, GTK_PACK_START);
- gtk_box_set_child_packing (GTK_BOX (group_box), GTK_WIDGET (alignment),
- box_expands, TRUE, 0, GTK_PACK_START);
-
- gsd_add_to_box_show (page, 1);
-
- gtk_widget_set_no_show_all (page, FALSE);
- gtk_widget_show_all (page);
- gtk_widget_realize (page);
-}
-
-static void
-gsd_show_hide_param_widget (GParamSpec *param, GnomeScanDialog *dialog)
-{
- gboolean show = param->flags & G_PARAM_WRITABLE;
- GtkWidget *widget = g_param_spec_get_qdata (param, GSD_WIDGET_QUARK);
-
- if (!widget)
- return;
-
- gboolean shown = !gtk_widget_get_no_show_all (widget);
-
- if ((show && shown) || show == shown)
- return;
-
- gint inc = show ? 1 : -1;
-
- GtkWidget *label = g_object_get_qdata (G_OBJECT (widget), GSD_LABEL_QUARK);
- GtkWidget *group = g_object_get_qdata (G_OBJECT (widget), GSD_GROUP_QUARK);
- GtkWidget *page = g_object_get_qdata (G_OBJECT (group), GSD_PAGE_QUARK);
-
- GTK_WIDGET_SET_VISIBLE (widget, show);
- GTK_WIDGET_SET_VISIBLE (label, show);
-
- gsd_add_to_box_show (group, inc);
- guint count = gsd_get_box_show (group);
- GTK_WIDGET_SET_VISIBLE (group, count);
-
- if (count == 0) {
- inc = -1;
- }
- else if (count == 1) {
- inc = 1;
- }
- else {
- inc = 0;
- }
- gsd_add_to_box_show (page, inc);
- count = gsd_get_box_show (page);
- GTK_WIDGET_SET_VISIBLE (page, count);
-}
-
-static void
-gsd_destroy_param (GParamSpec *param, GnomeScanDialog *dialog)
-{
- GtkWidget *widget = g_param_spec_get_qdata (param, GSD_WIDGET_QUARK);
- if (!widget) {
- GnomeScanPreviewPlugin *plugin = g_param_spec_get_qdata (param, GSD_PLUGIN_QUARK);
- if (plugin) {
- gnome_scan_preview_plugin_destroy (plugin);
- }
- return;
- }
-
- gboolean shown = !gtk_widget_get_no_show_all (widget);
- GtkWidget *label = g_object_get_qdata (G_OBJECT (widget), GSD_LABEL_QUARK);
- GtkWidget *group = g_object_get_qdata (G_OBJECT (widget), GSD_GROUP_QUARK);
- GtkWidget *table = g_object_get_qdata (G_OBJECT (group), GSD_TABLE_QUARK);
- GtkWidget *page = g_object_get_qdata (G_OBJECT (group), GSD_PAGE_QUARK);
-
- /* first destroy param specific widget : label and param widget */
- if (label)
- gtk_widget_destroy (label);
-
- gtk_widget_destroy (widget);
- g_param_spec_set_qdata (param, GSD_WIDGET_QUARK, NULL);
-
- /* decrement group box_show count */
- if (shown) {
- gsd_add_to_box_show (group, -1);
- }
-
- /* decrement page box_show count if now more widget are shown */
- guint count = gsd_get_box_show (group);
- if (count == 0 && shown) {
- gsd_add_to_box_show (page, -1);
- }
-
- /* hide page if no more groups to show */
- count = gsd_get_box_show (page);
- GTK_WIDGET_SET_VISIBLE (page, (count > 0));
-
- /* if group has no more children, destroy it */
- count = g_list_length (GTK_TABLE (table)->children);
- if (count == 0) {
- gtk_widget_destroy (group);
- }
+ gtk_tooltips_set_tip (priv->tooltips, label,
+ dgettext (gs_param_spec_get_domain (node->data),
+ g_param_spec_get_blurb (node->data)),
+ NULL);
+ gtk_table_attach (GTK_TABLE (table), label,
+ 0, 1,
+ count, count+1,
+ GTK_FILL,
+ GTK_FILL,
+ 0, 0);
+ gtk_table_attach (GTK_TABLE (table), widget,
+ 1, 2,
+ count, count+1,
+ GTK_EXPAND | GTK_FILL,
+ (expands ? GTK_EXPAND : GTK_FILL) | GTK_FILL,
+ 0, 0);
+ }
+ g_object_set_qdata (G_OBJECT (widget), GSD_LABEL_QUARK, label);
+ count++;
+ }
+
+ /* special handling of front page */
+ box_expands = box_expands || group == GS_PARAM_GROUP_SCANNER_FRONT;
+
+ /* update packing */
+ if (GTK_IS_BOX (page)) {
+ gtk_box_set_child_packing (GTK_BOX (page), GTK_WIDGET (box),
+ box_expands, TRUE, 0, GTK_PACK_START);
+ }
+ gtk_box_set_child_packing (GTK_BOX (box), GTK_WIDGET (group_box),
+ box_expands, TRUE, 0, GTK_PACK_START);
+ gtk_box_set_child_packing (GTK_BOX (group_box), GTK_WIDGET (alignment),
+ box_expands, TRUE, 0, GTK_PACK_START);
+
+ gsd_add_to_box_show (page, 1);
+
+ gtk_widget_set_no_show_all (page, FALSE);
+ gtk_widget_show_all (page);
+ gtk_widget_realize (page);
+}
+
+static void
+ gsd_show_hide_param_widget (GParamSpec *param, GnomeScanDialog *dialog)
+{
+ gboolean show = param->flags & G_PARAM_WRITABLE;
+ GtkWidget *widget = g_param_spec_get_qdata (param, GSD_WIDGET_QUARK);
+
+ if (!widget)
+ return;
+
+ gboolean shown = !gtk_widget_get_no_show_all (widget);
+
+ if ((show && shown) || show == shown)
+ return;
+
+ gint inc = show ? 1 : -1;
+
+ GtkWidget *label = g_object_get_qdata (G_OBJECT (widget), GSD_LABEL_QUARK);
+ GtkWidget *group = g_object_get_qdata (G_OBJECT (widget), GSD_GROUP_QUARK);
+ GtkWidget *page = g_object_get_qdata (G_OBJECT (group), GSD_PAGE_QUARK);
+
+ GTK_WIDGET_SET_VISIBLE (widget, show);
+ GTK_WIDGET_SET_VISIBLE (label, show);
+
+ gsd_add_to_box_show (group, inc);
+ guint count = gsd_get_box_show (group);
+ GTK_WIDGET_SET_VISIBLE (group, count);
+
+ if (count == 0) {
+ inc = -1;
+ }
+ else if (count == 1) {
+ inc = 1;
+ }
+ else {
+ inc = 0;
+ }
+ gsd_add_to_box_show (page, inc);
+ count = gsd_get_box_show (page);
+ GTK_WIDGET_SET_VISIBLE (page, count);
+}
+
+static void
+ gsd_destroy_param (GParamSpec *param, GnomeScanDialog *dialog)
+{
+ GtkWidget *widget = g_param_spec_get_qdata (param, GSD_WIDGET_QUARK);
+ if (!widget) {
+ GnomeScanPreviewPlugin *plugin = g_param_spec_get_qdata (param, GSD_PLUGIN_QUARK);
+ if (plugin) {
+ gnome_scan_preview_plugin_destroy (plugin);
+ }
+ return;
+ }
+
+ gboolean shown = !gtk_widget_get_no_show_all (widget);
+ GtkWidget *label = g_object_get_qdata (G_OBJECT (widget), GSD_LABEL_QUARK);
+ GtkWidget *group = g_object_get_qdata (G_OBJECT (widget), GSD_GROUP_QUARK);
+ GtkWidget *table = g_object_get_qdata (G_OBJECT (group), GSD_TABLE_QUARK);
+ GtkWidget *page = g_object_get_qdata (G_OBJECT (group), GSD_PAGE_QUARK);
+
+ /* first destroy param specific widget : label and param widget */
+ if (label)
+ gtk_widget_destroy (label);
+
+ gtk_widget_destroy (widget);
+ g_param_spec_set_qdata (param, GSD_WIDGET_QUARK, NULL);
+
+ /* decrement group box_show count */
+ if (shown) {
+ gsd_add_to_box_show (group, -1);
+ }
+
+ /* decrement page box_show count if now more widget are shown */
+ guint count = gsd_get_box_show (group);
+ if (count == 0 && shown) {
+ gsd_add_to_box_show (page, -1);
+ }
+
+ /* hide page if no more groups to show */
+ count = gsd_get_box_show (page);
+ GTK_WIDGET_SET_VISIBLE (page, (count > 0));
+
+ /* if group has no more children, destroy it */
+ count = g_list_length (GTK_TABLE (table)->children);
+ if (count == 0) {
+ gtk_widget_destroy (group);
+ }
}
@@ -782,647 +782,648 @@
/* INTERNALS */
static void
-gsd_load_backends (GnomeScanDialog *dialog)
+ gsd_load_backends (GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- GnomeScanBackend *backend;
- GThread *thread;
- GError *error = NULL;
- GType *backend_types;
- gint i;
- guint n;
- backend_types = g_type_children (GNOME_TYPE_SCAN_BACKEND, &n);
- priv->probing_backends = 0;
- priv->probe_done = FALSE;
-
- for (i = 0 ; i < n ; i++) {
- backend = gnome_scan_backend_new (backend_types[i]);
- priv->backends = g_slist_append (priv->backends, backend);
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ GnomeScanBackend *backend;
+ GThread *thread;
+ GError *error = NULL;
+ GType *backend_types;
+ gint i;
+ guint n;
+ backend_types = g_type_children (GNOME_TYPE_SCAN_BACKEND, &n);
+ priv->probing_backends = 0;
+ priv->probe_done = FALSE;
+
+ for (i = 0 ; i < n ; i++) {
+ backend = gnome_scan_backend_new (backend_types[i]);
+ priv->backends = g_slist_append (priv->backends, backend);
- if (priv->backends) {
- g_signal_connect (backend, "scanner-added",
- (GCallback) gsd_scanner_added, dialog);
- g_signal_connect (backend, "scanner-removed",
- (GCallback) gsd_scanner_removed, dialog);
- g_signal_connect (backend, "probe-done",
- (GCallback) gsd_probe_done, dialog);
+ if (priv->backends) {
+ g_signal_connect (backend, "scanner-added",
+ (GCallback) gsd_scanner_added, dialog);
+ g_signal_connect (backend, "scanner-removed",
+ (GCallback) gsd_scanner_removed, dialog);
+ g_signal_connect (backend, "probe-done",
+ (GCallback) gsd_probe_done, dialog);
- priv->probing_backends++;
+ priv->probing_backends++;
- thread = g_thread_create ((GThreadFunc) gnome_scan_backend_probe_scanners,
- backend, FALSE, &error);
- }
- }
+ thread = g_thread_create ((GThreadFunc) gnome_scan_backend_probe_scanners,
+ backend, FALSE, &error);
+ }
+ }
}
static void
-gsd_scanner_added (GnomeScanBackend *backend, GnomeScanner *scanner, GnomeScanDialog *dialog)
+ gsd_scanner_added (GnomeScanBackend *backend, GnomeScanner *scanner, GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- GtkTreeIter* iter = g_new0 (GtkTreeIter, 1);
-
- gtk_list_store_insert_with_values (priv->scanners, iter, G_MAXINT,
- COLUMN_ICON, gnome_scanner_get_icon_name (scanner),
- COLUMN_NAME, gnome_scan_plugin_get_name (GNOME_SCAN_PLUGIN (scanner)),
- COLUMN_STATUS, gnome_scanner_get_status_string (GNOME_SCANNER (scanner)),
- COLUMN_OBJECT, scanner,
- -1);
- g_object_set_data (G_OBJECT (scanner), "iter", iter);
- g_signal_connect (scanner, "status-changed",
- (GCallback) gsd_scanner_status_changed,
- dialog);
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ GtkTreeIter* iter = g_new0 (GtkTreeIter, 1);
+
+ gtk_list_store_insert_with_values (priv->scanners, iter, G_MAXINT,
+ COLUMN_ICON, gnome_scanner_get_icon_name (scanner),
+ COLUMN_NAME, gnome_scan_plugin_get_name (GNOME_SCAN_PLUGIN (scanner)),
+ COLUMN_STATUS, gnome_scanner_get_status_string (GNOME_SCANNER (scanner)),
+ COLUMN_OBJECT, scanner,
+ -1);
+ g_object_set_data (G_OBJECT (scanner), "iter", iter);
+ g_signal_connect (scanner, "status-changed",
+ (GCallback) gsd_scanner_status_changed,
+ dialog);
- priv->scanner_count++;
+ priv->scanner_count++;
}
static void
-gsd_scanner_removed (GnomeScanBackend *backend, GnomeScanner *scanner, GnomeScanDialog *dialog)
+ gsd_scanner_removed (GnomeScanBackend *backend, GnomeScanner *scanner, GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- GtkTreeIter *iter;
- iter = g_object_steal_data (G_OBJECT (scanner), "iter");
- gtk_list_store_remove (priv->scanners, iter);
- g_free (iter);
- priv->scanner_count--;
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ GtkTreeIter *iter;
+ iter = g_object_steal_data (G_OBJECT (scanner), "iter");
+ gtk_list_store_remove (priv->scanners, iter);
+ g_free (iter);
+ priv->scanner_count--;
}
static void
-gsd_scanner_status_changed (GnomeScanner *scanner, GnomeScanDialog *gsd)
+ gsd_scanner_status_changed (GnomeScanner *scanner, GnomeScanDialog *gsd)
{
- GtkTreeIter *iter;
- iter = g_object_get_data (G_OBJECT (scanner), "iter");
- gtk_list_store_set (GET_PRIVATE (gsd)->scanners, iter,
- COLUMN_STATUS, gnome_scanner_get_status_string (scanner),
- -1);
+ GtkTreeIter *iter;
+ iter = g_object_get_data (G_OBJECT (scanner), "iter");
+ gtk_list_store_set (GET_PRIVATE (gsd)->scanners, iter,
+ COLUMN_STATUS, gnome_scanner_get_status_string (scanner),
+ -1);
}
static void
-gsd_plugin_params_changed (GnomeScanPlugin *plugin, GParamSpec *pspec, GnomeScanDialog* gsd)
+ gsd_plugin_params_changed (GnomeScanPlugin *plugin, GParamSpec *pspec, GnomeScanDialog* gsd)
{
- if (pspec) {
- gsd_show_hide_param_widget (pspec, gsd);
- }
+ if (pspec) {
+ gsd_show_hide_param_widget (pspec, gsd);
+ }
}
static void
-gsd_probe_done (GnomeScanBackend *backend, GnomeScanDialog *dialog)
+ gsd_probe_done (GnomeScanBackend *backend, GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- priv->probe_done = !--priv->probing_backends;
- if (!priv->scanner_count && GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog))) {
- gsd_message_dialog (dialog, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
- _("No device found !"),
- _("Ensure your device is plugged, powered, supported and configured."));
- }
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ priv->probe_done = !--priv->probing_backends;
+ if (!priv->scanner_count && GTK_WIDGET_VISIBLE (GTK_WIDGET (dialog))) {
+ gsd_message_dialog (dialog, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK,
+ _("No device found !"),
+ _("Ensure your device is plugged, powered, supported and configured."));
+ }
}
/* GENERAL */
static void
-gsd_build_general_ui (GnomeScanDialog *dialog)
+ gsd_build_general_ui (GnomeScanDialog *dialog)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- GtkWidget *tree_view, *scrolled;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
-
- priv->scanners = gtk_list_store_new (N_COLUMNS,
- G_TYPE_STRING,
- G_TYPE_STRING,
- G_TYPE_STRING,
- GNOME_TYPE_SCANNER);
-
- /* Tree View */
- tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->scanners));
- g_object_set (tree_view, "search-column", COLUMN_NAME, NULL);
-
- /* Icon */
- renderer = gtk_cell_renderer_pixbuf_new ();
- g_object_set (renderer, "stock-size", GTK_ICON_SIZE_SMALL_TOOLBAR, NULL);
- column = gtk_tree_view_column_new_with_attributes (NULL, renderer,
- "icon-name", COLUMN_ICON,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
- /* Name */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Scanner"), renderer,
- "text", COLUMN_NAME,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
- /* Status */
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (_("Status"), renderer,
- "text", COLUMN_STATUS,
- NULL);
- gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
-
-
- priv->scanner_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
- g_signal_connect (priv->scanner_selection, "changed",
- (GCallback) gsd_scanner_selected, dialog);
-
- /* Scrolled Window */
- scrolled = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
- GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
- tree_view);
- gtk_box_pack_start (GTK_BOX (priv->general_page), scrolled, TRUE, TRUE, 0);
- gtk_widget_set_size_request (scrolled, -1, 128);
-
- /* Scanner front box */
- priv->front_scanner_box = gtk_hbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (priv->general_page), priv->front_scanner_box,
- FALSE, TRUE, 0);
- gsd_init_box_show (priv->front_scanner_box);
-
- /* Sink front box */
- priv->front_sink_box = gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (priv->general_page), priv->front_sink_box,
- FALSE, TRUE, 0);
- gsd_init_box_show (priv->front_sink_box);
-
- gtk_widget_show_all (priv->general_page);
-
-}
-
-static void
-gsd_scanner_selected (GtkTreeSelection *selection, GnomeScanDialog *dialog)
-{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
- GnomeScanner *scanner;
- GtkTreeIter iter;
- GtkTreeModel *model = GTK_TREE_MODEL (priv->scanners);
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ GtkWidget *tree_view, *scrolled;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+
+ priv->scanners = gtk_list_store_new (N_COLUMNS,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ GNOME_TYPE_SCANNER);
+
+ /* Tree View */
+ tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->scanners));
+ g_object_set (tree_view, "search-column", COLUMN_NAME, NULL);
+
+ /* Icon */
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ g_object_set (renderer, "stock-size", GTK_ICON_SIZE_SMALL_TOOLBAR, NULL);
+ column = gtk_tree_view_column_new_with_attributes (NULL, renderer,
+ "icon-name", COLUMN_ICON,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+
+ /* Name */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Scanner"), renderer,
+ "text", COLUMN_NAME,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+
+ /* Status */
+ renderer = gtk_cell_renderer_text_new ();
+ column = gtk_tree_view_column_new_with_attributes (_("Status"), renderer,
+ "text", COLUMN_STATUS,
+ NULL);
+ gtk_tree_view_append_column (GTK_TREE_VIEW (tree_view), column);
+
+
+ priv->scanner_selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+ g_signal_connect (priv->scanner_selection, "changed",
+ (GCallback) gsd_scanner_selected, dialog);
+
+ /* Scrolled Window */
+ scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
+ tree_view);
+ gtk_box_pack_start (GTK_BOX (priv->general_page), scrolled, TRUE, TRUE, 0);
+ gtk_widget_set_size_request (scrolled, -1, 128);
+
+ /* Scanner front box */
+ priv->front_scanner_box = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (priv->general_page), priv->front_scanner_box,
+ FALSE, TRUE, 0);
+ gsd_init_box_show (priv->front_scanner_box);
+
+ /* Sink front box */
+ priv->front_sink_box = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (priv->general_page), priv->front_sink_box,
+ FALSE, TRUE, 0);
+ gsd_init_box_show (priv->front_sink_box);
+
+ gtk_widget_show_all (priv->general_page);
+
+}
+
+static void
+ gsd_scanner_selected (GtkTreeSelection *selection, GnomeScanDialog *dialog)
+{
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (dialog);
+ GnomeScanner *scanner;
+ GtkTreeIter iter;
+ GtkTreeModel *model = GTK_TREE_MODEL (priv->scanners);
- scanner = gnome_scan_job_get_scanner (priv->job);
+ scanner = gnome_scan_job_get_scanner (priv->job);
- if (priv->scanner_changed_handler) {
- g_signal_handler_disconnect (scanner, priv->scanner_changed_handler);
+ if (priv->scanner_changed_handler) {
+ g_signal_handler_disconnect (scanner, priv->scanner_changed_handler);
- gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
- (GFunc) gsd_destroy_param,
- dialog);
- }
-
- gtk_tree_selection_get_selected (selection,
- &model,
- &iter);
- gtk_tree_model_get (model, &iter,
- COLUMN_OBJECT, &scanner,
- -1);
+ gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
+ (GFunc) gsd_destroy_param,
+ dialog);
+ }
+
+ gtk_tree_selection_get_selected (selection,
+ &model,
+ &iter);
+ gtk_tree_model_get (model, &iter,
+ COLUMN_OBJECT, &scanner,
+ -1);
- gnome_scan_job_set_scanner (priv->job, scanner);
- gnome_scan_job_set_scanner (priv->preview_job, scanner);
+ gnome_scan_job_set_scanner (priv->job, scanner);
+ gnome_scan_job_set_scanner (priv->preview_job, scanner);
- g_timeout_add (10, (GSourceFunc) gsd_select_scanner_if_ready, dialog);
+ g_timeout_add (10, (GSourceFunc) gsd_select_scanner_if_ready, dialog);
}
static gboolean
-gsd_select_scanner_if_ready (GnomeScanDialog *gsd)
+ gsd_select_scanner_if_ready (GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
- if (gnome_scanner_get_status (scanner) != GNOME_SCANNER_READY) {
- return TRUE;
- }
- else {
- priv->scanner_changed_handler =
- g_signal_connect (scanner, "params-changed",
- (GCallback) gsd_plugin_params_changed,
- gsd);
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
+ if (gnome_scanner_get_status (scanner) != GNOME_SCANNER_READY) {
+ return TRUE;
+ }
+ else {
+ priv->scanner_changed_handler =
+ g_signal_connect (scanner, "params-changed",
+ (GCallback) gsd_plugin_params_changed,
+ gsd);
- gsd_build_scanner_ui (gsd);
- return FALSE;
- }
-}
-
-static void
-gsd_build_sink_ui (GnomeScanDialog *gsd)
-{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GnomeScanSink *sink = gnome_scan_job_get_sink (priv->job);
- GSList *node, *groups = NULL;
-
- gsd_build_group_box (gsd, priv->general_page,
- GTK_BOX (priv->front_sink_box),
- GNOME_SCAN_PLUGIN (sink),
- GS_PARAM_GROUP_SINK_FRONT);
-
- groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (sink),
- GS_PARAM_GROUP_SINK_FRONT,
- 0);
- for (node = groups; node ; node = node->next) {
- gsd_build_group_box (gsd, priv->sink_page,
- GTK_BOX (priv->sink_box),
- GNOME_SCAN_PLUGIN (sink),
- (GQuark) node->data);
- }
-
- gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (sink),
- (GFunc) gsd_show_hide_param_widget,
- gsd);
- g_signal_connect (sink, "params-changed",
- (GCallback) gsd_plugin_params_changed,
- gsd);
-
+ gsd_build_scanner_ui (gsd);
+ return FALSE;
+ }
+}
+
+static void
+ gsd_build_sink_ui (GnomeScanDialog *gsd)
+{
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GnomeScanSink *sink = gnome_scan_job_get_sink (priv->job);
+ GSList *node, *groups = NULL;
+
+ gsd_build_group_box (gsd, priv->general_page,
+ GTK_BOX (priv->front_sink_box),
+ GNOME_SCAN_PLUGIN (sink),
+ GS_PARAM_GROUP_SINK_FRONT);
+
+ groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (sink),
+ GS_PARAM_GROUP_SINK_FRONT,
+ 0);
+ for (node = groups; node ; node = node->next) {
+ gsd_build_group_box (gsd, priv->sink_page,
+ GTK_BOX (priv->sink_box),
+ GNOME_SCAN_PLUGIN (sink),
+ (GQuark) node->data);
+ }
+
+ gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (sink),
+ (GFunc) gsd_show_hide_param_widget,
+ gsd);
+ g_signal_connect (sink, "params-changed",
+ (GCallback) gsd_plugin_params_changed,
+ gsd);
+
}
static void
-gsd_build_scanner_ui (GnomeScanDialog *gsd)
-{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GtkWidget *widget;
- GSList *node, *groups = NULL;
- GList *params;
- GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
-
- /* front box */
- gsd_build_group_box (gsd, priv->front_scanner_box,
- GTK_BOX (priv->front_scanner_box),
- GNOME_SCAN_PLUGIN (scanner),
- GS_PARAM_GROUP_FORMAT);
-
- gsd_build_group_box (gsd, priv->front_scanner_box,
- GTK_BOX (priv->front_scanner_box),
- GNOME_SCAN_PLUGIN (scanner),
- GS_PARAM_GROUP_SCANNER_FRONT);
- /* preview */
- if (node = gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN (scanner), GS_PARAM_GROUP_PREVIEW)) {
- gsd_preview_scanner_selected (gsd);
- GTK_WIDGET_SET_VISIBLE (priv->preview_page, TRUE);
- }
- else {
- GTK_WIDGET_SET_VISIBLE (priv->preview_page, FALSE);
- }
-
- /* advanced */
-
- /* That's ugly to use a scrolled window while the dialog has enough place for
- e.g. 3 options. So we use a scrolled window only beginning with an arbitrary
- amount of options. Otherwise, we pack directly the box in the notebook.
- TODO: count only advanced options. */
-
- params = gnome_scan_plugin_get_params (GNOME_SCAN_PLUGIN (scanner));
-
- /* clean advanced tab */
- widget = gtk_bin_get_child (GTK_BIN (priv->advanced_page));
- if (widget)
- gtk_widget_destroy (widget);
-
- /* create the containing box */
- priv->advanced_box = gtk_vbox_new (FALSE, 6);
- gtk_container_set_border_width (GTK_CONTAINER (priv->advanced_box), 6);
-
- /* determine which widget is the root of the page. 12 is completely arbitrary,
- waiting for "dialog is too big" bug report */
- if (g_list_length (params) > 12) {
- priv->advanced_container = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_set_border_width (GTK_CONTAINER (priv->advanced_container), 12);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->advanced_container),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (priv->advanced_container),
- priv->advanced_box);
- }
- else {
- priv->advanced_container = priv->advanced_box;
- }
-
- gtk_container_add (GTK_CONTAINER (priv->advanced_page),
- priv->advanced_container);
-
- gtk_widget_realize (priv->advanced_page);
-
- /* get unknown groups, trim manually handled groups */
- groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (scanner),
- GS_PARAM_GROUP_SCANNER_FRONT,
- GS_PARAM_GROUP_PREVIEW,
- GS_PARAM_GROUP_FORMAT,
- 0);
-
- /* build each group in the advanced page */
- for (node = groups; node ; node = node->next) {
- gsd_build_group_box (gsd, priv->advanced_page,
- GTK_BOX (priv->advanced_box),
- GNOME_SCAN_PLUGIN (scanner),
- (GQuark) node->data);
- }
-
- gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
- (GFunc) gsd_show_hide_param_widget,
- gsd);
-}
-
-
-static void
-gsd_update_scanner_ui (GnomeScanDialog *gsd)
-{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
-
- gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
- (GFunc) gsd_show_hide_param_widget,
- gsd);
+ gsd_build_scanner_ui (GnomeScanDialog *gsd)
+{
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GtkWidget *widget;
+ GSList *node, *groups = NULL;
+ GList *params;
+ GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
+
+ /* front box */
+ gsd_build_group_box (gsd, priv->front_scanner_box,
+ GTK_BOX (priv->front_scanner_box),
+ GNOME_SCAN_PLUGIN (scanner),
+ GS_PARAM_GROUP_FORMAT);
+
+ gsd_build_group_box (gsd, priv->front_scanner_box,
+ GTK_BOX (priv->front_scanner_box),
+ GNOME_SCAN_PLUGIN (scanner),
+ GS_PARAM_GROUP_SCANNER_FRONT);
+ /* preview */
+ if (node = gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN (scanner), GS_PARAM_GROUP_PREVIEW)) {
+ gsd_preview_scanner_selected (gsd);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_page, TRUE);
+ }
+ else {
+ GTK_WIDGET_SET_VISIBLE (priv->preview_page, FALSE);
+ }
+
+ /* advanced */
+
+ /* That's ugly to use a scrolled window while the dialog has enough place for
+ e.g. 3 options. So we use a scrolled window only beginning with an arbitrary
+ amount of options. Otherwise, we pack directly the box in the notebook.
+ TODO: count only advanced options. */
+
+ params = gnome_scan_plugin_get_params (GNOME_SCAN_PLUGIN (scanner));
+
+ /* clean advanced tab */
+ widget = gtk_bin_get_child (GTK_BIN (priv->advanced_page));
+ if (widget)
+ gtk_widget_destroy (widget);
+
+ /* create the containing box */
+ priv->advanced_box = gtk_vbox_new (FALSE, 6);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->advanced_box), 6);
+
+ /* determine which widget is the root of the page. 12 is completely arbitrary,
+ waiting for "dialog is too big" bug report */
+ if (g_list_length (params) > 12) {
+ priv->advanced_container = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->advanced_container), 12);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->advanced_container),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (priv->advanced_container),
+ priv->advanced_box);
+ }
+ else {
+ priv->advanced_container = priv->advanced_box;
+ }
+
+ gtk_container_add (GTK_CONTAINER (priv->advanced_page),
+ priv->advanced_container);
+
+ gtk_widget_realize (priv->advanced_page);
+
+ /* get unknown groups, trim manually handled groups */
+ groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (scanner),
+ GS_PARAM_GROUP_SCANNER_FRONT,
+ GS_PARAM_GROUP_PREVIEW,
+ GS_PARAM_GROUP_FORMAT,
+ 0);
+
+ /* build each group in the advanced page */
+ for (node = groups; node ; node = node->next) {
+ gsd_build_group_box (gsd, priv->advanced_page,
+ GTK_BOX (priv->advanced_box),
+ GNOME_SCAN_PLUGIN (scanner),
+ (GQuark) node->data);
+ }
+
+ gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
+ (GFunc) gsd_show_hide_param_widget,
+ gsd);
+}
+
+
+static void
+ gsd_update_scanner_ui (GnomeScanDialog *gsd)
+{
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->job);
+
+ gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (scanner),
+ (GFunc) gsd_show_hide_param_widget,
+ gsd);
}
/* PROCESSING */
static void
-gsd_build_processing_ui(GnomeScanDialog *gsd)
+ gsd_build_processing_ui(GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GSList *proc;
- proc = gnome_scan_job_get_processors (priv->job);
- GSList *node, *groups = NULL;
-
- /* loop each processor and add options */
- for (; proc; proc = proc->next) {
- groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (proc->data),
- GS_PARAM_GROUP_PREVIEW, -1);
- for (node = groups; node ; node = node->next) {
- gsd_build_group_box (gsd, priv->processing_page,
- GTK_BOX (priv->processing_box),
- GNOME_SCAN_PLUGIN (proc->data),
- (GQuark) node->data);
- }
- gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (proc->data),
- (GFunc) gsd_show_hide_param_widget,
- gsd);
- g_signal_connect (GNOME_SCAN_PLUGIN(proc->data), "params-changed",
- (GCallback) gsd_plugin_params_changed,
- gsd);
- }
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GSList *proc;
+ proc = gnome_scan_job_get_processors (priv->job);
+ GSList *node, *groups = NULL;
+
+ /* loop each processor and add options */
+ for (; proc; proc = proc->next) {
+ groups = gnome_scan_plugin_params_get_other_groups (GNOME_SCAN_PLUGIN (proc->data),
+ GS_PARAM_GROUP_PREVIEW, -1);
+ for (node = groups; node ; node = node->next) {
+ gsd_build_group_box (gsd, priv->processing_page,
+ GTK_BOX (priv->processing_box),
+ GNOME_SCAN_PLUGIN (proc->data),
+ (GQuark) node->data);
+ }
+ gnome_scan_plugin_params_foreach (GNOME_SCAN_PLUGIN (proc->data),
+ (GFunc) gsd_show_hide_param_widget,
+ gsd);
+ g_signal_connect (GNOME_SCAN_PLUGIN(proc->data), "params-changed",
+ (GCallback) gsd_plugin_params_changed,
+ gsd);
+ }
}
/* PREVIEW */
static void
-gsd_preview_scanner_selected (GnomeScanDialog *gsd)
+ gsd_preview_scanner_selected (GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GtkWidget*widget = GTK_WIDGET (gsd);
- GParamSpec *pspec;
- GSParamSpecPaperSize *psps;
- GtkPaperSize *ps;
- GnomeScanner *scanner;
- GdkPixbuf *pixbuf;
- GnomeScanPreviewPlugin *plugin;
- GSList *node = NULL, *node0 = NULL;
- GType type;
- gboolean first = TRUE;
-
- /* add buttons */
- scanner = gnome_scan_job_get_scanner (priv->job);
- node0 = gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN (scanner),
- GS_PARAM_GROUP_PREVIEW);
-
- for (node = gnome_scan_job_get_processors (priv->job); node; node = node->next) {
- node0 = g_slist_concat(node0,
- gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN(node->data),
- GS_PARAM_GROUP_PREVIEW));
- }
-
- for (node = node0; node ; node = node->next) {
- pspec = node->data;
- type = gs_param_spec_get_widget_type (pspec);
- g_debug("new preview plugin : %s", g_type_name(type));
- plugin = gnome_scan_preview_plugin (type,
- GNOME_SCAN_PLUGIN (scanner),
- pspec,
- priv->preview_area,
- gnome_scan_job_get_settings (priv->job),
- GTK_BOX (priv->preview_bbox));
- g_param_spec_set_qdata (pspec, GSD_PLUGIN_QUARK, plugin);
-
- if (first)
- gnome_scan_preview_area_select_plugin (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
- plugin);
- first = FALSE;
- }
-
- /* create empty preview */
- pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner),
- "paper-size");
- psps = GS_PARAM_SPEC_PAPER_SIZE (pspec);
- ps = psps->enumeration->next->data;
- gint width = (gint) gs_convert (gtk_paper_size_get_width (ps, GTK_UNIT_MM), GS_UNIT_MM, GS_UNIT_PIXEL, PREVIEW_RES);
- gint height = (gint) gs_convert (gtk_paper_size_get_height (ps, GTK_UNIT_MM), GS_UNIT_MM, GS_UNIT_PIXEL, PREVIEW_RES);
-
- pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
- FALSE, 8,
- width,
- height);
- /* transform a 24bit RGB pixel to 32bit RGBApixel */
- guint32 pixel = (widget->style->bg[GTK_WIDGET_STATE (widget)].pixel << 8) | 0x000000FF;
- gdk_pixbuf_fill (pixbuf, pixel);
- /* TODO: put a nice icon, back in gnome-scan 0.4 ;) */
- gnome_scan_preview_area_set_pixbuf (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
- pixbuf,
- PREVIEW_RES);
- g_object_unref (G_OBJECT (pixbuf));
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GtkWidget*widget = GTK_WIDGET (gsd);
+ GParamSpec *pspec;
+ GSParamSpecPaperSize *psps;
+ GtkPaperSize *ps;
+ GnomeScanner *scanner;
+ GdkPixbuf *pixbuf;
+ GnomeScanPreviewPlugin *plugin;
+ GSList *node = NULL, *node0 = NULL;
+ GType type;
+ gboolean first = TRUE;
+
+ /* add buttons */
+ scanner = gnome_scan_job_get_scanner (priv->job);
+ node0 = gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN (scanner),
+ GS_PARAM_GROUP_PREVIEW);
+
+ for (node = gnome_scan_job_get_processors (priv->job); node; node = node->next) {
+ node0 = g_slist_concat(node0,
+ gnome_scan_plugin_get_param_group (GNOME_SCAN_PLUGIN(node->data),
+ GS_PARAM_GROUP_PREVIEW));
+ }
+
+ for (node = node0; node ; node = node->next) {
+ pspec = node->data;
+ type = gs_param_spec_get_widget_type (pspec);
+ g_debug("new preview plugin : %s", g_type_name(type));
+ plugin = gnome_scan_preview_plugin (type,
+ GNOME_SCAN_PLUGIN (scanner),
+ pspec,
+ priv->preview_area,
+ gnome_scan_job_get_settings (priv->job),
+ GTK_BOX (priv->preview_bbox));
+ g_param_spec_set_qdata (pspec, GSD_PLUGIN_QUARK, plugin);
+
+ if (first)
+ gnome_scan_preview_area_select_plugin (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
+ plugin);
+ first = FALSE;
+ }
+
+ /* create empty preview */
+ pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner),
+ "paper-size");
+ psps = GS_PARAM_SPEC_PAPER_SIZE (pspec);
+ ps = psps->enumeration->next->data;
+ gint width = (gint) gs_convert (gtk_paper_size_get_width (ps, GTK_UNIT_MM), GS_UNIT_MM, GS_UNIT_PIXEL, PREVIEW_RES);
+ gint height = (gint) gs_convert (gtk_paper_size_get_height (ps, GTK_UNIT_MM), GS_UNIT_MM, GS_UNIT_PIXEL, PREVIEW_RES);
+
+ pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
+ FALSE, 8,
+ width,
+ height);
+ /* transform a 24bit RGB pixel to 32bit RGBApixel */
+ guint32 pixel = (widget->style->bg[GTK_WIDGET_STATE (widget)].pixel << 8) | 0x000000FF;
+ gdk_pixbuf_fill (pixbuf, pixel);
+ /* TODO: put a nice icon, back in gnome-scan 0.4 ;) */
+ gnome_scan_preview_area_set_pixbuf (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
+ pixbuf,
+ PREVIEW_RES);
+ g_object_unref (G_OBJECT (pixbuf));
}
static gboolean
-gsd_preview_end_refresh (GnomeScanDialog *gsd)
+ gsd_preview_end_refresh (GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GnomeScanPreviewSink *sink = GNOME_SCAN_PREVIEW_SINK (gnome_scan_job_get_sink (priv->preview_job));
- GnomeScanSettings *settings = gnome_scan_job_get_settings (priv->preview_job);
-
- /* first, restore settings */
- gnome_scan_settings_set (settings, "resolution", priv->saved_res);
- gnome_scan_settings_set (settings, "origin", priv->saved_origin);
- gnome_scan_settings_set (settings, "paper-size", priv->saved_paper_size);
-
- /* restore UI */
- GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
- GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
-
- /* then, update preview. */
- GdkPixbuf *pixbuf = gnome_scan_preview_sink_get_pixbuf (sink);
- if (!GDK_IS_PIXBUF (pixbuf)) {
- g_warning (G_STRLOC ": preview failed");
- return FALSE;
- }
-
- gnome_scan_preview_area_set_pixbuf (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
- pixbuf,
- PREVIEW_RES);
- return FALSE;
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GnomeScanPreviewSink *sink = GNOME_SCAN_PREVIEW_SINK (gnome_scan_job_get_sink (priv->preview_job));
+ GnomeScanSettings *settings = gnome_scan_job_get_settings (priv->preview_job);
+
+ /* first, restore settings */
+ gnome_scan_settings_set (settings, "resolution", priv->saved_res);
+ gnome_scan_settings_set (settings, "origin", priv->saved_origin);
+ gnome_scan_settings_set (settings, "paper-size", priv->saved_paper_size);
+
+ /* restore UI */
+ GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
+
+ /* then, update preview. */
+ GdkPixbuf *pixbuf = gnome_scan_preview_sink_get_pixbuf (sink);
+ if (!GDK_IS_PIXBUF (pixbuf)) {
+ g_warning (G_STRLOC ": preview failed");
+ return FALSE;
+ }
+
+ gnome_scan_preview_area_set_pixbuf (GNOME_SCAN_PREVIEW_AREA (priv->preview_area),
+ pixbuf,
+ PREVIEW_RES);
+ return FALSE;
}
static gboolean
-gsd_preview_monitor (GnomeScanDialog *gsd)
+ gsd_preview_monitor (GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->preview_progress),
- priv->preview_job->progress);
- gtk_label_set_markup (GTK_LABEL (priv->preview_stage),
- g_strdup_printf ("<i>%s</i>", priv->preview_job->stage));
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->preview_progress),
+ priv->preview_job->progress);
+ gtk_label_set_markup (GTK_LABEL (priv->preview_stage),
+ g_strdup_printf ("<i>%s</i>", priv->preview_job->stage));
- if (priv->preview_job->progress == 1.)
- g_idle_add ((GSourceFunc) gsd_preview_end_refresh, gsd);
+ if (priv->preview_job->progress == 1.)
+ g_idle_add ((GSourceFunc) gsd_preview_end_refresh, gsd);
- return (priv->preview_job->progress < 1.);
+ return (priv->preview_job->progress < 1.);
}
static void
-gsd_preview_refresh (GtkButton *button, GnomeScanDialog *gsd)
+ gsd_preview_refresh (GtkButton *button, GnomeScanDialog *gsd)
{
- static GdkPoint origin = {0, 0};
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GError *error = NULL;
- GValue *value;
- GParamSpec *pspec;
- GnomeScanSettings *settings = gnome_scan_job_get_settings (priv->preview_job);
- GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->preview_job);
+ static GdkPoint origin = {0, 0};
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GError *error = NULL;
+ GValue *value;
+ GParamSpec *pspec;
+ GnomeScanSettings *settings = gnome_scan_job_get_settings (priv->preview_job);
+ GnomeScanner *scanner = gnome_scan_job_get_scanner (priv->preview_job);
- GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, TRUE);
- GTK_WIDGET_SET_VISIBLE (priv->preview_box, FALSE);
+ GTK_WIDGET_SET_VISIBLE(priv->preview_acquisition_box, TRUE);
+ GTK_WIDGET_SET_VISIBLE(priv->preview_box, FALSE);
- /* CONFIGURE */
+ /* CONFIGURE */
- /* USE 50dpi RESOLUTION */
- priv->saved_res = gnome_scan_settings_get (settings, "resolution");
- /* transform to int or double */
- pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner), "resolution");
- value = g_new0 (GValue, 1);
- g_value_init (value, G_PARAM_SPEC_VALUE_TYPE (pspec));
- g_param_value_set_default (pspec, value);
- g_value_transform (priv->preview_res, value);
- gnome_scan_settings_set (settings, "resolution", value);
- gnome_scan_plugin_configure (GNOME_SCAN_PLUGIN (scanner), settings);
- g_value_unset (value);
+ /* USE 50dpi RESOLUTION */
+ priv->saved_res = gnome_scan_settings_get (settings, "resolution");
+ /* transform to int or double */
+ pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner), "resolution");
+ value = g_new0 (GValue, 1);
+ g_value_init (value, G_PARAM_SPEC_VALUE_TYPE (pspec));
+ g_param_value_set_default (pspec, value);
+ g_value_transform (priv->preview_res, value);
+ gnome_scan_settings_set (settings, "resolution", value);
+ gnome_scan_plugin_configure (GNOME_SCAN_PLUGIN (scanner), settings);
+ g_value_unset (value);
- /* USE manual max PAPER SIZE */
- priv->saved_paper_size = gnome_scan_settings_get (settings, "paper-size");
- g_value_init (value, G_VALUE_TYPE (priv->saved_paper_size));
- g_value_copy (priv->saved_paper_size, value);
- pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner), "paper-size");
- /* ugly, should rely on papername "maximal" */
- g_value_set_boxed (value,
- GS_PARAM_SPEC_PAPER_SIZE (pspec)->enumeration->next->data);
- gnome_scan_settings_set (settings, "paper-size", value);
- g_value_unset (value);
-
- priv->saved_origin = gnome_scan_settings_get (settings, "origin");
- g_value_init (value, G_VALUE_TYPE (priv->saved_origin));
- g_value_copy (priv->saved_origin, value);
- g_value_set_pointer (value, &origin);
- gnome_scan_settings_set (settings, "origin", value);
- g_value_unset (value);
-
- g_free (value);
+ /* USE manual max PAPER SIZE */
+ priv->saved_paper_size = gnome_scan_settings_get (settings, "paper-size");
+ g_value_init (value, G_VALUE_TYPE (priv->saved_paper_size));
+ g_value_copy (priv->saved_paper_size, value);
+ pspec = gnome_scan_plugin_params_lookup (GNOME_SCAN_PLUGIN (scanner), "paper-size");
+ /* ugly, should rely on papername "maximal" */
+ g_value_set_boxed (value,
+ GS_PARAM_SPEC_PAPER_SIZE (pspec)->enumeration->next->data);
+ gnome_scan_settings_set (settings, "paper-size", value);
+ g_value_unset (value);
+
+ priv->saved_origin = gnome_scan_settings_get (settings, "origin");
+ g_value_init (value, G_VALUE_TYPE (priv->saved_origin));
+ g_value_copy (priv->saved_origin, value);
+ g_value_set_pointer (value, &origin);
+ gnome_scan_settings_set (settings, "origin", value);
+ g_value_unset (value);
+
+ g_free (value);
- gnome_scan_job_configure (priv->preview_job);
-
- g_timeout_add (42, (GSourceFunc) gsd_preview_monitor, gsd);
- g_thread_create ((GThreadFunc) gnome_scan_job_run_once,
- priv->preview_job, FALSE, &error);
+ gnome_scan_job_configure (priv->preview_job);
+
+ g_timeout_add (42, (GSourceFunc) gsd_preview_monitor, gsd);
+ g_thread_create ((GThreadFunc) gnome_scan_job_run_once,
+ priv->preview_job, FALSE, &error);
}
static void
-gsd_preview_cancel_refresh (GtkButton *button, GnomeScanDialog *gsd)
+ gsd_preview_cancel_refresh (GtkButton *button, GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- gnome_scan_job_cancel (priv->preview_job);
- GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
- GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
+ gnome_scan_job_cancel (priv->preview_job);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
}
static void
-gsd_build_preview_ui (GnomeScanDialog *gsd)
+ gsd_build_preview_ui (GnomeScanDialog *gsd)
{
- GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
- GtkWidget *box, *hbox, *vbox, *alignment, *child, *scrolled;
-
- /* acquisition "dialog" */
- priv->preview_acquisition_box = alignment = gtk_alignment_new (.5, .5, 0., 0.);
-/* gtk_box_pack_start (GTK_BOX (priv->preview_page), box, TRUE, FALSE, 0); */
+ GnomeScanDialogPrivate *priv = GET_PRIVATE (gsd);
+ GtkWidget *box, *hbox, *vbox, *alignment, *child, *scrolled;
+
+ /* acquisition "dialog" */
+ priv->preview_acquisition_box = alignment = gtk_alignment_new (.5, .5, 0., 0.);
+ gtk_box_pack_start (GTK_BOX (priv->preview_page), alignment, TRUE, FALSE, 0);
- box = gtk_vbox_new (FALSE, 6);
- gtk_container_add (GTK_CONTAINER (alignment), box);
+ box = gtk_vbox_new (FALSE, 6);
+ gtk_container_add (GTK_CONTAINER (alignment), box);
- hbox = gtk_hbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0);
+ hbox = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0);
- child = gtk_image_new_from_icon_name ("scan-preview", GTK_ICON_SIZE_DIALOG);
- gtk_box_pack_start (GTK_BOX (hbox), child, FALSE, FALSE, 0);
+ child = gtk_image_new_from_icon_name ("scan-preview", GTK_ICON_SIZE_DIALOG);
+ gtk_box_pack_start (GTK_BOX (hbox), child, FALSE, FALSE, 0);
- vbox = gtk_vbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, FALSE, 0);
+ vbox = gtk_vbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, FALSE, 0);
- child = gtk_label_new (NULL);
- gtk_misc_set_alignment (GTK_MISC (child), 0., .5);
- gtk_label_set_markup (GTK_LABEL (child),
- g_strconcat ("<big><b>",
- _("Acquiring Preview"),
- "</b></big>",
- NULL));
- gtk_box_pack_start (GTK_BOX (vbox), child, FALSE, FALSE, 0);
+ child = gtk_label_new (NULL);
+ gtk_misc_set_alignment (GTK_MISC (child), 0., .5);
+ gtk_label_set_markup (GTK_LABEL (child),
+ g_strconcat ("<big><b>",
+ _("Acquiring Preview"),
+ "</b></big>",
+ NULL));
+ gtk_box_pack_start (GTK_BOX (vbox), child, FALSE, FALSE, 0);
- child = gtk_label_new (_("The software preview acquisition and processing."));
- gtk_misc_set_alignment (GTK_MISC (child), 0., .5);
- gtk_box_pack_start (GTK_BOX (vbox), child, FALSE, FALSE, 0);
+ child = gtk_label_new (_("The software preview acquisition and processing."));
+ gtk_misc_set_alignment (GTK_MISC (child), 0., .5);
+ gtk_box_pack_start (GTK_BOX (vbox), child, FALSE, FALSE, 0);
- priv->preview_progress = gtk_progress_bar_new ();
- gtk_box_pack_start (GTK_BOX (box), priv->preview_progress, FALSE, FALSE, 0);
+ priv->preview_progress = gtk_progress_bar_new ();
+ gtk_box_pack_start (GTK_BOX (box), priv->preview_progress, FALSE, FALSE, 0);
- priv->preview_stage = gtk_label_new (NULL);
- gtk_misc_set_alignment (GTK_MISC (priv->preview_stage), 0., .5);
- gtk_label_set_markup (GTK_LABEL (priv->preview_stage),
- g_strconcat("<i>", _("Inactive"), "</i>", NULL));
- gtk_box_pack_start (GTK_BOX (box), priv->preview_stage, FALSE, FALSE, 0);
+ priv->preview_stage = gtk_label_new (NULL);
+ gtk_misc_set_alignment (GTK_MISC (priv->preview_stage), 0., .5);
+ gtk_label_set_markup (GTK_LABEL (priv->preview_stage),
+ g_strconcat("<i>", _("Inactive"), "</i>", NULL));
+ gtk_box_pack_start (GTK_BOX (box), priv->preview_stage, FALSE, FALSE, 0);
- hbox = gtk_hbutton_box_new ();
- gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, TRUE, 0);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox),
- GTK_BUTTONBOX_END);
+ hbox = gtk_hbutton_box_new ();
+ gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, TRUE, 0);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox),
+ GTK_BUTTONBOX_END);
- child = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
- g_signal_connect (child, "clicked",
- (GCallback) gsd_preview_cancel_refresh,
- gsd);
- gtk_container_add (GTK_CONTAINER (hbox), child);
+ child = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+ g_signal_connect (child, "clicked",
+ (GCallback) gsd_preview_cancel_refresh,
+ gsd);
+ gtk_container_add (GTK_CONTAINER (hbox), child);
- /* preview dialog */
- priv->preview_box = box = gtk_hbox_new (FALSE, 6);
- gtk_box_pack_start (GTK_BOX (priv->preview_page), box, TRUE, TRUE, 0);
+ /* preview dialog */
+ priv->preview_box = box = gtk_hbox_new (FALSE, 6);
+ gtk_box_pack_start (GTK_BOX (priv->preview_page), box, TRUE, TRUE, 0);
- scrolled = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start (GTK_BOX (box), scrolled, TRUE, TRUE, 0);
+ scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_box_pack_start (GTK_BOX (box), scrolled, TRUE, TRUE, 0);
- priv->preview_area = gnome_scan_preview_area_new ();
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
- priv->preview_area);
+ priv->preview_area = gnome_scan_preview_area_new ();
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
+ priv->preview_area);
- priv->preview_bbox = vbox = gtk_vbutton_box_new ();
- gtk_box_set_spacing (GTK_BOX (vbox), 4);
- gtk_button_box_set_layout (GTK_BUTTON_BOX (vbox),
- GTK_BUTTONBOX_START);
- gtk_box_pack_start (GTK_BOX (box), vbox, FALSE, TRUE, 0);
+ priv->preview_bbox = vbox = gtk_vbutton_box_new ();
+ gtk_box_set_spacing (GTK_BOX (vbox), 4);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (vbox),
+ GTK_BUTTONBOX_START);
+ gtk_box_pack_start (GTK_BOX (box), vbox, FALSE, TRUE, 0);
- child = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
- gtk_container_add (GTK_CONTAINER (vbox), child);
- g_signal_connect (child, "clicked",
- (GCallback) gsd_preview_refresh,
- gsd);
+ child = gtk_button_new_from_stock (GTK_STOCK_REFRESH);
+ gtk_container_add (GTK_CONTAINER (vbox), child);
+ g_signal_connect (child, "clicked",
+ (GCallback) gsd_preview_refresh,
+ gsd);
- GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
- GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_acquisition_box, FALSE);
+ GTK_WIDGET_SET_VISIBLE (priv->preview_box, TRUE);
}
+
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]