### Namespace

# GObject – 2.0

The base type system and object class

Version | 2.86.4
Authors | GLib Development Team
License | LGPL-2.1-or-later
Website | https://www.gtk.org
Source | https://gitlab.gnome.org/GNOME/glib/

#### Build

C headers | `glib-object.h`
pkg-config files | `gobject-2.0`

#### Dependencies

GLib—2.0 | The base utility library
| Browse documentation

#### Related libraries

GModule | Portable API for dynamically loading modules
| Browse documentation
GIO | GObject Interfaces and Objects, Networking, IPC, and I/O
| Browse documentation

#### Additional documentation

- Type System Concepts
- GObject Tutorial
- Types
- Signals
- Floating References
- Boxed Types
- Enumeration Types
- Generic Value Container
- Value Collection
- Classes Hierarchy

#### Classes

Binding | `GObject` instance (or source) and another property on another `GObject` instance (or target). since: 2.26
BindingGroup | `GBindingGroup` can be used to bind multiple properties from an object collectively. since: 2.72
InitiallyUnowned | A type for objects that have an initially floating reference.
Object | The base object type.
ParamSpec | `GParamSpec` encapsulates the metadata required to specify parameters, such as `GObject` properties.
ParamSpecBoolean | A `GParamSpec` derived structure that contains the meta data for boolean properties.
ParamSpecBoxed | A `GParamSpec` derived structure that contains the meta data for boxed properties.
ParamSpecChar | A `GParamSpec` derived structure that contains the meta data for character properties.
ParamSpecDouble | A `GParamSpec` derived structure that contains the meta data for double properties.
ParamSpecEnum | A `GParamSpec` derived structure that contains the meta data for enum properties.
ParamSpecFlags | A `GParamSpec` derived structure that contains the meta data for flags properties.
ParamSpecFloat | A `GParamSpec` derived structure that contains the meta data for float properties.
ParamSpecGType | A `GParamSpec` derived structure that contains the meta data for `GType` properties. since: 2.10
ParamSpecInt | A `GParamSpec` derived structure that contains the meta data for integer properties.
ParamSpecInt64 | A `GParamSpec` derived structure that contains the meta data for 64bit integer properties.
ParamSpecLong | A `GParamSpec` derived structure that contains the meta data for long integer properties.
ParamSpecObject | A `GParamSpec` derived structure that contains the meta data for object properties.
ParamSpecOverride | A `GParamSpec` derived structure that redirects operations to other types of `GParamSpec`. since: 2.4
ParamSpecParam | A `GParamSpec` derived structure that contains the meta data for `G_TYPE_PARAM` properties.
ParamSpecPointer | A `GParamSpec` derived structure that contains the meta data for pointer properties.
ParamSpecString | A `GParamSpec` derived structure that contains the meta data for string properties.
ParamSpecUChar | A `GParamSpec` derived structure that contains the meta data for unsigned character properties.
ParamSpecUInt | A `GParamSpec` derived structure that contains the meta data for unsigned integer properties.
ParamSpecUInt64 | A `GParamSpec` derived structure that contains the meta data for unsigned 64bit integer properties.
ParamSpecULong | A `GParamSpec` derived structure that contains the meta data for unsigned long integer properties.
ParamSpecUnichar | A `GParamSpec` derived structure that contains the meta data for unichar (unsigned integer) properties.
ParamSpecValueArray | A `GParamSpec` derived structure that contains the meta data for `GValueArray` properties.
ParamSpecVariant | A `GParamSpec` derived structure that contains the meta data for `GVariant` properties. since: 2.26
SignalGroup | `GSignalGroup` manages a collection of signals on a `GObject`. since: 2.72
TypeModule | `GTypeModule` provides a simple implementation of the `GTypePlugin` interface.

#### Interfaces

TypePlugin | An interface that handles the lifecycle of dynamically loaded types.

#### Structs

CClosure | A `GCClosure` is a specialization of `GClosure` for C function callbacks.
Closure | A `GClosure` represents a callback supplied by the programmer.
ClosureNotifyData |
EnumClass | The class of an enumeration type holds information about its possible values.
EnumValue | A structure which contains a single enum value, its name, and its nickname.
FlagsClass | The class of a flags type holds information about its possible values.
FlagsValue | A structure which contains a single flags value, its name, and its nickname.
InterfaceInfo | A structure that provides information to the type system which is used specifically for managing interface types.
ObjectConstructParam | The GObjectConstructParam struct is an auxiliary structure used to hand `GParamSpec`/`GValue` pairs to the `constructor` of a `GObjectClass`.
Parameter | The GParameter struct is an auxiliary structure used to hand parameter name/value pairs to g_object_newv(). deprecated: 2.54
ParamSpecPool | A `GParamSpecPool` maintains a collection of `GParamSpecs` which can be quickly accessed by owner and name.
ParamSpecTypeInfo | This structure is used to provide the type system with the information required to initialize and destruct (finalize) a parameter’s class and instances thereof.
SignalInvocationHint | The `GSignalInvocationHint` structure is used to pass on additional information to callbacks during a signal emission.
SignalQuery | A structure holding in-depth information for a specific signal.
TypeClass | An opaque structure used as the base of all classes.
TypeFundamentalInfo | A structure that provides information to the type system which is used specifically for managing fundamental types.
TypeInfo | This structure is used to provide the type system with the information required to initialize and destruct (finalize) a type’s class and its instances.
TypeInstance | An opaque structure used as the base of all type instances.
TypeInterface | An opaque structure used as the base of all interface types.
TypePluginClass | The `GTypePlugin` interface is used by the type system in order to handle the lifecycle of dynamically loaded types.
TypeQuery | A structure holding information for a specific type.
TypeValueTable | `'i'`: Integers, passed as `collect_values[].v_int` `'l'`: Longs, passed as `collect_values[].v_long` `'d'`: Doubles, passed as `collect_values[].v_double` `'p'`: Pointers, passed as `collect_values[].v_pointer`.
Value | An opaque structure used to hold different types of values.
ValueArray | A `GValueArray` is a container structure to hold an array of generic values. deprecated: 2.32
WeakRef | A structure containing a weak reference to a `GObject`.

#### Unions

TypeCValue | A union holding one collected value.

#### Aliases

SignalCMarshaller | This is the signature of marshaller functions, required to marshall arrays of parameter values to signal emissions into C language callback invocations.
SignalCVaMarshaller | This is the signature of va_list marshaller functions, an optional marshaller that can be used in some situations to avoid marshalling the signal argument into GValues.
Type | A numerical value which represents the unique identifier of a registered type.

#### Bitfields

BindingFlags | Flags to be passed to `g_object_bind_property()` or g_object_bind_property_full(). since: 2.26
ConnectFlags | The connection flags are used to specify the behaviour of a signal’s connection.
IOCondition |
ParamFlags | Through the `GParamFlags` flag values, certain aspects of parameters can be configured.
SignalFlags | The signal flags are used to specify a signal’s behaviour.
SignalMatchType | The match types specify what g_signal_handlers_block_matched(), `g_signal_handlers_unblock_matched()` and `g_signal_handlers_disconnect_matched()` match signals by.
TypeDebugFlags | These flags used to be passed to `g_type_init_with_debug_flags()` which is now deprecated. deprecated: 2.36
TypeFlags | Bit masks used to check or determine characteristics of a type.
TypeFundamentalFlags | Bit masks used to check or determine specific characteristics of a fundamental type.

#### Callbacks

BaseFinalizeFunc | A callback function used by the type system to finalize those portions of a derived types class structure that were setup from the corresponding GBaseInitFunc() function.
BaseInitFunc | A callback function used by the type system to do base initialization of the class structures of derived types.
BindingTransformFunc | A function to be called to transform `from_value` to `to_value`. since: 2.26
BoxedCopyFunc | This function is provided by the user and should produce a copy of the passed in boxed structure.
BoxedFreeFunc | This function is provided by the user and should free the boxed structure passed.
Callback | The type used for callback functions in structure definitions and function signatures.
ClassFinalizeFunc | A callback function used by the type system to finalize a class.
ClassInitFunc | A callback function used by the type system to initialize the class of a specific type.
ClosureMarshal | The type used for marshaller functions.
ClosureNotify | The type used for the various notification callbacks which can be registered on closures.
InstanceInitFunc | A callback function used by the type system to initialize a new instance of a type.
InterfaceFinalizeFunc | A callback function used by the type system to finalize an interface.
InterfaceInitFunc | A callback function used by the type system to initialize a new interface.
ObjectFinalizeFunc | The type of the `finalize` function of `GObjectClass`.
ObjectGetPropertyFunc | The type of the `get_property` function of `GObjectClass`.
ObjectSetPropertyFunc | The type of the `set_property` function of `GObjectClass`.
SignalAccumulator | The signal accumulator is a special callback function that can be used to collect return values of the various callbacks that are called during a signal emission.
SignalEmissionHook | A simple function pointer to get invoked when the signal is emitted.
ToggleNotify | A callback function used for notification when the state of a toggle reference changes.
TypeClassCacheFunc | A callback function which is called when the reference count of a class drops to zero.
TypeInterfaceCheckFunc | A callback called after an interface vtable is initialized. since: 2.4
TypePluginCompleteInterfaceInfo | The type of the `complete_interface_info` function of `GTypePluginClass`.
TypePluginCompleteTypeInfo | The type of the `complete_type_info` function of `GTypePluginClass`.
TypePluginUnuse | The type of the `unuse_plugin` function of `GTypePluginClass`.
TypePluginUse | The type of the `use_plugin` function of `GTypePluginClass`, which gets called to increase the use count of `plugin`.
TypeValueCollectFunc | This function is responsible for converting the values collected from a variadic argument list into contents suitable for storage in a `GValue`. since: 2.78
TypeValueCopyFunc | Copies the content of a `GValue` into another. since: 2.78
TypeValueFreeFunc | Frees any old contents that might be left in the `value->data` array of the given value. since: 2.78
TypeValueInitFunc | Initializes the value contents by setting the fields of the `value->data` array. since: 2.78
TypeValueLCopyFunc | This function is responsible for storing the `value` contents into arguments passed through a variadic argument list which got collected into `collect_values` according to `lcopy_format`. since: 2.78
TypeValuePeekPointerFunc | If the value contents fit into a pointer, such as objects or strings, return this pointer, so the caller can peek at the current contents. since: 2.78
VaClosureMarshal | This is the signature of va_list marshaller functions, an optional marshaller that can be used in some situations to avoid marshalling the signal argument into GValues.
ValueTransform | The type of value transformation functions which can be registered with `g_value_register_transform_func()`.
WeakNotify | A `GWeakNotify` function can be added to an object as a callback that gets triggered when the object is finalized.

#### Functions

boxed_copy | Provide a copy of a boxed structure `src_boxed` which is of type `boxed_type`.
boxed_free | Free the boxed structure `boxed` which is of type `boxed_type`.
boxed_type_register_static | This function creates a new `G_TYPE_BOXED` derived type id for a new boxed type with name `name`.
clear_object | Clears a reference to a `GObject`. since: 2.28
clear_signal_handler | Disconnects a handler from `instance` so it will not be called during any future or currently ongoing emissions of the signal it has been connected to. The `handler_id_ptr` is then set to zero, which is never a valid handler ID value (see g_signal_connect()). since: 2.62
enum_complete_type_info | This function is meant to be called from the `complete_type_info` function of a `GTypePlugin` implementation, as in the following example:.
enum_get_value | Returns the `GEnumValue` for a value.
enum_get_value_by_name | Looks up a `GEnumValue` by name.
enum_get_value_by_nick | Looks up a `GEnumValue` by nickname.
enum_register_static | Registers a new static enumeration type with the name `name`.
enum_to_string | Pretty-prints `value` in the form of the enum’s name. since: 2.54
flags_complete_type_info | This function is meant to be called from the `complete_type_info()` function of a `GTypePlugin` implementation, see the example for `g_enum_complete_type_info()` above.
flags_get_first_value | Returns the first `GFlagsValue` which is set in `value`.
flags_get_value_by_name | Looks up a `GFlagsValue` by name.
flags_get_value_by_nick | Looks up a `GFlagsValue` by nickname.
flags_register_static | Registers a new static flags type with the name `name`.
flags_to_string | Pretty-prints `value` in the form of the flag names separated by `|` and sorted. Any extra bits will be shown at the end as a hexadecimal number. since: 2.54
gtype_get_type |
param_spec_boolean | Creates a new `GParamSpecBoolean` instance specifying a `G_TYPE_BOOLEAN` property. In many cases, it may be more appropriate to use an enum with g_param_spec_enum(), both to improve code clarity by using explicitly named values, and to allow for more values to be added in future without breaking API.
param_spec_boxed | Creates a new `GParamSpecBoxed` instance specifying a `G_TYPE_BOXED` derived property.
param_spec_char | Creates a new `GParamSpecChar` instance specifying a `G_TYPE_CHAR` property.
param_spec_double | Creates a new `GParamSpecDouble` instance specifying a `G_TYPE_DOUBLE` property.
param_spec_enum | Creates a new `GParamSpecEnum` instance specifying a `G_TYPE_ENUM` property.
param_spec_flags | Creates a new `GParamSpecFlags` instance specifying a `G_TYPE_FLAGS` property.
param_spec_float | Creates a new `GParamSpecFloat` instance specifying a `G_TYPE_FLOAT` property.
param_spec_gtype | Creates a new `GParamSpecGType` instance specifying a `G_TYPE_GTYPE` property. since: 2.10
param_spec_int | Creates a new `GParamSpecInt` instance specifying a `G_TYPE_INT` property.
param_spec_int64 | Creates a new `GParamSpecInt64` instance specifying a `G_TYPE_INT64` property.
param_spec_long | Creates a new `GParamSpecLong` instance specifying a `G_TYPE_LONG` property.
param_spec_object | Creates a new `GParamSpecBoxed` instance specifying a `G_TYPE_OBJECT` derived property.
param_spec_override | Creates a new property of type `GParamSpecOverride`. This is used to direct operations to another paramspec, and will not be directly useful unless you are implementing a new base type similar to GObject. since: 2.4
param_spec_param | Creates a new `GParamSpecParam` instance specifying a `G_TYPE_PARAM` property.
param_spec_pointer | Creates a new `GParamSpecPointer` instance specifying a pointer property. Where possible, it is better to use `g_param_spec_object()` or `g_param_spec_boxed()` to expose memory management information.
param_spec_string | Creates a new `GParamSpecString` instance.
param_spec_uchar | Creates a new `GParamSpecUChar` instance specifying a `G_TYPE_UCHAR` property.
param_spec_uint | Creates a new `GParamSpecUInt` instance specifying a `G_TYPE_UINT` property.
param_spec_uint64 | Creates a new `GParamSpecUInt64` instance specifying a `G_TYPE_UINT64` property.
param_spec_ulong | Creates a new `GParamSpecULong` instance specifying a `G_TYPE_ULONG` property.
param_spec_unichar | Creates a new `GParamSpecUnichar` instance specifying a `G_TYPE_UINT` property. `GValue` structures for this property can be accessed with `g_value_set_uint()` and g_value_get_uint().
param_spec_value_array | Creates a new `GParamSpecValueArray` instance specifying a `G_TYPE_VALUE_ARRAY` property. `G_TYPE_VALUE_ARRAY` is a `G_TYPE_BOXED` type, as such, `GValue` structures for this property can be accessed with `g_value_set_boxed()` and g_value_get_boxed().
param_spec_variant | Creates a new `GParamSpecVariant` instance specifying a `GVariant` property. since: 2.26
param_type_register_static | Registers `name` as the name of a new static type derived from `G_TYPE_PARAM`.
param_value_convert | Transforms `src_value` into `dest_value` if possible, and then validates `dest_value`, in order for it to conform to `pspec`. If `strict_validation` is `TRUE` this function will only succeed if the transformed `dest_value` complied to `pspec` without modifications.
param_value_defaults | Checks whether `value` contains the default value as specified in `pspec`.
param_value_is_valid | Return whether the contents of `value` comply with the specifications set out by `pspec`. since: 2.74
param_value_set_default | Sets `value` to its default value as specified in `pspec`.
param_value_validate | Ensures that the contents of `value` comply with the specifications set out by `pspec`. For example, a `GParamSpecInt` might require that integers stored in `value` may not be smaller than -42 and not be greater than +42. If `value` contains an integer outside of this range, it is modified accordingly, so the resulting value will fit into the range -42 .. +42.
param_values_cmp | Compares `value1` with `value2` according to `pspec`, and return -1, 0 or +1, if `value1` is found to be less than, equal to or greater than `value2`, respectively.
pointer_type_register_static | Creates a new `G_TYPE_POINTER` derived type id for a new pointer type with name `name`.
signal_accumulator_first_wins | A predefined `GSignalAccumulator` for signals intended to be used as a hook for application code to provide a particular value. Usually only one such value is desired and multiple handlers for the same signal don’t make much sense (except for the case of the default handler defined in the class structure, in which case you will usually want the signal connection to override the class handler). since: 2.28
signal_accumulator_true_handled | A predefined `GSignalAccumulator` for signals that return a boolean values. The behavior that this accumulator gives is that a return of `TRUE` stops the signal emission: no further callbacks will be invoked, while a return of `FALSE` allows the emission to continue. The idea here is that a `TRUE` return indicates that the callback handled the signal, and no further handling is needed. since: 2.4
signal_add_emission_hook | Adds an emission hook for a signal, which will get called for any emission of that signal, independent of the instance. This is possible only for signals which don’t have `G_SIGNAL_NO_HOOKS` flag set.
signal_chain_from_overridden | Calls the original class closure of a signal. This function should only be called from an overridden class closure; see `g_signal_override_class_closure()` and g_signal_override_class_handler().
signal_chain_from_overridden_handler | Calls the original class closure of a signal. This function should only be called from an overridden class closure; see `g_signal_override_class_closure()` and g_signal_override_class_handler(). since: 2.18
signal_connect_closure | Connects a closure to a signal for a particular object.
signal_connect_closure_by_id | Connects a closure to a signal for a particular object.
signal_connect_data | Connects a `GCallback` function to a signal for a particular object. Similar to g_signal_connect(), but allows to provide a `GClosureNotify` for the data which will be called when the signal handler is disconnected and no longer used. Specify `connect_flags` if you need `..._after()` or `..._swapped()` variants of this function.
signal_connect_object | This is similar to g_signal_connect_data(), but uses a closure which ensures that the `gobject` stays alive during the call to `c_handler` by temporarily adding a reference count to `gobject`.
signal_emit | Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
signal_emit_by_name | Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
signal_emit_valist | Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
signal_emitv | Emits a signal. Signal emission is done synchronously. The method will only return control after all handlers are called or signal emission was stopped.
signal_get_invocation_hint | Returns the invocation hint of the innermost signal emission of instance.
signal_handler_block | Blocks a handler of an instance so it will not be called during any signal emissions unless it is unblocked again. Thus “blocking” a signal handler means to temporarily deactivate it, a signal handler has to be unblocked exactly the same amount of times it has been blocked before to become active again.
signal_handler_disconnect | Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to. The `handler_id` becomes invalid and may be reused.
signal_handler_find | Finds the first signal handler that matches certain selection criteria. The criteria mask is passed as an OR-ed combination of `GSignalMatchType` flags, and the criteria values are passed as arguments. The match `mask` has to be non-0 for successful matches. If no handler was found, 0 is returned.
signal_handler_is_connected | Returns whether `handler_id` is the ID of a handler connected to `instance`.
signal_handler_unblock | Undoes the effect of a previous `g_signal_handler_block()` call. A blocked handler is skipped during signal emissions and will not be invoked, unblocking it (for exactly the amount of times it has been blocked before) reverts its “blocked” state, so the handler will be recognized by the signal system and is called upon future or currently ongoing signal emissions (since the order in which handlers are called during signal emissions is deterministic, whether the unblocked handler in question is called as part of a currently ongoing emission depends on how far that emission has proceeded yet).
signal_handlers_block_matched | Blocks all handlers on an instance that match a certain selection criteria.
signal_handlers_destroy | Destroy all signal handlers of a type instance. This function is an implementation detail of the `GObject` dispose implementation, and should not be used outside of the type system.
signal_handlers_disconnect_matched | Disconnects all handlers on an instance that match a certain selection criteria.
signal_handlers_unblock_matched | Unblocks all handlers on an instance that match a certain selection criteria.
signal_has_handler_pending | Returns whether there are any handlers connected to `instance` for the given signal id and detail.
signal_is_valid_name | Validate a signal name. This can be useful for dynamically-generated signals which need to be validated at run-time before actually trying to create them. since: 2.66
signal_list_ids | Lists the signals by id that a certain instance or interface type created. Further information about the signals can be acquired through g_signal_query().
signal_lookup | Given the name of the signal and the type of object it connects to, gets the signal’s identifying integer. Emitting the signal by number is somewhat faster than using the name each time.
signal_name | Given the signal’s identifier, finds its name.
signal_new | Creates a new signal. (This is usually done in the class initializer.).
signal_new_class_handler | Creates a new signal. (This is usually done in the class initializer.). since: 2.18
signal_new_valist | Creates a new signal. (This is usually done in the class initializer.).
signal_newv | Creates a new signal. (This is usually done in the class initializer.).
signal_override_class_closure | Overrides the class closure (i.e. the default handler) for the given signal for emissions on instances of `instance_type`. `instance_type` must be derived from the type to which the signal belongs.
signal_override_class_handler | Overrides the class closure (i.e. the default handler) for the given signal for emissions on instances of `instance_type` with callback `class_handler`. `instance_type` must be derived from the type to which the signal belongs. since: 2.18
signal_parse_name | Internal function to parse a signal name into its `signal_id` and `detail` quark.
signal_query | Queries the signal system for in-depth information about a specific signal. This function will fill in a user-provided structure to hold signal-specific information. If an invalid signal id is passed in, the `signal_id` member of the `GSignalQuery` is 0. All members filled into the `GSignalQuery` structure should be considered constant and have to be left untouched.
signal_remove_emission_hook | Deletes an emission hook.
signal_set_va_marshaller | Change the `GSignalCVaMarshaller` used for a given signal. This is a specialised form of the marshaller that can often be used for the common case of a single connected signal handler and avoids the overhead of `GValue`. Its use is optional. since: 2.32
signal_stop_emission | Stops a signal’s current emission.
signal_stop_emission_by_name | Stops a signal’s current emission.
signal_type_cclosure_new | Creates a new closure which invokes the function found at the offset `struct_offset` in the class structure of the interface or classed type identified by `itype`.
source_set_closure | Set the callback for a source as a `GClosure`.
source_set_dummy_callback | Sets a dummy callback for `source`. The callback will do nothing, and if the source expects a #gboolean return value, it will return `TRUE`. (If the source expects any other type of return value, it will return a 0/`NULL` value; whatever `g_value_init()` initializes a `GValue` to for that type.).
strdup_value_contents | Return a newly allocated string, which describes the contents of a `GValue`. The main purpose of this function is to describe `GValue` contents for debugging output, the way in which the contents are described may change between different GLib versions.
type_add_class_cache_func | Adds a `GTypeClassCacheFunc` to be called before the reference count of a class goes from one to zero. This can be used to prevent premature class destruction. All installed `GTypeClassCacheFunc` functions will be chained until one of them returns `TRUE`. The functions have to check the class id passed in to figure whether they actually want to cache the class of this type, since all classes are routed through the same `GTypeClassCacheFunc` chain.
type_add_class_private | Registers a private class structure for a classed type; when the class is allocated, the private structures for the class and all of its parent types are allocated sequentially in the same memory block as the public structures, and are zero-filled. since: 2.24
type_add_instance_private |
type_add_interface_check | Adds a function to be called after an interface vtable is initialized for any class (i.e. after the `interface_init` member of `GInterfaceInfo` has been called). since: 2.4
type_add_interface_dynamic | Adds `interface_type` to the dynamic `instance_type`. The information contained in the `GTypePlugin` structure pointed to by `plugin` is used to manage the relationship.
type_add_interface_static | Adds `interface_type` to the static `instance_type`. The information contained in the `GInterfaceInfo` structure pointed to by `info` is used to manage the relationship.
type_check_class_cast |
type_check_class_is_a |
type_check_instance | Private helper function to aid implementation of the G_TYPE_CHECK_INSTANCE() macro.
type_check_instance_cast |
type_check_instance_is_a |
type_check_instance_is_fundamentally_a |
type_check_is_value_type |
type_check_value |
type_check_value_holds |
type_children | Return a newly allocated and 0-terminated array of type IDs, listing the child types of `type`.
type_create_instance | Creates and initializes an instance of `type` if `type` is valid and can be instantiated. The type system only performs basic allocation and structure setups for instances: actual instance creation should happen through functions supplied by the type’s fundamental type implementation. So use of `g_type_create_instance()` is reserved for implementers of fundamental types only. E.g. instances of the `GObject` hierarchy should be created via `g_object_new()` and never directly through `g_type_create_instance()` which doesn’t handle things like singleton objects or object construction.
type_default_interface_get | Returns the default interface vtable for the given `g_type`. since: 2.84
type_default_interface_peek | If the interface type `g_type` is currently in use, returns its default interface vtable. since: 2.4
type_default_interface_ref | Increments the reference count for the interface type `g_type`, and returns the default interface vtable for the type. deprecated: 2.84 since: 2.4
type_default_interface_unref | Decrements the reference count for the type corresponding to the interface default vtable `g_iface`. deprecated: 2.84 since: 2.4
type_depth | Returns the length of the ancestry of the passed in type. This includes the type itself, so that e.g. a fundamental type has depth 1.
type_ensure | Ensures that the indicated `type` has been registered with the type system, and its _class_init() method has been run. since: 2.34
type_free_instance | Frees an instance of a type, returning it to the instance pool for the type, if there is one.
type_from_name | Look up the type ID from a given type name, returning 0 if no type has been registered under this name (this is the preferred method to find out by name whether a specific type has been registered yet).
type_fundamental | Internal function, used to extract the fundamental type ID portion. Use G_TYPE_FUNDAMENTAL() instead.
type_fundamental_next | Returns the next free fundamental type id which can be used to register a new fundamental type with g_type_register_fundamental(). The returned type ID represents the highest currently registered fundamental type identifier.
type_get_instance_count | Returns the number of instances allocated of the particular type; this is only available if GLib is built with debugging support and the `instance-count` debug flag is set (by setting the `GOBJECT_DEBUG` variable to include `instance-count`). since: 2.44
type_get_plugin | Returns the `GTypePlugin` structure for `type`.
type_get_qdata | Obtains data which has previously been attached to `type` with g_type_set_qdata().
type_get_type_registration_serial | Returns an opaque serial number that represents the state of the set of registered types. Any time a type is registered this serial changes, which means you can cache information based on type lookups (such as g_type_from_name()) and know if the cache is still valid at a later time by comparing the current serial with the one at the type lookup. since: 2.36
type_init | This function used to initialise the type system. Since GLib 2.36, the type system is initialised automatically and this function does nothing. deprecated: 2.36
type_init_with_debug_flags | This function used to initialise the type system with debugging flags. Since GLib 2.36, the type system is initialised automatically and this function does nothing. deprecated: 2.36
type_interfaces | Return a newly allocated and 0-terminated array of type IDs, listing the interface types that `type` conforms to.
type_is_a | If `is_a_type` is a derivable type, check whether `type` is a descendant of `is_a_type`. If `is_a_type` is an interface, check whether `type` conforms to it.
type_name | Get the unique name that is assigned to a type ID.
type_name_from_class |
type_name_from_instance |
type_next_base | Given a `leaf_type` and a `root_type` which is contained in its ancestry, return the type that `root_type` is the immediate parent of. In other words, this function determines the type that is derived directly from `root_type` which is also a base class of `leaf_type`. Given a root type and a leaf type, this function can be used to determine the types and order in which the leaf type is descended from the root type.
type_parent | Return the direct parent type of the passed in type. If the passed in type has no parent, i.e. is a fundamental type, 0 is returned.
type_qname | Get the corresponding quark of the type IDs name.
type_query | Queries the type system for information about a specific type.
type_register_dynamic | Registers `type_name` as the name of a new dynamic type derived from `parent_type`. The type system uses the information contained in the `GTypePlugin` structure pointed to by `plugin` to manage the type and its instances (if not abstract). The value of `flags` determines the nature (e.g. abstract or not) of the type.
type_register_fundamental | Registers `type_id` as the predefined identifier and `type_name` as the name of a fundamental type. If `type_id` is already registered, or a type named `type_name` is already registered, the behaviour is undefined. The type system uses the information contained in the `GTypeInfo` structure pointed to by `info` and the `GTypeFundamentalInfo` structure pointed to by `finfo` to manage the type and its instances. The value of `flags` determines additional characteristics of the fundamental type.
type_register_static | Registers `type_name` as the name of a new static type derived from `parent_type`. The type system uses the information contained in the `GTypeInfo` structure pointed to by `info` to manage the type and its instances (if not abstract). The value of `flags` determines the nature (e.g. abstract or not) of the type.
type_register_static_simple | Registers `type_name` as the name of a new static type derived from `parent_type`. The value of `flags` determines the nature (e.g. abstract or not) of the type. It works by filling a `GTypeInfo` struct and calling g_type_register_static(). since: 2.12
type_remove_class_cache_func | Removes a previously installed `GTypeClassCacheFunc`. The cache maintained by `cache_func` has to be empty when calling `g_type_remove_class_cache_func()` to avoid leaks.
type_remove_interface_check | Removes an interface check function added with g_type_add_interface_check(). since: 2.4
type_set_qdata | Attaches arbitrary data to a type.
type_test_flags |
variant_get_gtype |

#### Function Macros

ADD_PRIVATE | A convenience macro to ease adding private data to instances of a new type in the `_C_` section of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). since: 2.38
ADD_PRIVATE_DYNAMIC | A convenience macro to ease adding private data to instances of a new dynamic type in the `_C_` section of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). since: 2.38
assert_finalize_object | Assert that `object` is non-`NULL`, then release one reference to it with `g_object_unref()` and assert that it has been finalized (i.e. that there are no more references). since: 2.62
CALLBACK | Cast a function pointer to a `GCallback`.
CCLOSURE_SWAP_DATA | Checks whether the user data of the `GCClosure` should be passed as the first parameter to the callback. See g_cclosure_new_swap().
clear_weak_pointer | Clears a weak reference to a `GObject`. since: 2.56
CLOSURE_N_NOTIFIERS | Get the total number of notifiers connected with the closure `cl`.
CLOSURE_NEEDS_MARSHAL | Check if the closure still needs a marshaller. See g_closure_set_marshal().
DECLARE_DERIVABLE_TYPE | A convenience macro for emitting the usual declarations in the header file for a type which is intended to be subclassed. since: 2.44
DECLARE_FINAL_TYPE | A convenience macro for emitting the usual declarations in the header file for a type which is not (at the present time) intended to be subclassed. since: 2.44
DECLARE_INTERFACE | A convenience macro for emitting the usual declarations in the header file for a `GInterface` type. since: 2.44
DEFINE_ABSTRACT_TYPE | A convenience macro for type implementations. since: 2.4
DEFINE_ABSTRACT_TYPE_WITH_CODE | A convenience macro for type implementations. since: 2.4
DEFINE_ABSTRACT_TYPE_WITH_PRIVATE | Similar to G_DEFINE_TYPE_WITH_PRIVATE(), but defines an abstract type. since: 2.38
DEFINE_BOXED_TYPE | A convenience macro for defining a new custom boxed type. since: 2.26
DEFINE_BOXED_TYPE_WITH_CODE | A convenience macro for boxed type implementations. since: 2.26
DEFINE_DYNAMIC_TYPE | A convenience macro for dynamic type implementations, which declares a class initialization function, an instance initialization function (see `GTypeInfo` for information about these) and a static variable named `t_n`_parent_class pointing to the parent class. since: 2.14
DEFINE_DYNAMIC_TYPE_EXTENDED | A more general version of G_DEFINE_DYNAMIC_TYPE() which allows to specify `GTypeFlags` and custom code. since: 2.14
DEFINE_ENUM_TYPE | A convenience macro for defining enumeration types. since: 2.74
DEFINE_ENUM_VALUE | Defines an enumeration value, and maps it to a “nickname”. since: 2.74
DEFINE_FINAL_TYPE | A convenience macro for type implementations. since: 2.70
DEFINE_FINAL_TYPE_WITH_CODE | A convenience macro for type implementations. since: 2.70
DEFINE_FINAL_TYPE_WITH_PRIVATE | A convenience macro for type implementations. since: 2.70
DEFINE_FLAGS_TYPE | A convenience macro for defining flag types. since: 2.74
DEFINE_INTERFACE | A convenience macro for `GTypeInterface` definitions, which declares a default vtable initialization function and defines a `*_get_type()` function. since: 2.24
DEFINE_INTERFACE_WITH_CODE | A convenience macro for `GTypeInterface` definitions. since: 2.24
DEFINE_POINTER_TYPE | A convenience macro for pointer type implementations, which defines a `type_name_get_type()` function registering the pointer type. since: 2.26
DEFINE_POINTER_TYPE_WITH_CODE | A convenience macro for pointer type implementations. Similar to G_DEFINE_POINTER_TYPE(), but allows to insert custom code into the `type_name_get_type()` function. since: 2.26
DEFINE_TYPE | A convenience macro for type implementations, which declares a class initialization function, an instance initialization function (see `GTypeInfo` for information about these) and a static variable named `t_n_parent_class` pointing to the parent class. Furthermore, it defines a `*_get_type()` function. See G_DEFINE_TYPE_EXTENDED() for an example. since: 2.4
DEFINE_TYPE_EXTENDED | The most general convenience macro for type implementations, on which G_DEFINE_TYPE(), etc are based. since: 2.4
DEFINE_TYPE_WITH_CODE | A convenience macro for type implementations. since: 2.4
DEFINE_TYPE_WITH_PRIVATE | A convenience macro for type implementations, which declares a class initialization function, an instance initialization function (see `GTypeInfo` for information about these), a static variable named `t_n_parent_class` pointing to the parent class, and adds private instance data to the type. since: 2.38
DEPRECATED_ENUMERATOR_IN_2_26_FOR |
DEPRECATED_ENUMERATOR_IN_2_28_FOR |
DEPRECATED_ENUMERATOR_IN_2_30_FOR |
DEPRECATED_ENUMERATOR_IN_2_32_FOR |
DEPRECATED_ENUMERATOR_IN_2_34_FOR |
DEPRECATED_ENUMERATOR_IN_2_36_FOR |
DEPRECATED_ENUMERATOR_IN_2_38_FOR |
DEPRECATED_ENUMERATOR_IN_2_40_FOR |
DEPRECATED_ENUMERATOR_IN_2_42_FOR |
DEPRECATED_ENUMERATOR_IN_2_44_FOR |
DEPRECATED_ENUMERATOR_IN_2_46_FOR |
DEPRECATED_ENUMERATOR_IN_2_48_FOR |
DEPRECATED_ENUMERATOR_IN_2_50_FOR |
DEPRECATED_ENUMERATOR_IN_2_52_FOR |
DEPRECATED_ENUMERATOR_IN_2_54_FOR |
DEPRECATED_ENUMERATOR_IN_2_56_FOR |
DEPRECATED_ENUMERATOR_IN_2_58_FOR |
DEPRECATED_ENUMERATOR_IN_2_60_FOR |
DEPRECATED_ENUMERATOR_IN_2_62_FOR |
DEPRECATED_ENUMERATOR_IN_2_64_FOR |
DEPRECATED_ENUMERATOR_IN_2_66_FOR |
DEPRECATED_ENUMERATOR_IN_2_68_FOR |
DEPRECATED_ENUMERATOR_IN_2_70_FOR |
DEPRECATED_ENUMERATOR_IN_2_72_FOR |
DEPRECATED_ENUMERATOR_IN_2_74_FOR |
DEPRECATED_ENUMERATOR_IN_2_76_FOR |
DEPRECATED_ENUMERATOR_IN_2_78_FOR |
DEPRECATED_ENUMERATOR_IN_2_80_FOR |
DEPRECATED_ENUMERATOR_IN_2_82_FOR |
DEPRECATED_ENUMERATOR_IN_2_84_FOR |
DEPRECATED_ENUMERATOR_IN_2_86_FOR |
DEPRECATED_FOR |
DEPRECATED_IN_2_26_FOR |
DEPRECATED_IN_2_28_FOR |
DEPRECATED_IN_2_30_FOR |
DEPRECATED_IN_2_32_FOR |
DEPRECATED_IN_2_34_FOR |
DEPRECATED_IN_2_36_FOR |
DEPRECATED_IN_2_38_FOR |
DEPRECATED_IN_2_40_FOR |
DEPRECATED_IN_2_42_FOR |
DEPRECATED_IN_2_44_FOR |
DEPRECATED_IN_2_46_FOR |
DEPRECATED_IN_2_48_FOR |
DEPRECATED_IN_2_50_FOR |
DEPRECATED_IN_2_52_FOR |
DEPRECATED_IN_2_54_FOR |
DEPRECATED_IN_2_56_FOR |
DEPRECATED_IN_2_58_FOR |
DEPRECATED_IN_2_60_FOR |
DEPRECATED_IN_2_62_FOR |
DEPRECATED_IN_2_64_FOR |
DEPRECATED_IN_2_66_FOR |
DEPRECATED_IN_2_68_FOR |
DEPRECATED_IN_2_70_FOR |
DEPRECATED_IN_2_72_FOR |
DEPRECATED_IN_2_74_FOR |
DEPRECATED_IN_2_76_FOR |
DEPRECATED_IN_2_78_FOR |
DEPRECATED_IN_2_80_FOR |
DEPRECATED_IN_2_82_FOR |
DEPRECATED_IN_2_84_FOR |
DEPRECATED_IN_2_86_FOR |
DEPRECATED_MACRO_IN_2_26_FOR |
DEPRECATED_MACRO_IN_2_28_FOR |
DEPRECATED_MACRO_IN_2_30_FOR |
DEPRECATED_MACRO_IN_2_32_FOR |
DEPRECATED_MACRO_IN_2_34_FOR |
DEPRECATED_MACRO_IN_2_36_FOR |
DEPRECATED_MACRO_IN_2_38_FOR |
DEPRECATED_MACRO_IN_2_40_FOR |
DEPRECATED_MACRO_IN_2_42_FOR |
DEPRECATED_MACRO_IN_2_44_FOR |
DEPRECATED_MACRO_IN_2_46_FOR |
DEPRECATED_MACRO_IN_2_48_FOR |
DEPRECATED_MACRO_IN_2_50_FOR |
DEPRECATED_MACRO_IN_2_52_FOR |
DEPRECATED_MACRO_IN_2_54_FOR |
DEPRECATED_MACRO_IN_2_56_FOR |
DEPRECATED_MACRO_IN_2_58_FOR |
DEPRECATED_MACRO_IN_2_60_FOR |
DEPRECATED_MACRO_IN_2_62_FOR |
DEPRECATED_MACRO_IN_2_64_FOR |
DEPRECATED_MACRO_IN_2_66_FOR |
DEPRECATED_MACRO_IN_2_68_FOR |
DEPRECATED_MACRO_IN_2_70_FOR |
DEPRECATED_MACRO_IN_2_72_FOR |
DEPRECATED_MACRO_IN_2_74_FOR |
DEPRECATED_MACRO_IN_2_76_FOR |
DEPRECATED_MACRO_IN_2_78_FOR |
DEPRECATED_MACRO_IN_2_80_FOR |
DEPRECATED_MACRO_IN_2_82_FOR |
DEPRECATED_MACRO_IN_2_84_FOR |
DEPRECATED_MACRO_IN_2_86_FOR |
DEPRECATED_TYPE_IN_2_26_FOR |
DEPRECATED_TYPE_IN_2_28_FOR |
DEPRECATED_TYPE_IN_2_30_FOR |
DEPRECATED_TYPE_IN_2_32_FOR |
DEPRECATED_TYPE_IN_2_34_FOR |
DEPRECATED_TYPE_IN_2_36_FOR |
DEPRECATED_TYPE_IN_2_38_FOR |
DEPRECATED_TYPE_IN_2_40_FOR |
DEPRECATED_TYPE_IN_2_42_FOR |
DEPRECATED_TYPE_IN_2_44_FOR |
DEPRECATED_TYPE_IN_2_46_FOR |
DEPRECATED_TYPE_IN_2_48_FOR |
DEPRECATED_TYPE_IN_2_50_FOR |
DEPRECATED_TYPE_IN_2_52_FOR |
DEPRECATED_TYPE_IN_2_54_FOR |
DEPRECATED_TYPE_IN_2_56_FOR |
DEPRECATED_TYPE_IN_2_58_FOR |
DEPRECATED_TYPE_IN_2_60_FOR |
DEPRECATED_TYPE_IN_2_62_FOR |
DEPRECATED_TYPE_IN_2_64_FOR |
DEPRECATED_TYPE_IN_2_66_FOR |
DEPRECATED_TYPE_IN_2_68_FOR |
DEPRECATED_TYPE_IN_2_70_FOR |
DEPRECATED_TYPE_IN_2_72_FOR |
DEPRECATED_TYPE_IN_2_74_FOR |
DEPRECATED_TYPE_IN_2_76_FOR |
DEPRECATED_TYPE_IN_2_78_FOR |
DEPRECATED_TYPE_IN_2_80_FOR |
DEPRECATED_TYPE_IN_2_82_FOR |
DEPRECATED_TYPE_IN_2_84_FOR |
DEPRECATED_TYPE_IN_2_86_FOR |
ENUM_CLASS_TYPE | Get the type identifier from a given `GEnumClass` structure.
ENUM_CLASS_TYPE_NAME | Get the static type name from a given `GEnumClass` structure.
FLAGS_CLASS_TYPE | Get the type identifier from a given `GFlagsClass` structure.
FLAGS_CLASS_TYPE_NAME | Get the static type name from a given `GFlagsClass` structure.
IMPLEMENT_INTERFACE | A convenience macro to ease interface addition in the `_C_` section of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). See G_DEFINE_TYPE_EXTENDED() for an example. since: 2.4
IMPLEMENT_INTERFACE_DYNAMIC | A convenience macro to ease interface addition in the `_C_` section of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). since: 2.24
OBJECT_CLASS_NAME | Return the name of a class structure’s type.
OBJECT_CLASS_TYPE | Get the type id of a class structure.
OBJECT_TYPE | Get the type id of an object.
OBJECT_TYPE_NAME | Get the name of an object’s type.
OBJECT_WARN_INVALID_PROPERTY_ID | This macro should be used to emit a standard warning about unexpected properties in `set_property()` and `get_property()` implementations.
OBJECT_WARN_INVALID_PSPEC |
PARAM_SPEC_GTYPE | Casts a `GParamSpec` into a `GParamSpecGType`. since: 2.10
PARAM_SPEC_TYPE | Retrieves the `GType` of this `pspec`.
PARAM_SPEC_TYPE_NAME | Retrieves the `GType` name of this `pspec`.
PARAM_SPEC_UCHAR | Cast a `GParamSpec` instance into a `GParamSpecUChar`.
PARAM_SPEC_UINT | Cast a `GParamSpec` instance into a `GParamSpecUInt`.
PARAM_SPEC_UINT64 | Cast a `GParamSpec` instance into a `GParamSpecUInt64`.
PARAM_SPEC_ULONG | Cast a `GParamSpec` instance into a `GParamSpecULong`.
PARAM_SPEC_VALUE_TYPE | Retrieves the `GType` to initialize a `GValue` for this parameter.
PRIVATE_FIELD | Evaluates to the `field_name` inside the `inst` private data structure for `TypeName`. since: 2.38
PRIVATE_FIELD_P | Evaluates to a pointer to the `field_name` inside the `inst` private data structure for `TypeName`. since: 2.38
PRIVATE_OFFSET | Evaluates to the offset of the `field` inside the instance private data structure for `TypeName`. since: 2.38
set_object | Updates a `GObject` pointer to refer to `new_object`. since: 2.44
set_weak_pointer | Updates a pointer to weakly refer to `new_object`. since: 2.56
signal_connect | Connects a `GCallback` function to a signal for a particular object.
signal_connect_after | Connects a `GCallback` function to a signal for a particular object.
signal_connect_swapped | Connects a `GCallback` function to a signal for a particular object.
signal_handlers_block_by_func | Blocks all handlers on an instance that match `func` and `data`.
signal_handlers_disconnect_by_data | Disconnects all handlers on an instance that match `data`. since: 2.32
signal_handlers_disconnect_by_func | Disconnects all handlers on an instance that match `func` and `data`.
signal_handlers_unblock_by_func | Unblocks all handlers on an instance that match `func` and `data`.
TYPE_CHECK_CLASS_CAST | Checks that `g_class` is a class structure of the type identified by `g_type` and issues a warning if this is not the case. Returns `g_class` casted to a pointer to `c_type`. `NULL` is not a valid class structure.
TYPE_CHECK_CLASS_TYPE | Checks if `g_class` is a class structure of the type identified by `g_type`. If `g_class` is `NULL`, `FALSE` will be returned.
TYPE_CHECK_INSTANCE | Checks if `instance` is a valid `GTypeInstance` structure, otherwise issues a warning and returns `FALSE`. `NULL` is not a valid `GTypeInstance`.
TYPE_CHECK_INSTANCE_CAST | Checks that `instance` is an instance of the type identified by `g_type` and issues a warning if this is not the case. Returns `instance` casted to a pointer to `c_type`.
TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE | Checks if `instance` is an instance of the fundamental type identified by `g_type`. If `instance` is `NULL`, `FALSE` will be returned.
TYPE_CHECK_INSTANCE_TYPE | Checks if `instance` is an instance of the type identified by `g_type`. If `instance` is `NULL`, `FALSE` will be returned.
TYPE_CHECK_VALUE | Checks if `value` has been initialized to hold values of a value type.
TYPE_CHECK_VALUE_TYPE | Checks if `value` has been initialized to hold values of type `g_type`.
TYPE_FROM_CLASS | Get the type identifier from a given `class` structure.
TYPE_FROM_INSTANCE | Get the type identifier from a given `instance` structure.
TYPE_FROM_INTERFACE | Get the type identifier from a given `interface` structure.
TYPE_FUNDAMENTAL | The fundamental type which is the ancestor of `type`.
TYPE_HAS_VALUE_TABLE | Checks if `type` has a `GTypeValueTable`.
TYPE_MAKE_FUNDAMENTAL | Get the type ID for the fundamental type number `x`.
UNAVAILABLE |
UNAVAILABLE_STATIC_INLINE |
VALUE_COLLECT | Collects a variable argument value from a `va_list`.
VALUE_COLLECT_INIT | Collects a variable argument value from a `va_list`. since: 2.24
VALUE_COLLECT_INIT2 | A variant of G_VALUE_COLLECT_INIT() that provides the `GTypeValueTable` to the caller. since: 2.74
VALUE_COLLECT_SKIP | Skip an argument of type `_value_type` from `var_args`.
VALUE_HOLDS | Checks if `value` holds a value of `type`.
VALUE_HOLDS_BOOLEAN | Checks whether the given `GValue` can hold values of type `G_TYPE_BOOLEAN`.
VALUE_HOLDS_BOXED | Checks whether the given `GValue` can hold values derived from type `G_TYPE_BOXED`.
VALUE_HOLDS_CHAR | Checks whether the given `GValue` can hold values of type `G_TYPE_CHAR`.
VALUE_HOLDS_DOUBLE | Checks whether the given `GValue` can hold values of type `G_TYPE_DOUBLE`.
VALUE_HOLDS_ENUM | Checks whether the given `GValue` can hold values derived from type `G_TYPE_ENUM`.
VALUE_HOLDS_FLAGS | Checks whether the given `GValue` can hold values derived from type `G_TYPE_FLAGS`.
VALUE_HOLDS_FLOAT | Checks whether the given `GValue` can hold values of type `G_TYPE_FLOAT`.
VALUE_HOLDS_GTYPE | Checks whether the given `GValue` can hold values of type `G_TYPE_GTYPE`. since: 2.12
VALUE_HOLDS_INT | Checks whether the given `GValue` can hold values of type `G_TYPE_INT`.
VALUE_HOLDS_INT64 | Checks whether the given `GValue` can hold values of type `G_TYPE_INT64`.
VALUE_HOLDS_LONG | Checks whether the given `GValue` can hold values of type `G_TYPE_LONG`.
VALUE_HOLDS_OBJECT | Checks whether the given `GValue` can hold values derived from type `G_TYPE_OBJECT`.
VALUE_HOLDS_PARAM | Checks whether the given `GValue` can hold values derived from type `G_TYPE_PARAM`.
VALUE_HOLDS_POINTER | Checks whether the given `GValue` can hold values of type `G_TYPE_POINTER`.
VALUE_HOLDS_STRING | Checks whether the given `GValue` can hold values of type `G_TYPE_STRING`.
VALUE_HOLDS_UCHAR | Checks whether the given `GValue` can hold values of type `G_TYPE_UCHAR`.
VALUE_HOLDS_UINT | Checks whether the given `GValue` can hold values of type `G_TYPE_UINT`.
VALUE_HOLDS_UINT64 | Checks whether the given `GValue` can hold values of type `G_TYPE_UINT64`.
VALUE_HOLDS_ULONG | Checks whether the given `GValue` can hold values of type `G_TYPE_ULONG`.
VALUE_HOLDS_VARIANT | Checks whether the given `GValue` can hold values of type `G_TYPE_VARIANT`. since: 2.26
VALUE_LCOPY | Stores a value’s value into one or more argument locations from a `va_list`.
VALUE_TYPE | Get the type identifier of `value`.
VALUE_TYPE_NAME | Gets the name of the type of `value`.

#### Constants

PARAM_MASK | Mask containing the bits of `GParamSpec`.flags which are reserved for GLib.
PARAM_STATIC_STRINGS | `GParamFlags` value alias for `G_PARAM_STATIC_NAME` | `G_PARAM_STATIC_NICK` | `G_PARAM_STATIC_BLURB`.
PARAM_USER_SHIFT | Minimum shift count to be used for user defined flags, to be stored in `GParamSpec`.flags. The maximum allowed is 10.
SIGNAL_FLAGS_MASK | A mask for all `GSignalFlags` bits.
SIGNAL_MATCH_MASK | A mask for all `GSignalMatchType` bits.
TYPE_FLAG_RESERVED_ID_BIT | A bit in the type number that’s supposed to be left untouched.
TYPE_FUNDAMENTAL_MAX | An integer constant that represents the number of identifiers reserved for types that are assigned at compile-time.
TYPE_FUNDAMENTAL_SHIFT | Shift value used in converting numbers to type IDs.
TYPE_RESERVED_BSE_FIRST | First fundamental type number to create a new fundamental type id with G_TYPE_MAKE_FUNDAMENTAL() reserved for BSE.
TYPE_RESERVED_BSE_LAST | Last fundamental type number reserved for BSE.
TYPE_RESERVED_GLIB_FIRST | First fundamental type number to create a new fundamental type id with G_TYPE_MAKE_FUNDAMENTAL() reserved for GLib.
TYPE_RESERVED_GLIB_LAST | Last fundamental type number reserved for GLib.
TYPE_RESERVED_USER_FIRST | First available fundamental type number to create new fundamental type id with G_TYPE_MAKE_FUNDAMENTAL().
VALUE_COLLECT_FORMAT_MAX_LENGTH | The maximal number of `GTypeCValues` which can be collected for a single `GValue`.
VALUE_INTERNED_STRING | Flag to indicate that a string in a `GValue` is canonical and will exist for the duration of the process.
VALUE_NOCOPY_CONTENTS | Flag to indicate that allocated data in a `GValue` shouldn’t be copied.