gnome-scan r547 - in trunk: . lib



Author: bersace
Date: Thu Feb 28 17:04:25 2008
New Revision: 547
URL: http://svn.gnome.org/viewvc/gnome-scan?rev=547&view=rev

Log:
Auto focus Next button in acquisition dialog.


Modified:
   trunk/ChangeLog
   trunk/lib/gnome-scan-acquisition-dialog.c

Modified: trunk/lib/gnome-scan-acquisition-dialog.c
==============================================================================
--- trunk/lib/gnome-scan-acquisition-dialog.c	(original)
+++ trunk/lib/gnome-scan-acquisition-dialog.c	Thu Feb 28 17:04:25 2008
@@ -53,7 +53,7 @@
 
 struct _GnomeScanAcquisitionDialogPrivate
 {
-  GnomeScanJob	*job;
+	GnomeScanJob	*job;
 	
 	GtkWidget	*progressbar;
 	GtkWidget	*state_label;
@@ -63,10 +63,10 @@
 };
 
 enum
-  {
-    PROP_0,
-    PROP_JOB
-  };
+{
+	PROP_0,
+	PROP_JOB
+};
 
 
 static GObjectClass* parent_class = NULL;
@@ -81,79 +81,79 @@
 static void
 gnome_scan_acquisition_dialog_init (GnomeScanAcquisitionDialog *object)
 {
-  GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (object);
-  GtkWidget *label, *button, *hbox, *icon, *text_box;
-  GtkWidget *vbox = GTK_DIALOG (object)->vbox;
-  GtkWidget *action_area = GTK_DIALOG (object)->action_area;
-		
-  /* parent properties */
-  g_object_set (object,
-		"title", _("Acquisition"),
-		"window-position", GTK_WIN_POS_CENTER,
-		"has-separator", FALSE,
-		"border-width", 6,
-		"resizable", FALSE,
-		NULL);
-	
-  g_signal_connect_swapped (object, "delete-event",
-			    (GCallback) gsad_close,
-			    object);
-	
-  /* container border */
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
-  gtk_box_set_spacing (GTK_BOX (vbox), 6);
-  gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (object)->action_area), 6);
-
-	
-  hbox = gtk_hbox_new (FALSE, 6);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6);
-	
-  icon = gtk_image_new_from_icon_name ("scanner", GTK_ICON_SIZE_DIALOG);
-  gtk_misc_set_padding (GTK_MISC (icon), 6, 6);
-  gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, TRUE, 0);
-	
-  text_box = gtk_vbox_new (FALSE, 6);
-  gtk_box_pack_start (GTK_BOX (hbox), text_box, TRUE, TRUE, 0);
-	
-  /* primary text */
-  label = gtk_label_new (NULL);
-  gtk_label_set_markup (GTK_LABEL (label),
-			g_strconcat ("<span size=\"x-large\"><b>", _("Acquisition"), "</b></span>",NULL));
-  gtk_misc_set_alignment (GTK_MISC (label), 0., .5);
-  gtk_box_pack_start (GTK_BOX (text_box), label, FALSE, TRUE, 0);
-	
-  /* secondary text */
-  label = gtk_label_new (_("The software now acquires and processes images "
-			   "according to the settings."));
-  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
-  gtk_box_pack_start (GTK_BOX (text_box), label, FALSE, TRUE, 0);
-	
-  /* progress bar */
-  priv->progressbar = gtk_progress_bar_new ();
-  /*gtk_progress_bar_set_text (GTK_PROGRESS_BAR (priv->progressbar),
-    _("Waiting for device"));*/
-  gtk_box_pack_start (GTK_BOX (vbox), priv->progressbar,
-		      FALSE, TRUE, 0);
-	
-  /* state label */
-  priv->state_label = gtk_label_new (NULL);
-  gtk_label_set_markup (GTK_LABEL (priv->state_label),
-			g_strconcat ("<i>", _("Waiting for device"), "</i>", NULL));
-  gtk_misc_set_alignment (GTK_MISC (priv->state_label), 0., .5);
-  gtk_box_pack_start (GTK_BOX (vbox), priv->state_label, FALSE, TRUE, 0);
-	
-  /* buttons */
-  button = gtk_button_new_from_stock (GTK_STOCK_STOP);
-  g_signal_connect_swapped (button, "clicked",
-			    (GCallback) gsad_close,
-			    object);
-  gtk_box_pack_start (GTK_BOX (action_area), button, FALSE, FALSE, 0);
-	
-  button = priv->forward = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
-  g_signal_connect_swapped (button, "clicked",
-			    G_CALLBACK (gsad_forward),
-			    object);
-  gtk_box_pack_start (GTK_BOX (action_area), button, FALSE, FALSE, 0);
+	GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (object);
+	GtkWidget *label, *button, *hbox, *icon, *text_box;
+	GtkWidget *vbox = GTK_DIALOG (object)->vbox;
+	GtkWidget *action_area = GTK_DIALOG (object)->action_area;
+	
+	/* parent properties */
+	g_object_set (object,
+				  "title", _("Acquisition"),
+				  "window-position", GTK_WIN_POS_CENTER,
+				  "has-separator", FALSE,
+				  "border-width", 6,
+				  "resizable", FALSE,
+				  NULL);
+	
+	g_signal_connect_swapped (object, "delete-event",
+							  (GCallback) gsad_close,
+							  object);
+	
+	/* container border */
+	gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
+	gtk_box_set_spacing (GTK_BOX (vbox), 6);
+	gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (object)->action_area), 6);
+	
+	
+	hbox = gtk_hbox_new (FALSE, 6);
+	gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 6);
+	
+	icon = gtk_image_new_from_icon_name ("scanner", GTK_ICON_SIZE_DIALOG);
+	gtk_misc_set_padding (GTK_MISC (icon), 6, 6);
+	gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, TRUE, 0);
+	
+	text_box = gtk_vbox_new (FALSE, 6);
+	gtk_box_pack_start (GTK_BOX (hbox), text_box, TRUE, TRUE, 0);
+	
+	/* primary text */
+	label = gtk_label_new (NULL);
+	gtk_label_set_markup (GTK_LABEL (label),
+						  g_strconcat ("<span size=\"x-large\"><b>", _("Acquisition"), "</b></span>",NULL));
+	gtk_misc_set_alignment (GTK_MISC (label), 0., .5);
+	gtk_box_pack_start (GTK_BOX (text_box), label, FALSE, TRUE, 0);
+	
+	/* secondary text */
+	label = gtk_label_new (_("The software now acquires and processes images "
+							 "according to the settings."));
+	gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+	gtk_box_pack_start (GTK_BOX (text_box), label, FALSE, TRUE, 0);
+	
+	/* progress bar */
+	priv->progressbar = gtk_progress_bar_new ();
+	/*gtk_progress_bar_set_text (GTK_PROGRESS_BAR (priv->progressbar),
+	 _("Waiting for device"));*/
+	gtk_box_pack_start (GTK_BOX (vbox), priv->progressbar,
+						FALSE, TRUE, 0);
+	
+	/* state label */
+	priv->state_label = gtk_label_new (NULL);
+	gtk_label_set_markup (GTK_LABEL (priv->state_label),
+						  g_strconcat ("<i>", _("Waiting for device"), "</i>", NULL));
+	gtk_misc_set_alignment (GTK_MISC (priv->state_label), 0., .5);
+	gtk_box_pack_start (GTK_BOX (vbox), priv->state_label, FALSE, TRUE, 0);
+	
+	/* buttons */
+	button = gtk_button_new_from_stock (GTK_STOCK_STOP);
+	g_signal_connect_swapped (button, "clicked",
+							  (GCallback) gsad_close,
+							  object);
+	gtk_box_pack_start (GTK_BOX (action_area), button, FALSE, FALSE, 0);
+	
+	button = priv->forward = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+	g_signal_connect_swapped (button, "clicked",
+							  G_CALLBACK (gsad_forward),
+							  object);
+	gtk_box_pack_start (GTK_BOX (action_area), button, FALSE, FALSE, 0);
 }
 
 static void
@@ -166,44 +166,50 @@
 		priv->disposed = TRUE;
 	}
 	
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 static void
 gnome_scan_acquisition_dialog_finalize (GObject *object)
 {
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
 static void
-gnome_scan_acquisition_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
-{
-  g_return_if_fail (GNOME_IS_SCAN_ACQUISITION_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;
-    }
+gnome_scan_acquisition_dialog_set_property (GObject *object,
+											guint prop_id,
+											const GValue *value,
+											GParamSpec *pspec)
+{
+	g_return_if_fail (GNOME_IS_SCAN_ACQUISITION_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;
+	}
 }
 
 static void
-gnome_scan_acquisition_dialog_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
-{
-  g_return_if_fail (GNOME_IS_SCAN_ACQUISITION_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;
-    }
+gnome_scan_acquisition_dialog_get_property (GObject *object,
+											guint prop_id,
+											GValue *value,
+											GParamSpec *pspec)
+{
+	g_return_if_fail (GNOME_IS_SCAN_ACQUISITION_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;
+	}
 }
 
 /**
@@ -215,27 +221,27 @@
 static void
 gnome_scan_acquisition_dialog_class_init (GnomeScanAcquisitionDialogClass *klass)
 {
-  GObjectClass* object_class = G_OBJECT_CLASS (klass);
-  parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
-
-  g_type_class_add_private (klass, sizeof (GnomeScanAcquisitionDialogPrivate));
-  object_class->finalize = gnome_scan_acquisition_dialog_finalize;
-  object_class->finalize = gnome_scan_acquisition_dialog_dispose;
-  object_class->set_property = gnome_scan_acquisition_dialog_set_property;
-  object_class->get_property = gnome_scan_acquisition_dialog_get_property;
-
-  /**
-   * GnomeScanAcquisitionDialog:job:
-   *
-   * The job being monitored by the #GnomeScanAcquisitionDialog.
-   **/
-  g_object_class_install_property (object_class,
-				   PROP_JOB,
-				   g_param_spec_object ("job",
-							"Job",
-							"The job the dialog is handling",
-							GNOME_TYPE_SCAN_JOB,
-							G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
+	GObjectClass* object_class = G_OBJECT_CLASS (klass);
+	parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (klass));
+	
+	g_type_class_add_private (klass, sizeof (GnomeScanAcquisitionDialogPrivate));
+	object_class->finalize = gnome_scan_acquisition_dialog_finalize;
+	object_class->finalize = gnome_scan_acquisition_dialog_dispose;
+	object_class->set_property = gnome_scan_acquisition_dialog_set_property;
+	object_class->get_property = gnome_scan_acquisition_dialog_get_property;
+	
+	/**
+	 * GnomeScanAcquisitionDialog:job:
+	 *
+	 * The job being monitored by the #GnomeScanAcquisitionDialog.
+	 **/
+	g_object_class_install_property (object_class,
+									 PROP_JOB,
+									 g_param_spec_object ("job",
+														  "Job",
+														  "The job the dialog is handling",
+														  GNOME_TYPE_SCAN_JOB,
+														  G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
 }
 
 
@@ -251,11 +257,11 @@
 GtkWidget*
 gnome_scan_acquisition_dialog_new (GtkWindow *parent, GnomeScanJob *job)
 {
-  GObject* object= g_object_new (GNOME_TYPE_SCAN_ACQUISITION_DIALOG,
-				 "transient-for", parent,
-				 "job", job,
-				 NULL);
-  return GTK_WIDGET (object);
+	GObject* object= g_object_new (GNOME_TYPE_SCAN_ACQUISITION_DIALOG,
+								   "transient-for", parent,
+								   "job", job,
+								   NULL);
+	return GTK_WIDGET (object);
 }
 
 /**
@@ -270,8 +276,8 @@
 void
 gnome_scan_acquisition_dialog_run (GnomeScanAcquisitionDialog *dialog)
 {
-  gtk_init_add ((GtkFunction) gsad_run, dialog);
-  gtk_main ();
+	gtk_init_add ((GtkFunction) gsad_run, dialog);
+	gtk_main ();
 }
 
 
@@ -282,52 +288,54 @@
 static void
 gsad_job_run (GnomeScanJob *job)
 {
-  gnome_scan_job_run (job);
-  g_thread_exit (NULL);
+	gnome_scan_job_run (job);
+	g_thread_exit (NULL);
 }
 
 static void
 gsad_run (GnomeScanAcquisitionDialog *dialog)
 {
-  GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
-  GError *error = NULL;
+	GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
+	GError *error = NULL;
 	
-  gtk_widget_show_all (GTK_WIDGET (dialog));
-  gtk_widget_set_sensitive (priv->forward, FALSE);
-  /* ~24 updates per second -> update each 42 microseconds */
-  g_timeout_add (42, (GSourceFunc) gsad_monitor, dialog);
-  gnome_scan_job_configure (priv->job);
-  priv->job_thread = g_thread_create ((GThreadFunc) gsad_job_run,
-				      priv->job, TRUE, &error);
+	gtk_widget_show_all (GTK_WIDGET (dialog));
+	gtk_widget_set_sensitive (priv->forward, FALSE);
+	/* ~24 updates per second -> update each 42 microseconds */
+	g_timeout_add (42, (GSourceFunc) gsad_monitor, dialog);
+	gnome_scan_job_configure (priv->job);
+	priv->job_thread = g_thread_create ((GThreadFunc) gsad_job_run,
+										priv->job, TRUE, &error);
 }
 
 static gboolean
 gsad_monitor (GnomeScanAcquisitionDialog *dialog)
 {
-  GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
-  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progressbar),
-				 priv->job->progress);
-  gtk_label_set_markup (GTK_LABEL (priv->state_label),
-			g_strdup_printf ("<i>%s</i>", priv->job->stage));
-
-  gtk_widget_set_sensitive (priv->forward,
-			    priv->job->done);
-  return !priv->job->done;
+	GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
+	gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progressbar),
+								   priv->job->progress);
+	gtk_label_set_markup (GTK_LABEL (priv->state_label),
+						  g_strdup_printf ("<i>%s</i>", priv->job->stage));
+	
+	gtk_widget_set_sensitive (priv->forward,
+							  priv->job->done);
+	if (GTK_WIDGET_CAN_FOCUS(priv->forward))
+		gtk_widget_grab_focus (priv->forward);
+	return !priv->job->done;
 }
 
 /* callbacks */
 static void
 gsad_close (GnomeScanAcquisitionDialog *dialog)
 {
-  GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
-  gtk_widget_hide (GTK_WIDGET (dialog));
-  gnome_scan_job_cancel (priv->job);
-  g_thread_join (priv->job_thread);
-  gtk_main_quit ();
+	GnomeScanAcquisitionDialogPrivate *priv = GET_PRIVATE (dialog);
+	gtk_widget_hide (GTK_WIDGET (dialog));
+	gnome_scan_job_cancel (priv->job);
+	g_thread_join (priv->job_thread);
+	gtk_main_quit ();
 }
 
 static void
 gsad_forward (GnomeScanAcquisitionDialog *dialog)
 {
-  gsad_run (dialog);
+	gsad_run (dialog);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]