diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2007-12-29 23:49:21 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2007-12-29 23:49:21 +0800 |
commit | 98d76879d49bbe8acddaa0b3f056ea556bda6b70 (patch) | |
tree | d3a4656697bfc1aed894dc89011a3e5f1e91f899 /libempathy-gtk/empathy-ui-utils.c | |
parent | 9c0af71c275a1e1a1fcbec99b90ab62acfecf67a (diff) | |
download | gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar.gz gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar.bz2 gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar.lz gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar.xz gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.tar.zst gsoc2013-empathy-98d76879d49bbe8acddaa0b3f056ea556bda6b70.zip |
Simplify chat theme system
svn path=/trunk/; revision=507
Diffstat (limited to 'libempathy-gtk/empathy-ui-utils.c')
-rw-r--r-- | libempathy-gtk/empathy-ui-utils.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-ui-utils.c b/libempathy-gtk/empathy-ui-utils.c index 6f1b5a857..2989ce2ac 100644 --- a/libempathy-gtk/empathy-ui-utils.c +++ b/libempathy-gtk/empathy-ui-utils.c @@ -1376,3 +1376,51 @@ empathy_toggle_button_set_state_quietly (GtkWidget *widget, g_signal_handlers_unblock_by_func (widget, callback, user_data); } +GtkTextTag * +empathy_text_buffer_tag_set (GtkTextBuffer *buffer, + const gchar *tag_name, + const gchar *first_property_name, + ...) +{ + GtkTextTagTable *table; + GtkTextTag *tag; + + g_return_val_if_fail (GTK_IS_TEXT_BUFFER (buffer), NULL); + g_return_val_if_fail (tag_name != NULL, NULL); + + table = gtk_text_buffer_get_tag_table (buffer); + tag = gtk_text_tag_table_lookup (table, tag_name); + + if (!tag) { + tag = gtk_text_tag_new (tag_name); + gtk_text_tag_table_add (table, tag); + g_object_unref (tag); + } else { + /* Clear the old values so that we don't affect the new theme. */ + g_object_set (tag, + "background-set", FALSE, + "foreground-set", FALSE, + "invisible-set", FALSE, + "justification-set", FALSE, + "paragraph-background-set", FALSE, + "pixels-above-lines-set", FALSE, + "pixels-below-lines-set", FALSE, + "rise-set", FALSE, + "scale-set", FALSE, + "size-set", FALSE, + "style-set", FALSE, + "weight-set", FALSE, + NULL); + } + + if (first_property_name) { + va_list list; + + va_start (list, first_property_name); + g_object_set_valist (G_OBJECT (tag), first_property_name, list); + va_end (list); + } + + return tag; +} + |