GtkWindow base_instance;
GtkWindow *parent;
+ GtkWidget *spinner;
gint x;
gint y;
GtkWindow *gtk_window = GTK_WINDOW (window);
GtkWidget *widget = GTK_WIDGET (window);
GtkWidget *hbox;
- GtkWidget *spinner;
GtkWidget *label;
GtkStyle *style;
GdkColor fg, bg;
hbox = gtk_hbox_new (FALSE, 12);
- spinner = gtk_spinner_new ();
- gtk_spinner_start (GTK_SPINNER (spinner));
- gtk_box_pack_start (GTK_BOX (hbox), spinner, FALSE, FALSE, 0);
- gtk_widget_show (spinner);
+ window->spinner = gtk_spinner_new ();
+ gtk_box_pack_start (GTK_BOX (hbox), window->spinner, FALSE, FALSE, 0);
+ gtk_widget_show (window->spinner);
label = gtk_label_new (loading_text);
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
GtkAllocation *allocation)
{
EvLoadingWindow *window = EV_LOADING_WINDOW (widget);
- GdkPixmap *mask;
+ cairo_surface_t *surface;
+ cairo_region_t *shape;
cairo_t *cr;
double r;
window->width = allocation->width;
window->height = allocation->height;
- mask = gdk_pixmap_new (NULL, window->width, window->height, 1);
- cr = gdk_cairo_create (GDK_DRAWABLE (mask));
+ surface = cairo_image_surface_create (CAIRO_FORMAT_A8,
+ window->width,
+ window->height);
+ cr = cairo_create (surface);
cairo_save (cr);
cairo_rectangle (cr, 0, 0, window->width, window->height);
cairo_destroy (cr);
- gtk_widget_shape_combine_mask (widget, mask, 0, 0);
- g_object_unref (mask);
+ shape = gdk_cairo_region_create_from_surface (surface);
+ cairo_surface_destroy (surface);
+
+ gtk_widget_shape_combine_region (widget, shape);
+ cairo_region_destroy (shape);
}
static void
window->x = window->y = 0;
+ gtk_spinner_stop (GTK_SPINNER (window->spinner));
+
GTK_WIDGET_CLASS (ev_loading_window_parent_class)->hide (widget);
}
+static void
+ev_loading_window_show (GtkWidget *widget)
+{
+ EvLoadingWindow *window = EV_LOADING_WINDOW (widget);
+
+ gtk_spinner_start (GTK_SPINNER (window->spinner));
+
+ GTK_WIDGET_CLASS (ev_loading_window_parent_class)->show (widget);
+}
+
static void
ev_loading_window_class_init (EvLoadingWindowClass *klass)
{
g_object_class->set_property = ev_loading_window_set_property;
gtk_widget_class->size_allocate = ev_loading_window_size_allocate;
+ gtk_widget_class->show = ev_loading_window_show;
gtk_widget_class->hide = ev_loading_window_hide;
g_object_class_install_property (g_object_class,