From 3a62899f2f90593d2128be5d668860835d243136 Mon Sep 17 00:00:00 2001 From: Artem Garmash Date: Sun, 24 Jan 2010 22:27:33 +0200 Subject: [PATCH] Show service icon on background --- src/el-home-applet.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/el-home-applet.c b/src/el-home-applet.c index 03322fa..d287ab8 100644 --- a/src/el-home-applet.c +++ b/src/el-home-applet.c @@ -113,6 +113,8 @@ struct _ELHomeAppletPrivate guint8 border_color[4]; PangoFontDescription *font_desc; + GdkPixbuf *service_pixbuf; + guint idle_id; cairo_surface_t *message_surface; @@ -469,6 +471,13 @@ expose_event (GtkWidget *self, GdkEventExpose *event) cairo_pattern_destroy (grad); if (priv->message) { + if (priv->service_pixbuf) { + gdk_cairo_set_source_pixbuf (cr, + priv->service_pixbuf, + 0, 0); + cairo_paint_with_alpha (cr, 0.5); + } + /* draw footer unread part bg */ rounded_rectangle (cr, 0, C_HEIGHT - FOOTER_HEIGHT, @@ -544,6 +553,11 @@ clean_state (ELHomeApplet *self) { ELHomeAppletPrivate *priv = self->priv; + if (priv->service_pixbuf) { + g_object_unref (priv->service_pixbuf); + priv->service_pixbuf = NULL; + } + if (priv->message) { g_free (priv->message); priv->message = NULL; @@ -923,6 +937,30 @@ read_event (ELHomeApplet *self) it = make_query (priv->eventlogger, -1); show_event (self, it); resolve_contact (self); + + if (g_strcmp0 (priv->local_id, "ring/tel/ring" == 0)) { + McAccount *account; + const gchar *icon_name = NULL; + account = osso_abook_account_manager_lookup_by_name (NULL, + priv->local_id); + if (account) { + McProfile *profile = mc_profile_lookup (mc_account_compat_get_profile (account)); + icon_name = mc_profile_get_icon_name (profile); + } + if (icon_name) { + GdkScreen *screen; + GtkIconTheme *icon_theme; + + screen = gtk_widget_get_screen (GTK_WIDGET (self)); + icon_theme = gtk_icon_theme_get_for_screen (screen); + + priv->service_pixbuf = gtk_icon_theme_load_icon (icon_theme, + icon_name, + 128, + 0, NULL); + } + } + if (it) g_object_unref (it); } -- 1.7.9.5