/** * st_icon_get_icon_size: * @icon: an icon * * Gets the size explicit size on the icon. This is not necesariily * the size that the icon will actually be displayed at. * * Return value: the size explicitly set, or -1 if no size has been set */ gint st_icon_get_icon_size (StIcon *icon) { g_return_val_if_fail (ST_IS_ICON (icon), -1); return icon->priv->prop_icon_size; }
/** * st_icon_get_gicon: * @icon: an icon * * Return value: (transfer none): the override GIcon, if set, or NULL */ GIcon * st_icon_get_gicon (StIcon *icon) { g_return_val_if_fail (ST_IS_ICON (icon), NULL); return icon->priv->gicon; }
/** * st_icon_set_gicon: * @icon: an icon * @gicon: (allow-none): a #GIcon to override :icon-name */ void st_icon_set_gicon (StIcon *icon, GIcon *gicon) { g_return_if_fail (ST_IS_ICON (icon)); g_return_if_fail (G_IS_ICON (gicon)); if (icon->priv->gicon == gicon) /* do nothing */ return; if (icon->priv->gicon) { g_object_unref (icon->priv->gicon); icon->priv->gicon = NULL; } if (gicon) icon->priv->gicon = g_object_ref (gicon); if (icon->priv->icon_name) { g_free (icon->priv->icon_name); icon->priv->icon_name = NULL; g_object_notify (G_OBJECT (icon), "icon-name"); } g_object_notify (G_OBJECT (icon), "gicon"); st_icon_update (icon); }
void st_icon_set_icon_name (StIcon *icon, const gchar *icon_name) { StIconPrivate *priv = icon->priv; GIcon *gicon = NULL; g_return_if_fail (ST_IS_ICON (icon)); if (icon_name) gicon = g_themed_icon_new_with_default_fallbacks (icon_name); if (g_icon_equal (priv->gicon, gicon)) /* do nothing */ { g_object_unref (gicon); return; } if (priv->gicon) g_object_unref (priv->gicon); g_object_freeze_notify (G_OBJECT (icon)); priv->gicon = gicon; g_object_notify (G_OBJECT (icon), "gicon"); g_object_notify (G_OBJECT (icon), "icon-name"); g_object_thaw_notify (G_OBJECT (icon)); st_icon_update (icon); }
/** * st_icon_get_icon_type: * @icon: a #StIcon * * Gets the type of icon we'll look up to display in the actor. * See st_icon_set_icon_type(). * * Return value: the icon type. */ StIconType st_icon_get_icon_type (StIcon *icon) { g_return_val_if_fail (ST_IS_ICON (icon), DEFAULT_ICON_TYPE); return icon->priv->icon_type; }
void st_icon_set_icon_name (StIcon *icon, const gchar *icon_name) { StIconPrivate *priv; g_return_if_fail (ST_IS_ICON (icon)); priv = icon->priv; /* Check if there's no change */ if (g_strcmp0 (priv->icon_name, icon_name) == 0) return; g_free (priv->icon_name); priv->icon_name = g_strdup (icon_name); if (priv->gicon) { g_object_unref (priv->gicon); priv->gicon = NULL; g_object_notify (G_OBJECT (icon), "gicon"); } g_object_notify (G_OBJECT (icon), "icon-name"); st_icon_update (icon); }
const gchar * st_icon_get_icon_name (StIcon *icon) { g_return_val_if_fail (ST_IS_ICON (icon), NULL); return icon->priv->icon_name; }
const gchar * st_icon_get_icon_name (StIcon *icon) { StIconPrivate *priv; g_return_val_if_fail (ST_IS_ICON (icon), NULL); priv = icon->priv; if (priv->gicon && G_IS_THEMED_ICON (priv->gicon)) return g_themed_icon_get_names (G_THEMED_ICON (priv->gicon)) [0]; else return NULL; }
/** * st_icon_set_icon_size: * @icon: an icon * @size: if positive, the new size, otherwise the size will be * derived from the current style * * Sets an explicit size for the icon. */ void st_icon_set_icon_size (StIcon *icon, gint size) { StIconPrivate *priv; g_return_if_fail (ST_IS_ICON (icon)); priv = icon->priv; if (priv->prop_icon_size != size) { priv->prop_icon_size = size; if (st_icon_update_icon_size (icon)) st_icon_update (icon); g_object_notify (G_OBJECT (icon), "icon-size"); } }
/** * st_icon_set_icon_type: * @icon: a #StIcon * @icon_type: the type of icon to use * * Sets the type of icon we'll look up to display in the actor. * The icon type determines whether we use a symbolic icon or * a full color icon and also is used for specific handling for * application and document icons. */ void st_icon_set_icon_type (StIcon *icon, StIconType icon_type) { StIconPrivate *priv; g_return_if_fail (ST_IS_ICON (icon)); priv = icon->priv; if (icon_type == priv->icon_type) return; priv->icon_type = icon_type; st_icon_update (icon); g_object_notify (G_OBJECT (icon), "icon-type"); }
/** * st_icon_set_gicon: * @icon: an icon * @gicon: (allow-none): a #GIcon to override :icon-name */ void st_icon_set_gicon (StIcon *icon, GIcon *gicon) { g_return_if_fail (ST_IS_ICON (icon)); g_return_if_fail (gicon == NULL || G_IS_ICON (gicon)); if (g_icon_equal (icon->priv->gicon, gicon)) /* do nothing */ return; if (icon->priv->gicon) { g_object_unref (icon->priv->gicon); icon->priv->gicon = NULL; } if (gicon) icon->priv->gicon = g_object_ref (gicon); g_object_notify (G_OBJECT (icon), "gicon"); st_icon_update (icon); }