From a654213065a03c99b868ebad39286c1c5e06a38e Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 22 Jan 2013 20:04:44 +0100 Subject: [PATCH] Intro page: contruction is initialisation --- src/ui/gui/page-assistant.c | 6 +++--- src/ui/gui/page-intro.c | 22 +++++++++++----------- src/ui/gui/text-data-import-dialog.c | 2 -- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/ui/gui/page-assistant.c b/src/ui/gui/page-assistant.c index 9c95005e4d..1ebc7405fe 100644 --- a/src/ui/gui/page-assistant.c +++ b/src/ui/gui/page-assistant.c @@ -76,15 +76,15 @@ init_assistant (GtkWindow *parent_window) ia = xzalloc (sizeof *ia); struct assistant *a = &ia->asst; + a->builder = builder_new ("text-data-import.ui"); + a->assistant = GTK_ASSISTANT (gtk_assistant_new ()); - ia->intro = xzalloc (sizeof *ia->intro); + ia->intro = intro_page_create (ia); ia->sheet_spec = xzalloc (sizeof *ia->sheet_spec); ia->first_line = xzalloc (sizeof *ia->first_line); ia->separators = xzalloc (sizeof *ia->separators); ia->formats = xzalloc (sizeof *ia->formats); - a->builder = builder_new ("text-data-import.ui"); - a->assistant = GTK_ASSISTANT (gtk_assistant_new ()); g_signal_connect (a->assistant, "prepare", G_CALLBACK (on_prepare), ia); g_signal_connect (a->assistant, "cancel", G_CALLBACK (on_cancel), ia); g_signal_connect (a->assistant, "close", G_CALLBACK (on_close), ia); diff --git a/src/ui/gui/page-intro.c b/src/ui/gui/page-intro.c index 56b182686c..4034834c34 100644 --- a/src/ui/gui/page-intro.c +++ b/src/ui/gui/page-intro.c @@ -64,19 +64,19 @@ struct import_assistant; /* The "intro" page of the assistant. */ -static void on_intro_amount_changed (struct import_assistant *); +static void on_intro_amount_changed (struct intro_page *); /* Initializes IA's intro substructure. */ -void -init_intro_page (struct import_assistant *ia) +struct intro_page * +intro_page_create (struct import_assistant *ia) { GtkBuilder *builder = ia->asst.builder; - struct intro_page *p = ia->intro; struct string s; GtkWidget *hbox_n_cases ; GtkWidget *hbox_percent ; GtkWidget *table ; + struct intro_page *p = xzalloc (sizeof (*p)); p->n_cases_spin = gtk_spin_button_new_with_range (0, INT_MAX, 100); @@ -106,13 +106,13 @@ init_intro_page (struct import_assistant *ia) p->percent_button = get_widget_assert (builder, "import-percent"); g_signal_connect_swapped (p->all_cases_button, "toggled", - G_CALLBACK (on_intro_amount_changed), ia); + G_CALLBACK (on_intro_amount_changed), p); g_signal_connect_swapped (p->n_cases_button, "toggled", - G_CALLBACK (on_intro_amount_changed), ia); + G_CALLBACK (on_intro_amount_changed), p); g_signal_connect_swapped (p->percent_button, "toggled", - G_CALLBACK (on_intro_amount_changed), ia); + G_CALLBACK (on_intro_amount_changed), p); - on_intro_amount_changed (ia); + on_intro_amount_changed (p); ds_init_empty (&s); ds_put_cstr (&s, _("This assistant will guide you through the process of " @@ -147,6 +147,8 @@ init_intro_page (struct import_assistant *ia) gtk_label_set_text (GTK_LABEL (get_widget_assert (builder, "intro-label")), ds_cstr (&s)); ds_destroy (&s); + + return p; } /* Resets IA's intro page to its initial state. */ @@ -159,10 +161,8 @@ reset_intro_page (struct import_assistant *ia) /* Called when one of the radio buttons is clicked. */ static void -on_intro_amount_changed (struct import_assistant *ia) +on_intro_amount_changed (struct intro_page *p) { - struct intro_page *p = ia->intro; - gtk_widget_set_sensitive (p->n_cases_spin, gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (p->n_cases_button))); diff --git a/src/ui/gui/text-data-import-dialog.c b/src/ui/gui/text-data-import-dialog.c index b8d357a713..6d7e0777db 100644 --- a/src/ui/gui/text-data-import-dialog.c +++ b/src/ui/gui/text-data-import-dialog.c @@ -80,11 +80,9 @@ text_data_import_assistant (PsppireDataWindow *dw) return; } - ssp = ia->sheet_spec; if (ssp->spreadsheet == NULL) { - init_intro_page (ia); init_first_line_page (ia); init_separators_page (ia); } -- 2.30.2