summaryrefslogtreecommitdiff
path: root/gtk/gtkinfobar.c
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-12-09 23:55:33 +0100
committerBenjamin Otte <otte@redhat.com>2010-12-09 23:55:33 +0100
commit3070d6e3d502763e985a64a604548b4d528302fd (patch)
treed42b41217ca2755d8b4d2eb886307ac489edc97d /gtk/gtkinfobar.c
parentded14b256202d8792629b88874d934638762cee3 (diff)
downloadgtk+-3070d6e3d502763e985a64a604548b4d528302fd.tar.gz
Revert "docs: Reinstate pixbufs section in GDK docs"
I committed my whole working tee instead of just one file. Ooops. This reverts commit ded14b256202d8792629b88874d934638762cee3.
Diffstat (limited to 'gtk/gtkinfobar.c')
-rw-r--r--gtk/gtkinfobar.c64
1 files changed, 57 insertions, 7 deletions
diff --git a/gtk/gtkinfobar.c b/gtk/gtkinfobar.c
index ef832fc0dd..a7879606b4 100644
--- a/gtk/gtkinfobar.c
+++ b/gtk/gtkinfobar.c
@@ -495,7 +495,18 @@ gtk_info_bar_update_colors (GtkInfoBar *info_bar)
{
GtkWidget *widget = GTK_WIDGET (info_bar);
GtkInfoBarPrivate *priv = info_bar->priv;
- GdkRGBA fg, bg;
+ GdkRGBA info_default_border_color = { 0.71, 0.67, 0.61, 1.0 };
+ GdkRGBA info_default_fill_color = { 0.99, 0.99, 0.74, 1.0 };
+ GdkRGBA warning_default_border_color = { 0.68, 0.47, 0.16, 1.0 };
+ GdkRGBA warning_default_fill_color = { 0.98, 0.68, 0.24, 1.0 };
+ GdkRGBA question_default_border_color = { 0.38, 0.48, 0.84, 1.0 };
+ GdkRGBA question_default_fill_color = { 0.54, 0.68, 0.83, 1.0 };
+ GdkRGBA error_default_border_color = { 0.65, 0.15, 0.15, 1.0 };
+ GdkRGBA error_default_fill_color = { 0.93, 0.21, 0.21, 1.0 };
+ GdkRGBA other_default_border_color = { 0.71, 0.67, 0.61, 1.0 };
+ GdkRGBA other_default_fill_color = { 0.99, 0.99, 0.74, 1.0 };
+ GdkRGBA *fg, *bg;
+ GdkRGBA sym_fg, sym_bg;
GdkRGBA *color, *bg_color;
GtkStyleContext *context;
@@ -516,17 +527,56 @@ gtk_info_bar_update_colors (GtkInfoBar *info_bar)
context = gtk_widget_get_style_context (widget);
- gtk_style_context_lookup_color (context, fg_color_name[priv->message_type], &fg);
- gtk_style_context_lookup_color (context, bg_color_name[priv->message_type], &bg);
+ if (gtk_style_context_lookup_color (context, fg_color_name[priv->message_type], &sym_fg) &&
+ gtk_style_context_lookup_color (context, bg_color_name[priv->message_type], &sym_bg))
+ {
+ fg = &sym_fg;
+ bg = &sym_bg;
+ }
+ else
+ {
+ switch (priv->message_type)
+ {
+ case GTK_MESSAGE_INFO:
+ fg = &info_default_border_color;
+ bg = &info_default_fill_color;
+ break;
+
+ case GTK_MESSAGE_WARNING:
+ fg = &warning_default_border_color;
+ bg = &warning_default_fill_color;
+ break;
+
+ case GTK_MESSAGE_QUESTION:
+ fg = &question_default_border_color;
+ bg = &question_default_fill_color;
+ break;
+
+ case GTK_MESSAGE_ERROR:
+ fg = &error_default_border_color;
+ bg = &error_default_fill_color;
+ break;
+
+ case GTK_MESSAGE_OTHER:
+ fg = &other_default_border_color;
+ bg = &other_default_fill_color;
+ break;
+
+ default:
+ g_assert_not_reached();
+ fg = NULL;
+ bg = NULL;
+ }
+ }
gtk_style_context_get (context, 0,
"color", &color,
"background-color", &bg_color,
NULL);
- if (!gdk_rgba_equal (bg_color, &bg))
- gtk_widget_override_background_color (widget, 0, &bg);
- if (!gdk_rgba_equal (color, &fg))
- gtk_widget_override_color (widget, 0, &fg);
+ if (!gdk_rgba_equal (bg_color, bg))
+ gtk_widget_override_background_color (widget, 0, bg);
+ if (!gdk_rgba_equal (color, fg))
+ gtk_widget_override_color (widget, 0, fg);
gdk_rgba_free (color);
gdk_rgba_free (bg_color);