Icon

interface Icon

GIcon is a very minimal interface for icons. It provides functions for checking the equality of two icons, hashing of icons and serializing an icon to and from strings.

GIcon does not provide the actual pixmap for the icon as this is out of GIO's scope, however implementations of GIcon may contain the name of an icon (see class@Gio.ThemedIcon), or the path to an icon (see iface@Gio.LoadableIcon).

To obtain a hash of a GIcon, see method@Gio.Icon.hash.

To check if two GIcons are equal, see method@Gio.Icon.equal.

For serializing a GIcon, use method@Gio.Icon.serialize and func@Gio.Icon.deserialize.

If you want to consume GIcon (for example, in a toolkit) you must be prepared to handle at least the three following cases: iface@Gio.LoadableIcon, class@Gio.ThemedIcon and class@Gio.EmblemedIcon. It may also make sense to have fast-paths for other cases (like handling GdkPixbuf directly, for example) but all compliant GIcon implementations outside of GIO must implement iface@Gio.LoadableIcon.

If your application or library provides one or more GIcon implementations you need to ensure that your new implementation also implements iface@Gio.LoadableIcon. Additionally, you must provide an implementation of method@Gio.Icon.serialize that gives a result that is understood by func@Gio.Icon.deserialize, yielding one of the built-in icon types.

Inheritors

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
abstract val gioIconPointer: <Error class: unknown class><<Error class: unknown class>>

Functions

Link copied to clipboard
open fun equal(icon2: Icon? = null): Boolean

Checks if two icons are equal.

Link copied to clipboard
open fun hash(): <Error class: unknown class>

Gets a hash for an icon.

Link copied to clipboard
open fun serialize(): <Error class: unknown class>?

Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved back by calling g_icon_deserialize() on the returned value. As serialization will avoid using raw icon data when possible, it only makes sense to transfer the #GVariant between processes on the same machine, (as opposed to over the network), and within the same file system namespace.

Link copied to clipboard
open fun toStringIcon(): String?

Generates a textual representation of @icon that can be used for serialization such as when passing @icon to a different process or saving it to persistent storage. Use g_icon_new_for_string() to get @icon back from the returned string.