GtkWidget * create_throbber_dialog (const gchar *title, GtkWidget **label) { GtkWidget *dialog; GtkWidget *status_label; GtkWidget *hbox, *throbber; GtkWidget *main_box, *main_alignment; dialog = gtk_dialog_new_with_buttons (title, NULL, GTK_DIALOG_NO_SEPARATOR, NULL); gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 0); gtk_window_set_deletable (GTK_WINDOW (dialog), FALSE); gtk_window_set_icon_name (GTK_WINDOW (dialog), "gtk-info"); /* Create the main alignment for the dialog */ main_alignment = gtk_alignment_new (0, 0, 1, 1); gtk_alignment_set_padding (GTK_ALIGNMENT (main_alignment), 0, 0, 6, 6); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), main_alignment, TRUE, TRUE, 0); /* Create the main box for the dialog */ main_box = gtk_vbox_new (FALSE, 10); gtk_container_set_border_width (GTK_CONTAINER (main_box), 12); gtk_container_add (GTK_CONTAINER (main_alignment), main_box); /* Top horizontal box for the throbber */ hbox= gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox), 0); gtk_container_add (GTK_CONTAINER (main_box), hbox); /* Add the throbber */ throbber = katze_throbber_new (); katze_throbber_set_animated (KATZE_THROBBER (throbber), TRUE); gtk_box_pack_end (GTK_BOX (hbox), throbber, FALSE, FALSE, 0); /* Status label*/ status_label = gtk_label_new (""); gtk_label_set_markup (GTK_LABEL (status_label), _("<span weight=\"bold\" stretch=\"semiexpanded\">" "Status</span>")); gtk_misc_set_alignment (GTK_MISC (status_label), 0, 0); gtk_box_pack_start (GTK_BOX (hbox), status_label, FALSE, FALSE, 0); /* Information label */ *label = gtk_label_new (""); gtk_container_add (GTK_CONTAINER (main_box), *label); gtk_widget_show_all (GTK_DIALOG(dialog)->vbox); return dialog; }
static KatzeThrobber* _interface_tweaks_find_view_throbber(MidoriView *inView) { g_return_val_if_fail(MIDORI_IS_VIEW(inView), NULL); GtkWidget *widget; KatzeThrobber *throbber=NULL; widget=midori_view_get_proxy_tab_label(inView); if(KATZE_IS_THROBBER(widget)) throbber=KATZE_THROBBER(widget); else if(GTK_IS_CONTAINER(widget)) gtk_container_foreach(GTK_CONTAINER(widget), _interface_tweaks_find_view_throbber_callback, &throbber); return(throbber); }
/* Find throbber of view or browser */ static void _interface_tweaks_find_view_throbber_callback(GtkWidget *inWidget, gpointer inUserData) { g_return_if_fail(GTK_IS_WIDGET(inWidget)); if(KATZE_IS_THROBBER(inWidget)) { KatzeThrobber **throbber=(KatzeThrobber**)inUserData; if(throbber) *throbber=KATZE_THROBBER(inWidget); } else if(GTK_IS_CONTAINER(inWidget)) { gtk_container_foreach(GTK_CONTAINER(inWidget), _interface_tweaks_find_view_throbber_callback, inUserData); } }