X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpage-assistant.c;h=cad23763de75dcbb99834074ee6d4e40d9e26374;hb=1e3875c54e8c220e282ab46f17bebdf4c0dea689;hp=7c54f40f803e0a43ccc211de2b802f093636a179;hpb=1d05dd7fce36ca16a644705b0b05fd144f52463e;p=pspp diff --git a/src/ui/gui/page-assistant.c b/src/ui/gui/page-assistant.c index 7c54f40f80..cad23763de 100644 --- a/src/ui/gui/page-assistant.c +++ b/src/ui/gui/page-assistant.c @@ -65,7 +65,6 @@ static void on_cancel (GtkAssistant *assistant, struct import_assistant *); static void on_close (GtkAssistant *assistant, struct import_assistant *); static void on_paste (GtkButton *button, struct import_assistant *); static void on_reset (GtkButton *button, struct import_assistant *); -static void close_assistant (struct import_assistant *, int response); /* Initializes IA's asst substructure. PARENT_WINDOW must be the window to use as the assistant window's parent. */ @@ -153,45 +152,37 @@ static void on_prepare (GtkAssistant *assistant, GtkWidget *page, struct import_assistant *ia) { - struct sheet_spec_page *ssp = ia->sheet_spec; - int pn = gtk_assistant_get_current_page (assistant); - g_print ("%s:%d Page %d %p\n", __FILE__, __LINE__, pn, page); + + gtk_widget_show (ia->asst.reset_button); + gtk_widget_hide (ia->asst.paste_button); if ( ia->spreadsheet) { if (pn == 0) - prepare_sheet_spec_page (ia); + { + prepare_sheet_spec_page (ia); + } else if (pn == 1) { post_sheet_spec_page (ia); prepare_formats_page (ia); } } + else + { + if (pn == 0) + prepare_separators_page (ia); + else if (pn == 3) + prepare_formats_page (ia); + } + if (gtk_assistant_get_page_type (assistant, page) == GTK_ASSISTANT_PAGE_CONFIRM) gtk_widget_grab_focus (assistant->apply); else gtk_widget_grab_focus (assistant->forward); - - - -#if 0 - /* Prepare .... */ - if (page == ia->separators->page) - prepare_separators_page (ia); - else if (page == ia->formats->page) - prepare_formats_page (ia); - - - gtk_widget_show (ia->asst.reset_button); - if (page == ia->formats->page) - gtk_widget_show (ia->asst.paste_button); - else - gtk_widget_hide (ia->asst.paste_button); - -#endif } /* Called when the Cancel button in the assistant is clicked. */ @@ -217,25 +208,32 @@ on_paste (GtkButton *button, struct import_assistant *ia) close_assistant (ia, PSPPIRE_RESPONSE_PASTE); } +static GtkWidget * +assist_get_page (struct assist_page *ap) +{ + if (ap == NULL) + return NULL; + + return ap->page; +} + /* Called when the Reset button is clicked. */ static void on_reset (GtkButton *button, struct import_assistant *ia) { -#if 0 gint page_num = gtk_assistant_get_current_page (ia->asst.assistant); GtkWidget *page = gtk_assistant_get_nth_page (ia->asst.assistant, page_num); - if (page == ia->intro->page) + if (page == assist_get_page ((struct assist_page *) ia->intro)) reset_intro_page (ia); - else if (page == ia->first_line->page) + else if (page == assist_get_page ((struct assist_page *) ia->first_line)) reset_first_line_page (ia); - else if (page == ia->separators->page) + else if (page == assist_get_page ((struct assist_page *) ia->separators)) reset_separators_page (ia); - else if (page == ia->formats->page) + else if (page == assist_get_page ((struct assist_page *) ia->formats)) reset_formats_page (ia); - else if (page == ia->sheet_spec->page) + else if (page == assist_get_page ((struct assist_page *) ia->sheet_spec)) reset_sheet_spec_page (ia); -#endif } /* Causes the assistant to close, returning RESPONSE for @@ -244,7 +242,10 @@ static void close_assistant (struct import_assistant *ia, int response) { ia->asst.response = response; - g_main_loop_quit (ia->asst.main_loop); + /* Use our loop_done variable until we find out + why g_main_loop_quit (ia->asst.main_loop); doesn't work. + */ + ia->asst.loop_done = true; gtk_widget_hide (GTK_WIDGET (ia->asst.assistant)); }