]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-loading-window.c
[l10n]Fixes on Catalan translation
[evince.git] / libview / ev-loading-window.c
index 4d5eaaf1407f4ee129bc18940d7c906790dc67db..94576ee71d9fa64bdb390b2da647b2db9d996a5f 100644 (file)
@@ -33,6 +33,7 @@ struct _EvLoadingWindow {
        GtkWindow  base_instance;
 
        GtkWindow *parent;
+       GtkWidget *spinner;
 
        gint       x;
        gint       y;
@@ -69,20 +70,18 @@ ev_loading_window_init (EvLoadingWindow *window)
        GtkWindow   *gtk_window = GTK_WINDOW (window);
        GtkWidget   *widget = GTK_WIDGET (window);
        GtkWidget   *hbox;
-       GtkWidget   *spinner;
        GtkWidget   *label;
-       GtkStyle    *style;
-       GdkColor    fg, bg;
+       GtkStyleContext *context;
+       GdkRGBA    fg, bg;
        const gchar *loading_text = _("Loading…");
        const gchar *fg_color_name = "info_fg_color";
        const gchar *bg_color_name = "info_bg_color";
 
        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);
@@ -100,24 +99,22 @@ ev_loading_window_init (EvLoadingWindow *window)
        gtk_window_set_decorated (gtk_window, FALSE);
        gtk_window_set_resizable (gtk_window, FALSE);
 
-       style = gtk_widget_get_style (widget);
-       if (!gtk_style_lookup_color (style, fg_color_name, &fg) ||
-           !gtk_style_lookup_color (style, bg_color_name, &bg)) {
-               fg.pixel = 0;
-               fg.red = 0xb800;
-               fg.green = 0xad00;
-               fg.blue = 0x9d00;
-
-               bg.pixel = 0;
-               bg.red = 0xff00;
-               bg.green = 0xff00;
-               bg.blue = 0xbf00;
+       context = gtk_widget_get_style_context (widget);
+        if (!gtk_style_context_lookup_color (context, fg_color_name, &fg) ||
+            !gtk_style_context_lookup_color (context, bg_color_name, &bg)) {
+               fg.red = 0.7;
+               fg.green = 0.67;
+               fg.blue = 0.63;
+                fg.alpha = 1.0;
+
+               bg.red = 0.99;
+               bg.green = 0.99;
+               bg.blue = 0.71;
+                bg.alpha = 1.0;
        }
 
-       if (!gdk_color_equal (&bg, &style->bg[GTK_STATE_NORMAL]))
-               gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &bg);
-       if (!gdk_color_equal (&fg, &style->fg[GTK_STATE_NORMAL]))
-               gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &fg);
+        gtk_widget_override_background_color (widget, GTK_STATE_NORMAL, &bg);
+        gtk_widget_override_color (widget, GTK_STATE_NORMAL, &fg);
 }
 
 static GObject *
@@ -222,9 +219,21 @@ ev_loading_window_hide (GtkWidget *widget)
 
        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)
 {
@@ -235,6 +244,7 @@ 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,
@@ -256,6 +266,7 @@ ev_loading_window_new (GtkWindow *parent)
        g_return_val_if_fail (GTK_IS_WINDOW (parent), NULL);
 
        window = g_object_new (EV_TYPE_LOADING_WINDOW,
+                               "type", GTK_WINDOW_POPUP,
                               "parent", parent,
                               NULL);
        return window;