- 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 );
- first_dialog_data = interface->add_widgets_func(dialog);
+ g_assert(interface->init_func);
+ user_data = interface->init_func();
+
+ if ( interface->check_existence_func ) {
+ gchar *error_str = interface->check_existence_func();
+ if ( error_str ) {
+ a_dialog_error_msg ( GTK_WINDOW(vw), error_str );
+ g_free ( error_str );
+ return;
+ }
+ }
+
+ 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 );
+
+ interface->add_setup_widgets_func(dialog, vvp, user_data);
+ gtk_window_set_title ( GTK_WINDOW(dialog), interface->window_title );
+