static void account_assistant_present_error_page (EmpathyAccountAssistant *self, GError *error, gint page_num) { GtkWidget *error_page, *back_button; gint num; error_page = account_assistant_build_error_page (self, error, page_num); num = gtk_assistant_append_page (GTK_ASSISTANT (self), error_page); gtk_assistant_set_page_title (GTK_ASSISTANT (self), error_page, _("An error occurred")); gtk_assistant_set_page_type (GTK_ASSISTANT (self), error_page, GTK_ASSISTANT_PAGE_SUMMARY); back_button = gtk_button_new_from_stock (GTK_STOCK_GO_BACK); gtk_assistant_add_action_widget (GTK_ASSISTANT (self), back_button); g_object_set_data (G_OBJECT (back_button), "page-num", GINT_TO_POINTER (page_num)); g_signal_connect (back_button, "clicked", G_CALLBACK (account_assistant_back_button_clicked_cb), self); gtk_widget_show (back_button); gtk_assistant_set_current_page (GTK_ASSISTANT (self), num); }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkAssistant_gtk_1assistant_1add_1action_1widget ( JNIEnv* env, jclass cls, jlong _self, jlong _child ) { GtkAssistant* self; GtkWidget* child; // convert parameter self self = (GtkAssistant*) _self; // convert parameter child child = (GtkWidget*) _child; // call function gtk_assistant_add_action_widget(self, child); // cleanup parameter self // cleanup parameter child }
static VALUE rg_add_action_widget(VALUE self, VALUE child) { gtk_assistant_add_action_widget(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child))); return self; }
int main (int argc, char *argv[]) { int i; GError *gerror = NULL; GdkColor color; plugin_t *plugin; gtk_init (&argc, &argv); ask_language(); /* Create a new assistant widget with no pages. */ assistant = gtk_assistant_new (); gtk_widget_set_size_request (assistant, 800, 600); //gtk_window_unfullscreen (GTK_WINDOW (assistant)); gtk_window_set_title (GTK_WINDOW (assistant), _("Fwife : Frugalware Installer Front-End")); /* Connect signals with functions */ g_signal_connect (G_OBJECT (assistant), "destroy", G_CALLBACK (cancel_install), NULL); g_signal_connect (G_OBJECT (assistant), "cancel", G_CALLBACK (cancel_install), NULL); g_signal_connect (G_OBJECT (assistant), "close", G_CALLBACK (close_install), NULL); /* Some trick to connect buttons with plugin move functions */ g_signal_connect(G_OBJECT(((GtkAssistant *) assistant)->forward), "clicked", G_CALLBACK(plugin_next), NULL); g_signal_connect(G_OBJECT(((GtkAssistant *) assistant)->back), "clicked", G_CALLBACK(plugin_previous), NULL); // Remove useless button and add usefull one gtk_assistant_remove_action_widget(GTK_ASSISTANT(assistant), (GtkWidget*)(((GtkAssistant *) assistant)->last)); GtkWidget *help = gtk_button_new_from_stock(GTK_STOCK_HELP); gtk_widget_show(help); g_signal_connect (G_OBJECT (help), "clicked", G_CALLBACK (show_help), NULL); gtk_assistant_add_action_widget(GTK_ASSISTANT(assistant), help); /* Load a nice image */ GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file (g_strdup_printf("%s/headlogo.png", IMAGEDIR), &gerror); if(!pixbuf) { fprintf(stdout, "error message: %s\n", gerror->message); } /* Set it as icon window */ gtk_window_set_icon(GTK_WINDOW (assistant),pixbuf); /* Make ugly colors ;) */ gdk_color_parse ("#94b6db", &color); gtk_widget_modify_bg (assistant, GTK_STATE_SELECTED, &color); /*gdk_color_parse ("black", &color); gtk_widget_modify_fg (assistant, GTK_STATE_SELECTED, &color);*/ /* Load plugins.... */ fwife_load_plugins(PLUGINDIR); plugin_list = g_list_sort(plugin_list, sort_plugins); /*Allocate memory for stocking pages */ MALLOC(pages, sizeof(PageInfo)*g_list_length(plugin_list)); //* Initializing pages... *// for(i=0; i<g_list_length(plugin_list); i++) { if ((plugin = g_list_nth_data(plugin_list, i)) == NULL) LOG("Error when loading plugins...\n"); else LOG("Loading plugin : %s\n", plugin->name); pages[i] = (PageInfo) {NULL, -1, GET_UTF8(plugin->desc()), plugin->type, plugin->complete}; if ((pages[i].widget = plugin->load_gtk_widget()) == NULL) { LOG("Error when loading plugin's widget @ %s\n", plugin->name); } pages[i].index = gtk_assistant_append_page (GTK_ASSISTANT (assistant), pages[i].widget); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), pages[i].widget, pages[i].title); gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), pages[i].widget, pages[i].type); gtk_assistant_set_page_complete (GTK_ASSISTANT (assistant), pages[i].widget, pages[i].complete); gtk_assistant_set_page_header_image(GTK_ASSISTANT (assistant), pages[i].widget,pixbuf); } //* Begin with first plugin *// plugin_active = g_list_nth_data(plugin_list, 0); gtk_widget_show_all (assistant); // begin event loop gtk_main (); return 0; }