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 #GThemedIcon), or the path to an icon (see #GLoadableIcon).

To obtain a hash of a #GIcon, see g_icon_hash().

To check if two #GIcons are equal, see g_icon_equal().

For serializing a #GIcon, use g_icon_serialize() and g_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: #GLoadableIcon, #GThemedIcon and #GEmblemedIcon. 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 #GLoadableIcon.

If your application or library provides one or more #GIcon implementations you need to ensure that your new implementation also implements #GLoadableIcon. Additionally, you must provide an implementation of g_icon_serialize() that gives a result that is understood by g_icon_deserialize(), yielding one of the built-in icon types.

Skipped during bindings generation

  • method to_string: C function g_icon_to_string is ignored

  • parameter icon: gpointer

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 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.