+consistency (GtkSpinButton *spin, PsppireDialogActionSelect *act)
+{
+ gdouble first = gtk_spin_button_get_value (GTK_SPIN_BUTTON (act->first));
+ gdouble last = gtk_spin_button_get_value (GTK_SPIN_BUTTON (act->last));
+
+ if (last < first)
+ {
+ if (spin == GTK_SPIN_BUTTON (act->first))
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (act->last), first);
+ if (spin == GTK_SPIN_BUTTON (act->last))
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (act->first), last);
+ }
+}
+
+
+/* When the all cases label button is clicked, set the corresponding button
+ to active. This is a convenience thing, since the button itself has
+ a very small area and is hard to find with the mouse pointer. */
+static gboolean
+on_button_release (GtkWidget *w, GdkEvent *e, gpointer a)
+{
+ PsppireDialogActionSelect *act = PSPPIRE_DIALOG_ACTION_SELECT (a);
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->radiobutton_all), TRUE);
+
+ return FALSE;
+}
+
+static GtkBuilder *
+psppire_dialog_action_select_activate (PsppireDialogAction *a, GVariant *param)