Add g_themed_icon_prepend_name

svn path=/trunk/; revision=6991
This commit is contained in:
Matthias Clasen 2008-06-10 16:45:54 +00:00
parent e12152159f
commit 0f370f9a04
6 changed files with 62 additions and 7 deletions

View File

@ -1,3 +1,7 @@
2008-06-10 Matthias Clasen <mclasen@redhat.com>
* gio/gio-sections.txt: Add g_themed_icon_prepend_name
2008-06-10 14:06:34 Tim Janik <timj@imendio.com>
* gobject/tmpl/gtype.sgml: fixed documentation regarding type checking

View File

@ -364,6 +364,7 @@ GThemedIcon
g_themed_icon_new
g_themed_icon_new_from_names
g_themed_icon_new_with_default_fallbacks
g_themed_icon_prepend_name
g_themed_icon_append_name
<SUBSECTION Standard>
GThemedIconClass

View File

@ -1,6 +1,12 @@
2008-06-10 Matthias Clasen <mclasen@redhat.com>
ug 537392 Additional colon in xattr name
* gio.symbols:
* gthemedicon.[hc] (g_themed_icon_prepend_name): New function,
to add a name to the front of the list.
2008-06-10 Matthias Clasen <mclasen@redhat.com>
Bug 537392 Additional colon in xattr name
* glocalfileinfo.c (set_xattr): Skip the second colon of the prefix,
too. Reported by Alessandro Morandi

View File

@ -633,6 +633,7 @@ g_themed_icon_new
g_themed_icon_new_with_default_fallbacks
g_themed_icon_new_from_names
g_themed_icon_get_names
g_themed_icon_prepend_name
g_themed_icon_append_name
#endif
#endif

View File

@ -368,7 +368,8 @@ g_themed_icon_get_names (GThemedIcon *icon)
* </para></note>
*/
void
g_themed_icon_append_name (GThemedIcon *icon, const char *iconname)
g_themed_icon_append_name (GThemedIcon *icon,
const char *iconname)
{
guint num_names;
@ -383,6 +384,44 @@ g_themed_icon_append_name (GThemedIcon *icon, const char *iconname)
g_object_notify (G_OBJECT (icon), "names");
}
/**
* g_themed_icon_prepend_name:
* @icon: a #GThemedIcon
* @iconname: name of icon to prepend to list of icons from within @icon.
*
* Prepend a name to the list of icons from within @icon.
*
* <note><para>
* Note that doing so invalidates the hash computed by prior calls
* to g_icon_hash().
* </para></note>
*
* Since: 2.18
*/
void
g_themed_icon_prepend_name (GThemedIcon *icon,
const char *iconname)
{
guint num_names;
gchar **names;
gint i;
g_return_if_fail (G_IS_THEMED_ICON (icon));
g_return_if_fail (iconname != NULL);
num_names = g_strv_length (icon->names);
names = g_new (char*, num_names + 2);
for (i = 0; icon->names[i]; i++)
names[i + 1] = icon->names[i];
names[0] = g_strdup (iconname);
names[num_names + 1] = NULL;
g_free (icon->names);
icon->names = names;
g_object_notify (G_OBJECT (icon), "names");
}
static guint
g_themed_icon_hash (GIcon *icon)
{

View File

@ -48,12 +48,16 @@ typedef struct _GThemedIconClass GThemedIconClass;
GType g_themed_icon_get_type (void) G_GNUC_CONST;
GIcon *g_themed_icon_new (const char *iconname);
GIcon *g_themed_icon_new_with_default_fallbacks (const char *iconname);
GIcon *g_themed_icon_new_from_names (char **iconnames, int len);
void g_themed_icon_append_name (GThemedIcon *icon, const char *iconname);
GIcon *g_themed_icon_new (const char *iconname);
GIcon *g_themed_icon_new_with_default_fallbacks (const char *iconname);
GIcon *g_themed_icon_new_from_names (char **iconnames,
int len);
void g_themed_icon_prepend_name (GThemedIcon *icon,
const char *iconname);
void g_themed_icon_append_name (GThemedIcon *icon,
const char *iconname);
const char * const *g_themed_icon_get_names (GThemedIcon *icon);
const char * const *g_themed_icon_get_names (GThemedIcon *icon);
G_END_DECLS