diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-05-20 13:02:45 +1000 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-06-13 17:04:03 +0100 |
commit | 04986511e537b4a5d90cc13f63580984e6fa1318 (patch) | |
tree | 122f4bff751f71676c7a38abd9045e0990a5a1cd | |
parent | 6b13df746bc564a8ee72d1575315c007100262ce (diff) |
Add an icon to edited messages
Currently this is using "format-text-direction-ltr" which is a crappy choice.
We should ask for a better icon. Also, this should really be implemented as
a class, so that the icon can change with the theme. Or be made part of the
Adium theme, or something. Basically this is kludgey.
-rw-r--r-- | libempathy-gtk/empathy-images.h | 2 | ||||
-rw-r--r-- | libempathy-gtk/empathy-theme-adium.c | 28 |
2 files changed, 30 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-images.h b/libempathy-gtk/empathy-images.h index 0761fd778..2962ad6a6 100644 --- a/libempathy-gtk/empathy-images.h +++ b/libempathy-gtk/empathy-images.h @@ -46,6 +46,8 @@ G_BEGIN_DECLS #define EMPATHY_IMAGE_LOG "document-open-recent" #define EMPATHY_IMAGE_DOCUMENT_SEND "document-send" #define EMPATHY_IMAGE_AVATAR_DEFAULT "avatar-default" +/* FIXME: need a better icon! */ +#define EMPATHY_IMAGE_EDIT_MESSAGE "format-text-direction-ltr" #define EMPATHY_IMAGE_CALL "call-start" #define EMPATHY_IMAGE_CALL_MISSED "call-stop" diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c index 14a399803..a4df12d58 100644 --- a/libempathy-gtk/empathy-theme-adium.c +++ b/libempathy-gtk/empathy-theme-adium.c @@ -1036,6 +1036,7 @@ theme_adium_edit_message (EmpathyChatView *view, WebKitDOMElement *span; gchar *id, *parsed_body; gchar *tooltip, *timestamp; + GtkIconInfo *icon_info; GError *error = NULL; if (priv->pages_loading != 0) { @@ -1088,6 +1089,33 @@ theme_adium_edit_message (EmpathyChatView *view, g_free (tooltip); g_free (timestamp); + /* mark this message as edited */ + icon_info = gtk_icon_theme_lookup_icon (gtk_icon_theme_get_default (), + EMPATHY_IMAGE_EDIT_MESSAGE, 16, 0); + + if (icon_info != NULL) { + /* set the icon as a background image using CSS + * FIXME: the icon won't update in response to theme changes */ + gchar *style = g_strdup_printf ( + "background-image:url('%s');" + "background-repeat:no-repeat;" + "background-position:left center;" + "padding-left:19px;", /* 16px icon + 3px padding */ + gtk_icon_info_get_filename (icon_info)); + + webkit_dom_element_set_attribute (span, "style", style, &error); + + if (error != NULL) { + DEBUG ("Error setting element style: %s", + error->message); + g_clear_error (&error); + /* not fatal */ + } + + g_free (style); + gtk_icon_info_free (icon_info); + } + goto finally; except: |