-
- gdk_threads_enter();
- if (w->ok) {
- gtk_label_set_text ( GTK_LABEL(w->status), "Done." );
- if ( creating_new_layer )
- vik_aggregate_layer_add_layer( vik_layers_panel_get_top_layer(w->vlp), VIK_LAYER(vtl));
- gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_ACCEPT, TRUE );
- gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_REJECT, FALSE );
- } else {
- /* canceled */
- if ( creating_new_layer )
- g_object_unref(vtl);
+ else {
+ gdk_threads_enter();
+ if (w->ok) {
+ gtk_label_set_text ( GTK_LABEL(w->status), "Done." );
+ if ( creating_new_layer )
+ vik_aggregate_layer_add_layer( vik_layers_panel_get_top_layer(w->vlp), VIK_LAYER(vtl));
+ gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_ACCEPT, TRUE );
+ gtk_dialog_set_response_sensitive ( GTK_DIALOG(w->dialog), GTK_RESPONSE_REJECT, FALSE );
+ } else {
+ /* canceled */
+ if ( creating_new_layer )
+ g_object_unref(vtl);
+ }
- if ( interface->add_widgets_func ) {
- gpointer first_dialog_data;
-
- dialog = gtk_dialog_new_with_buttons ( "", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
+ if ( interface->add_setup_widgets_func ) {
+ dialog = gtk_dialog_new_with_buttons ( "", GTK_WINDOW(vw), 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) != GTK_RESPONSE_ACCEPT ) {
gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) != GTK_RESPONSE_ACCEPT ) {
- interface->get_cmd_string_func ( first_dialog_data, &cmd, &extra );
- interface->first_cleanup_func(first_dialog_data);
+ interface->get_cmd_string_func ( user_data, &cmd, &extra );
- dialog = gtk_dialog_new_with_buttons ( "", NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
+ dialog = gtk_dialog_new_with_buttons ( "", GTK_WINDOW(vw), 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL );
gtk_dialog_set_response_sensitive ( GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, FALSE );
gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
w->dialog = dialog;
w->ok = TRUE;
gtk_dialog_set_response_sensitive ( GTK_DIALOG(dialog), GTK_RESPONSE_ACCEPT, FALSE );
gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
w->dialog = dialog;
w->ok = TRUE;
status = gtk_label_new ("Status: detecting gpsbabel");
gtk_box_pack_start ( GTK_BOX(GTK_DIALOG(dialog)->vbox), status, FALSE, FALSE, 5 );
gtk_widget_show_all(status);
status = gtk_label_new ("Status: detecting gpsbabel");
gtk_box_pack_start ( GTK_BOX(GTK_DIALOG(dialog)->vbox), status, FALSE, FALSE, 5 );
gtk_widget_show_all(status);
- if ( interface->add_progress_widgets_func )
- w->specific_data = interface->add_progress_widgets_func ( dialog );
- else
- w->specific_data = NULL;
+ if ( interface->add_progress_widgets_func ) {
+ interface->add_progress_widgets_func ( dialog, user_data );
+ }
+ w->user_data = user_data;
g_thread_create((GThreadFunc)get_from_anything, wi, FALSE, NULL );
g_thread_create((GThreadFunc)get_from_anything, wi, FALSE, NULL );