/// /** * Type Definitions for Gjs (https://gjs.guide/) * * These type definitions are automatically generated, do not edit them by hand. * If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir * * The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ... */ declare module 'gi://GObject?version=2.0' { // Module dependencies import type GLib from 'gi://GLib?version=2.0'; export namespace GObject { // A few things here are inspired by gi.ts // See https://gitlab.gnome.org/ewlsh/gi.ts/-/blob/master/packages/lib/src/generators/dts/gobject.ts // Copyright Evan Welsh // __type__ forces all GTypes to not match structurally. export type GType = { __type__(arg: never): T; name: string; }; // Extra interfaces used to help define GObject classes in js; these // aren't part of gi. export interface SignalDefinition { flags?: SignalFlags; accumulator: number; return_type?: GType; param_types?: GType[]; } export interface MetaInfo { GTypeName?: string; GTypeFlags?: TypeFlags; Properties?: Props; Signals?: Sigs; Implements?: Interfaces; CssName?: string; Template?: Uint8Array | GLib.Bytes | string; Children?: string[]; InternalChildren?: string[]; Requires?: Object[]; } // Correctly types interface checks. export function type_is_a(obj: Object, is_a_type: { $gtype: GType }): obj is T; export class Interface { static _classInit: (cls: any) => any; __name__: string; _construct: (params: any, ...otherArgs: any[]) => any; _init: (params: any) => void; $gtype?: GType; } /** * Use this to signify a function that must be overridden in an * implementation of the interface. */ export class NotImplementedError extends Error { get name(): 'NotImplementedError'; } export const __gtkCssName__: unique symbol; export const __gtkTemplate__: unique symbol; export const __gtkChildren__: unique symbol; export const __gtkInternalChildren__: unique symbol; // Expose GObject static properties for ES6 classes export const GTypeName: unique symbol; export const requires: unique symbol; export const interfaces: unique symbol; export const properties: unique symbol; export const signals: unique symbol; export let gtypeNameBasedOnJSPath: boolean; export let TYPE_BOOLEAN: GType; export let Boolean: BooleanConstructor; export let TYPE_ENUM: GType; export let TYPE_FLAGS: GType; export let TYPE_DOUBLE: GType; export let Double: NumberConstructor; export let TYPE_STRING: GType; export let String: StringConstructor; export let TYPE_NONE: GType; export let TYPE_POINTER: GType; export let TYPE_BOXED: GType; export let TYPE_PARAM: GType; export let TYPE_INTERFACE: GType; export let TYPE_OBJECT: GType; export let TYPE_JSOBJECT: GType; export let TYPE_VARIANT: GType; export let TYPE_INT: GType; export let TYPE_UINT: GType; export let TYPE_INT64: GType; export let TYPE_UINT64: GType; // fake enum for signal accumulators, keep in sync with gi/object.c export enum AccumulatorType { NONE = 0, FIRST_WINS = 1, TRUE_HANDLED = 2, } // A simple workaround if you have a class with .connect, .disconnect or .emit // methods (such as Gio.Socket.connect or NMClient.Device.disconnect) // The original g_signal_* functions are not introspectable anyway, because // we need our own handling of signal argument marshalling export function signal_connect(object: Object, name: string, handler: (...args: any[]) => any): number; export function signal_connect_after(object: Object, name: string, handler: (...args: any[]) => any): number; export function signal_emit_by_name(object: Object, name: string, ...args: any[]): void; /** * Finds the first signal handler that matches certain selection criteria. * The criteria are passed as properties of a match object. * The match object has to be non-empty for successful matches. * If no handler was found, a falsy value is returned. * * @param instance the instance owning the signal handler to be found. * @param match a properties object indicating whether to match by signal ID, detail, or callback function. * @param match.signalId signal the handler has to be connected to. * @param match.detail signal detail the handler has to be connected to. * @param match.func the callback function the handler will invoke. * @returns A valid non-0 signal handler ID for a successful match. */ export function signal_handler_find( instance: Object, match: { signalId: string; detail: string; func: (...args: any[]) => any }, ): number | bigint | object | null; /** * Blocks all handlers on an instance that match certain selection criteria. * The criteria are passed as properties of a match object. * The match object has to have at least `func` for successful matches. * If no handlers were found, 0 is returned, the number of blocked handlers * otherwise. * * @param instance the instance owning the signal handler to be found. * @param match a properties object indicating whether to match by signal ID, detail, or callback function. * @param match.signalId signal the handler has to be connected to. * @param match.detail signal detail the handler has to be connected to. * @param match.func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_block_matched( instance: Object, match: { signalId: string; detail: string; func: (...args: any[]) => any }, ): number; /** * Disconnects all handlers on an instance that match certain selection * criteria. * The criteria are passed as properties of a match object. * The match object has to have at least `func` for successful matches. * If no handlers were found, 0 is returned, the number of disconnected * handlers otherwise. * * @param instance the instance owning the signal handler * to be found. * @param match a properties object indicating whether to match by signal ID, detail, or callback function. * @param match.signalId signal the handler has to be connected to. * @param match.detail signal detail the handler has to be connected to. * @param match.func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_unblock_matched( instance: Object, match: { signalId: string; detail: string; func: (...args: any[]) => any }, ): number; /** * Disconnects all handlers on an instance that match certain selection * criteria. * The criteria are passed as properties of a match object. * The match object has to have at least `func` for successful matches. * If no handlers were found, 0 is returned, the number of disconnected * handlers otherwise. * * @param instance the instance owning the signal handler * to be found. * @param match a properties object indicating whether to match by signal ID, detail, or callback function. * @param match.signalId signal the handler has to be connected to. * @param match.detail signal detail the handler has to be connected to. * @param match.func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_disconnect_matched( instance: Object, match: { signalId: string; detail: string; func: (...args: any[]) => any }, ): number; // Also match the macros used in C APIs, even though they're not introspected /** * Blocks all handlers on an instance that match `func`. * * @param instance the instance to block handlers from. * @param func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_block_by_func(instance: Object, func: (...args: any[]) => any): number; /** * Unblocks all handlers on an instance that match `func`. * * @function * @param instance the instance to unblock handlers from. * @param func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_unblock_by_func(instance: Object, func: (...args: any[]) => any): number; /** * Disconnects all handlers on an instance that match `func`. * * @param instance the instance to remove handlers from. * @param func the callback function the handler will invoke. * @returns The number of handlers that matched. */ export function signal_handlers_disconnect_by_func(instance: Object, func: (...args: any[]) => any): number; export function signal_handlers_disconnect_by_data(): void; export type Property = K extends ParamSpec ? T : any; // TODO: What about the generated class Closure export type TClosure = (...args: P[]) => R; type ObjectConstructor = { new (...args: any[]): Object }; export function registerClass< T extends ObjectConstructor, Props extends { [key: string]: ParamSpec }, Interfaces extends { $gtype: GType }[], Sigs extends { [key: string]: { param_types?: readonly GType[]; [key: string]: any; }; }, >(options: MetaInfo, cls: T): T; export function registerClass(cls: T): T; /** * GObject-2.0 */ /** * Mask containing the bits of #GParamSpec.flags which are reserved for GLib. */ const PARAM_MASK: number; /** * #GParamFlags value alias for %G_PARAM_STATIC_NAME | %G_PARAM_STATIC_NICK | %G_PARAM_STATIC_BLURB. * * It is recommended to use this for all properties by default, as it allows for * internal performance improvements in GObject. * * It is very rare that a property would have a dynamically constructed name, * nickname or blurb. * * Since 2.13.0 */ const PARAM_STATIC_STRINGS: number; /** * Minimum shift count to be used for user defined flags, to be stored in * #GParamSpec.flags. The maximum allowed is 10. */ const PARAM_USER_SHIFT: number; /** * A mask for all #GSignalFlags bits. */ const SIGNAL_FLAGS_MASK: number; /** * A mask for all #GSignalMatchType bits. */ const SIGNAL_MATCH_MASK: number; /** * A bit in the type number that's supposed to be left untouched. */ const TYPE_FLAG_RESERVED_ID_BIT: Type; /** * An integer constant that represents the number of identifiers reserved * for types that are assigned at compile-time. */ const TYPE_FUNDAMENTAL_MAX: number; /** * Shift value used in converting numbers to type IDs. */ const TYPE_FUNDAMENTAL_SHIFT: number; /** * First fundamental type number to create a new fundamental type id with * G_TYPE_MAKE_FUNDAMENTAL() reserved for BSE. */ const TYPE_RESERVED_BSE_FIRST: number; /** * Last fundamental type number reserved for BSE. */ const TYPE_RESERVED_BSE_LAST: number; /** * First fundamental type number to create a new fundamental type id with * G_TYPE_MAKE_FUNDAMENTAL() reserved for GLib. */ const TYPE_RESERVED_GLIB_FIRST: number; /** * Last fundamental type number reserved for GLib. */ const TYPE_RESERVED_GLIB_LAST: number; /** * First available fundamental type number to create new fundamental * type id with G_TYPE_MAKE_FUNDAMENTAL(). */ const TYPE_RESERVED_USER_FIRST: number; /** * The maximal number of #GTypeCValues which can be collected for a * single #GValue. */ const VALUE_COLLECT_FORMAT_MAX_LENGTH: number; /** * For string values, indicates that the string contained is canonical and will * exist for the duration of the process. See g_value_set_interned_string(). */ const VALUE_INTERNED_STRING: number; /** * If passed to G_VALUE_COLLECT(), allocated data won't be copied * but used verbatim. This does not affect ref-counted types like * objects. This does not affect usage of g_value_copy(), the data will * be copied if it is not ref-counted. */ const VALUE_NOCOPY_CONTENTS: number; /** * Provide a copy of a boxed structure `src_boxed` which is of type `boxed_type`. * @param boxed_type The type of @src_boxed. * @param src_boxed The boxed structure to be copied. * @returns The newly created copy of the boxed structure. */ function boxed_copy(boxed_type: GType, src_boxed: any): any; /** * Free the boxed structure `boxed` which is of type `boxed_type`. * @param boxed_type The type of @boxed. * @param boxed The boxed structure to be freed. */ function boxed_free(boxed_type: GType, boxed: any): void; /** * This function creates a new %G_TYPE_BOXED derived type id for a new * boxed type with name `name`. * * Boxed type handling functions have to be provided to copy and free * opaque boxed structures of this type. * * For the general case, it is recommended to use G_DEFINE_BOXED_TYPE() * instead of calling g_boxed_type_register_static() directly. The macro * will create the appropriate `*_get_type()` function for the boxed type. * @param name Name of the new boxed type. * @param boxed_copy Boxed structure copy function. * @param boxed_free Boxed structure free function. * @returns New %G_TYPE_BOXED derived type id for @name. */ function boxed_type_register_static(name: string, boxed_copy: BoxedCopyFunc, boxed_free: BoxedFreeFunc): GType; /** * A #GClosureMarshal function for use with signals with handlers that * take two boxed pointers as arguments and return a boolean. If you * have such a signal, you will probably also need to use an * accumulator, such as g_signal_accumulator_true_handled(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_BOOLEAN__BOXED_BOXED( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with handlers that * take a flags type as an argument and return a boolean. If you have * such a signal, you will probably also need to use an accumulator, * such as g_signal_accumulator_true_handled(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_BOOLEAN__FLAGS( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with handlers that * take a #GObject and a pointer and produce a string. It is highly * unlikely that your signal handler fits this description. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_STRING__OBJECT_POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * boolean argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__BOOLEAN( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument which is any boxed pointer type. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__BOXED( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * character argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__CHAR( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with one * double-precision floating point argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__DOUBLE( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument with an enumerated type. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__ENUM( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument with a flags types. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__FLAGS( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with one * single-precision floating point argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__FLOAT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__INT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with with a single * long integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__LONG( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * #GObject argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__OBJECT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument of type #GParamSpec. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__PARAM( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single raw * pointer argument type. * * If it is possible, it is better to use one of the more specific * functions such as g_cclosure_marshal_VOID__OBJECT() or * g_cclosure_marshal_VOID__OBJECT(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single string * argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__STRING( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * unsigned character argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__UCHAR( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with with a single * unsigned integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__UINT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with an unsigned int * and a pointer as arguments. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__UINT_POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * unsigned long integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__ULONG( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * #GVariant argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__VARIANT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with no arguments. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_VOID__VOID( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A generic marshaller function implemented via * [libffi](http://sourceware.org/libffi/). * * Normally this function is not passed explicitly to g_signal_new(), * but used automatically by GLib when specifying a %NULL marshaller. * @param closure A #GClosure. * @param return_gvalue A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ function cclosure_marshal_generic( closure: Closure, return_gvalue: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * 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()). * * If the handler ID is 0 then this function does nothing. * * There is also a macro version of this function so that the code * will be inlined. * @param handler_id_ptr A pointer to a handler ID (of type #gulong) of the handler to be disconnected. * @param instance The instance to remove the signal handler from. This pointer may be %NULL or invalid, if the handler ID is zero. */ function clear_signal_handler(handler_id_ptr: number, instance: Object): void; /** * This function is meant to be called from the `complete_type_info` * function of a #GTypePlugin implementation, as in the following * example: * * * ```c * static void * my_enum_complete_type_info (GTypePlugin *plugin, * GType g_type, * GTypeInfo *info, * GTypeValueTable *value_table) * { * static const GEnumValue values[] = { * { MY_ENUM_FOO, "MY_ENUM_FOO", "foo" }, * { MY_ENUM_BAR, "MY_ENUM_BAR", "bar" }, * { 0, NULL, NULL } * }; * * g_enum_complete_type_info (type, info, values); * } * ``` * * @param g_enum_type the type identifier of the type being completed * @param const_values An array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0. */ function enum_complete_type_info(g_enum_type: GType, const_values: EnumValue): TypeInfo; /** * Returns the #GEnumValue for a value. * @param enum_class a #GEnumClass * @param value the value to look up * @returns the #GEnumValue for @value, or %NULL if @value is not a member of the enumeration */ function enum_get_value(enum_class: EnumClass, value: number): EnumValue | null; /** * Looks up a #GEnumValue by name. * @param enum_class a #GEnumClass * @param name the name to look up * @returns the #GEnumValue with name @name, or %NULL if the enumeration doesn't have a member with that name */ function enum_get_value_by_name(enum_class: EnumClass, name: string): EnumValue | null; /** * Looks up a #GEnumValue by nickname. * @param enum_class a #GEnumClass * @param nick the nickname to look up * @returns the #GEnumValue with nickname @nick, or %NULL if the enumeration doesn't have a member with that nickname */ function enum_get_value_by_nick(enum_class: EnumClass, nick: string): EnumValue | null; /** * Registers a new static enumeration type with the name `name`. * * It is normally more convenient to let [glib-mkenums][glib-mkenums], * generate a my_enum_get_type() function from a usual C enumeration * definition than to write one yourself using g_enum_register_static(). * @param name A nul-terminated string used as the name of the new type. * @param const_static_values An array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0. GObject keeps a reference to the data, so it cannot be stack-allocated. * @returns The new type identifier. */ function enum_register_static(name: string, const_static_values: EnumValue[]): GType; /** * Pretty-prints `value` in the form of the enum’s name. * * This is intended to be used for debugging purposes. The format of the output * may change in the future. * @param g_enum_type the type identifier of a #GEnumClass type * @param value the value * @returns a newly-allocated text string */ function enum_to_string(g_enum_type: GType, value: number): string; /** * 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. * @param g_flags_type the type identifier of the type being completed * @param const_values An array of #GFlagsValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0. */ function flags_complete_type_info(g_flags_type: GType, const_values: FlagsValue): TypeInfo; /** * Returns the first #GFlagsValue which is set in `value`. * @param flags_class a #GFlagsClass * @param value the value * @returns the first #GFlagsValue which is set in @value, or %NULL if none is set */ function flags_get_first_value(flags_class: FlagsClass, value: number): FlagsValue | null; /** * Looks up a #GFlagsValue by name. * @param flags_class a #GFlagsClass * @param name the name to look up * @returns the #GFlagsValue with name @name, or %NULL if there is no flag with that name */ function flags_get_value_by_name(flags_class: FlagsClass, name: string): FlagsValue | null; /** * Looks up a #GFlagsValue by nickname. * @param flags_class a #GFlagsClass * @param nick the nickname to look up * @returns the #GFlagsValue with nickname @nick, or %NULL if there is no flag with that nickname */ function flags_get_value_by_nick(flags_class: FlagsClass, nick: string): FlagsValue | null; /** * Registers a new static flags type with the name `name`. * * It is normally more convenient to let [glib-mkenums][glib-mkenums] * generate a my_flags_get_type() function from a usual C enumeration * definition than to write one yourself using g_flags_register_static(). * @param name A nul-terminated string used as the name of the new type. * @param const_static_values An array of #GFlagsValue structs for the possible flags values. The array is terminated by a struct with all members being 0. GObject keeps a reference to the data, so it cannot be stack-allocated. * @returns The new type identifier. */ function flags_register_static(name: string, const_static_values: FlagsValue[]): GType; /** * 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. * * This is intended to be used for debugging purposes. The format of the output * may change in the future. * @param flags_type the type identifier of a #GFlagsClass type * @param value the value * @returns a newly-allocated text string */ function flags_to_string(flags_type: GType, value: number): string; function gtype_get_type(): GType; /** * 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. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_boolean( name: string, nick: string | null, blurb: string | null, default_value: boolean, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_BOXED * derived property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param boxed_type %G_TYPE_BOXED derived type of this property * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_boxed( name: string, nick: string | null, blurb: string | null, boxed_type: GType, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecChar instance specifying a %G_TYPE_CHAR property. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_char( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecDouble instance specifying a %G_TYPE_DOUBLE * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_double( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecEnum instance specifying a %G_TYPE_ENUM * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param enum_type a #GType derived from %G_TYPE_ENUM * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_enum( name: string, nick: string | null, blurb: string | null, enum_type: GType, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecFlags instance specifying a %G_TYPE_FLAGS * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param flags_type a #GType derived from %G_TYPE_FLAGS * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_flags( name: string, nick: string | null, blurb: string | null, flags_type: GType, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecFloat instance specifying a %G_TYPE_FLOAT property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_float( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecGType instance specifying a * %G_TYPE_GTYPE property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param is_a_type a #GType whose subtypes are allowed as values of the property (use %G_TYPE_NONE for any type) * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_gtype( name: string, nick: string | null, blurb: string | null, is_a_type: GType, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecInt instance specifying a %G_TYPE_INT property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_int( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecInt64 instance specifying a %G_TYPE_INT64 property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_int64( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecLong instance specifying a %G_TYPE_LONG property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_long( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecBoxed instance specifying a %G_TYPE_OBJECT * derived property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param object_type %G_TYPE_OBJECT derived type of this property * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_object( name: string, nick: string | null, blurb: string | null, object_type: GType, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecParam instance specifying a %G_TYPE_PARAM * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param param_type a #GType derived from %G_TYPE_PARAM * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_param( name: string, nick: string | null, blurb: string | null, param_type: GType, flags: ParamFlags | null, ): ParamSpec; /** * 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. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_pointer( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecString instance. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_string( name: string, nick: string | null, blurb: string | null, default_value: string | null, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecUChar instance specifying a %G_TYPE_UCHAR property. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_uchar( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecUInt instance specifying a %G_TYPE_UINT property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_uint( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecUInt64 instance specifying a %G_TYPE_UINT64 * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_uint64( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecULong instance specifying a %G_TYPE_ULONG * property. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param minimum minimum value for the property specified * @param maximum maximum value for the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_ulong( name: string, nick: string | null, blurb: string | null, minimum: number, maximum: number, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * 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(). * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param default_value default value for the property specified * @param flags flags for the property specified * @returns a newly created parameter specification */ function param_spec_unichar( name: string, nick: string | null, blurb: string | null, default_value: number, flags: ParamFlags | null, ): ParamSpec; /** * Creates a new #GParamSpecVariant instance specifying a #GVariant * property. * * If `default_value` is floating, it is consumed. * * See g_param_spec_internal() for details on property names. * @param name canonical name of the property specified * @param nick nick name for the property specified * @param blurb description of the property specified * @param type a #GVariantType * @param default_value a #GVariant of type @type to use as the default value, or %NULL * @param flags flags for the property specified * @returns the newly created #GParamSpec */ function param_spec_variant( name: string, nick: string | null, blurb: string | null, type: GLib.VariantType, default_value: GLib.Variant | null, flags: ParamFlags | null, ): ParamSpec; /** * Registers `name` as the name of a new static type derived * from %G_TYPE_PARAM. * * The type system uses the information contained in the #GParamSpecTypeInfo * structure pointed to by `info` to manage the #GParamSpec type and its * instances. * @param name 0-terminated string used as the name of the new #GParamSpec type. * @param pspec_info The #GParamSpecTypeInfo for this #GParamSpec type. * @returns The new type identifier. */ function param_type_register_static(name: string, pspec_info: ParamSpecTypeInfo): GType; /** * 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. * * See also g_value_type_transformable(), g_value_transform() and * g_param_value_validate(). * @param pspec a valid #GParamSpec * @param src_value source #GValue * @param dest_value destination #GValue of correct type for @pspec * @param strict_validation %TRUE requires @dest_value to conform to @pspec without modifications * @returns %TRUE if transformation and validation were successful, %FALSE otherwise and @dest_value is left untouched. */ function param_value_convert( pspec: ParamSpec, src_value: Value | any, dest_value: Value | any, strict_validation: boolean, ): boolean; /** * Checks whether `value` contains the default value as specified in `pspec`. * @param pspec a valid #GParamSpec * @param value a #GValue of correct type for @pspec * @returns whether @value contains the canonical default for this @pspec */ function param_value_defaults(pspec: ParamSpec, value: Value | any): boolean; /** * Return whether the contents of `value` comply with the specifications * set out by `pspec`. * @param pspec a valid #GParamSpec * @param value a #GValue of correct type for @pspec * @returns whether the contents of @value comply with the specifications set out by @pspec. */ function param_value_is_valid(pspec: ParamSpec, value: Value | any): boolean; /** * Sets `value` to its default value as specified in `pspec`. * @param pspec a valid #GParamSpec * @param value a #GValue of correct type for @pspec; since 2.64, you can also pass an empty #GValue, initialized with %G_VALUE_INIT */ function param_value_set_default(pspec: ParamSpec, value: Value | any): void; /** * 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 pspec a valid #GParamSpec * @param value a #GValue of correct type for @pspec * @returns whether modifying @value was necessary to ensure validity */ function param_value_validate(pspec: ParamSpec, value: Value | any): boolean; /** * 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. * @param pspec a valid #GParamSpec * @param value1 a #GValue of correct type for @pspec * @param value2 a #GValue of correct type for @pspec * @returns -1, 0 or +1, for a less than, equal to or greater than result */ function param_values_cmp(pspec: ParamSpec, value1: Value | any, value2: Value | any): number; /** * Creates a new %G_TYPE_POINTER derived type id for a new * pointer type with name `name`. * @param name the name of the new pointer type. * @returns a new %G_TYPE_POINTER derived type id for @name. */ function pointer_type_register_static(name: string): GType; /** * 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). * * This accumulator will use the return value from the first signal * handler that is run as the return value for the signal and not run * any further handlers (ie: the first handler "wins"). * @param ihint standard #GSignalAccumulator parameter * @param return_accu standard #GSignalAccumulator parameter * @param handler_return standard #GSignalAccumulator parameter * @param dummy standard #GSignalAccumulator parameter * @returns standard #GSignalAccumulator result */ function signal_accumulator_first_wins( ihint: SignalInvocationHint, return_accu: Value | any, handler_return: Value | any, dummy?: any | null, ): boolean; /** * 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. * @param ihint standard #GSignalAccumulator parameter * @param return_accu standard #GSignalAccumulator parameter * @param handler_return standard #GSignalAccumulator parameter * @param dummy standard #GSignalAccumulator parameter * @returns standard #GSignalAccumulator result */ function signal_accumulator_true_handled( ihint: SignalInvocationHint, return_accu: Value | any, handler_return: Value | any, dummy?: any | null, ): boolean; /** * 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. * @param signal_id the signal identifier, as returned by g_signal_lookup(). * @param detail the detail on which to call the hook. * @param hook_func a #GSignalEmissionHook function. * @param data_destroy a #GDestroyNotify for @hook_data. * @returns the hook id, for later use with g_signal_remove_emission_hook(). */ function signal_add_emission_hook( signal_id: number, detail: GLib.Quark, hook_func: SignalEmissionHook, data_destroy?: GLib.DestroyNotify | null, ): number; /** * 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(). * @param instance_and_params the argument list of the signal emission. The first element in the array is a #GValue for the instance the signal is being emitted on. The rest are any arguments to be passed to the signal. * @param return_value Location for the return value. */ function signal_chain_from_overridden(instance_and_params: (Value | any)[], return_value: Value | any): void; /** * Connects a closure to a signal for a particular object. * * If `closure` is a floating reference (see g_closure_sink()), this function * takes ownership of `closure`. * * This function cannot fail. If the given signal name doesn’t exist, * a critical warning is emitted. No validation is performed on the * ‘detail’ string when specified in `detailed_signal,` other than a * non-empty check. * * Refer to the [signals documentation](signals.html) for more * details. * @param instance the instance to connect to. * @param detailed_signal a string of the form "signal-name::detail". * @param closure the closure to connect. * @param after whether the handler should be called before or after the default handler of the signal. * @returns the handler ID (always greater than 0) */ function signal_connect_closure( instance: Object, detailed_signal: string, closure: Closure, after: boolean, ): number; /** * Connects a closure to a signal for a particular object. * * If `closure` is a floating reference (see g_closure_sink()), this function * takes ownership of `closure`. * * This function cannot fail. If the given signal name doesn’t exist, * a critical warning is emitted. No validation is performed on the * ‘detail’ string when specified in `detailed_signal,` other than a * non-empty check. * * Refer to the [signals documentation](signals.html) for more * details. * @param instance the instance to connect to. * @param signal_id the id of the signal. * @param detail the detail. * @param closure the closure to connect. * @param after whether the handler should be called before or after the default handler of the signal. * @returns the handler ID (always greater than 0) */ function signal_connect_closure_by_id( instance: Object, signal_id: number, detail: GLib.Quark, closure: Closure, after: boolean, ): number; /** * Emits a signal. Signal emission is done synchronously. * The method will only return control after all handlers are called or signal emission was stopped. * * Note that g_signal_emitv() doesn't change `return_value` if no handlers are * connected, in contrast to g_signal_emit() and g_signal_emit_valist(). * @param instance_and_params argument list for the signal emission. The first element in the array is a #GValue for the instance the signal is being emitted on. The rest are any arguments to be passed to the signal. * @param signal_id the signal id * @param detail the detail * @param return_value Location to store the return value of the signal emission. This must be provided if the specified signal returns a value, but may be ignored otherwise. */ function signal_emitv( instance_and_params: (Value | any)[], signal_id: number, detail: GLib.Quark, return_value?: Value | any, ): unknown; /** * Returns the invocation hint of the innermost signal emission of instance. * @param instance the instance to query * @returns the invocation hint of the innermost signal emission, or %NULL if not found. */ function signal_get_invocation_hint(instance: Object): SignalInvocationHint | null; /** * 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. * * The `handler_id` has to be a valid signal handler id, connected to a * signal of `instance`. * @param instance The instance to block the signal handler of. * @param handler_id Handler id of the handler to be blocked. */ function signal_handler_block(instance: Object, handler_id: number): void; /** * 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. * * The `handler_id` has to be a valid signal handler id, connected to a * signal of `instance`. * @param instance The instance to remove the signal handler from. * @param handler_id Handler id of the handler to be disconnected. */ function signal_handler_disconnect(instance: Object, handler_id: number): void; /** * Returns whether `handler_id` is the ID of a handler connected to `instance`. * @param instance The instance where a signal handler is sought. * @param handler_id the handler ID. * @returns whether @handler_id identifies a handler connected to @instance. */ function signal_handler_is_connected(instance: Object, handler_id: number): boolean; /** * 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). * * The `handler_id` has to be a valid id of a signal handler that is * connected to a signal of `instance` and is currently blocked. * @param instance The instance to unblock the signal handler of. * @param handler_id Handler id of the handler to be unblocked. */ function signal_handler_unblock(instance: Object, handler_id: number): void; /** * Blocks all handlers on an instance that match a certain selection criteria. * * The criteria mask is passed as a combination of #GSignalMatchType flags, and * the criteria values are passed as arguments. A handler must match on all * flags set in `mask` to be blocked (i.e. the match is conjunctive). * * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE, * %G_SIGNAL_MATCH_FUNC * or %G_SIGNAL_MATCH_DATA match flags is required for successful matches. * If no handlers were found, 0 is returned, the number of blocked handlers * otherwise. * * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78. * @param instance The instance to block handlers from. * @param mask Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match. * @param signal_id Signal the handlers have to be connected to. * @param detail Signal detail the handlers have to be connected to. * @param closure The closure the handlers will invoke. * @param func The C closure callback of the handlers (useless for non-C closures). * @param data The closure data of the handlers' closures. * @returns The number of handlers that matched. */ function signal_handlers_block_matched( instance: Object, mask: SignalMatchType | null, signal_id: number, detail: GLib.Quark, closure?: Closure | null, func?: any | null, data?: any | null, ): number; /** * 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. * @param instance The instance whose signal handlers are destroyed */ function signal_handlers_destroy(instance: Object): void; /** * Disconnects all handlers on an instance that match a certain * selection criteria. * * The criteria mask is passed as a combination of #GSignalMatchType flags, and * the criteria values are passed as arguments. A handler must match on all * flags set in `mask` to be disconnected (i.e. the match is conjunctive). * * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE, * %G_SIGNAL_MATCH_FUNC or * %G_SIGNAL_MATCH_DATA match flags is required for successful * matches. If no handlers were found, 0 is returned, the number of * disconnected handlers otherwise. * * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78. * @param instance The instance to remove handlers from. * @param mask Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match. * @param signal_id Signal the handlers have to be connected to. * @param detail Signal detail the handlers have to be connected to. * @param closure The closure the handlers will invoke. * @param func The C closure callback of the handlers (useless for non-C closures). * @param data The closure data of the handlers' closures. * @returns The number of handlers that matched. */ function signal_handlers_disconnect_matched( instance: Object, mask: SignalMatchType | null, signal_id: number, detail: GLib.Quark, closure?: Closure | null, func?: any | null, data?: any | null, ): number; /** * Unblocks all handlers on an instance that match a certain selection * criteria. * * The criteria mask is passed as a combination of #GSignalMatchType flags, and * the criteria values are passed as arguments. A handler must match on all * flags set in `mask` to be unblocked (i.e. the match is conjunctive). * * Passing at least one of the %G_SIGNAL_MATCH_ID, %G_SIGNAL_MATCH_CLOSURE, * %G_SIGNAL_MATCH_FUNC * or %G_SIGNAL_MATCH_DATA match flags is required for successful matches. * If no handlers were found, 0 is returned, the number of unblocked handlers * otherwise. The match criteria should not apply to any handlers that are * not currently blocked. * * Support for %G_SIGNAL_MATCH_ID was added in GLib 2.78. * @param instance The instance to unblock handlers from. * @param mask Mask indicating which of @signal_id, @detail, @closure, @func and/or @data the handlers have to match. * @param signal_id Signal the handlers have to be connected to. * @param detail Signal detail the handlers have to be connected to. * @param closure The closure the handlers will invoke. * @param func The C closure callback of the handlers (useless for non-C closures). * @param data The closure data of the handlers' closures. * @returns The number of handlers that matched. */ function signal_handlers_unblock_matched( instance: Object, mask: SignalMatchType | null, signal_id: number, detail: GLib.Quark, closure?: Closure | null, func?: any | null, data?: any | null, ): number; /** * Returns whether there are any handlers connected to `instance` for the * given signal id and detail. * * If `detail` is 0 then it will only match handlers that were connected * without detail. If `detail` is non-zero then it will match handlers * connected both without detail and with the given detail. This is * consistent with how a signal emitted with `detail` would be delivered * to those handlers. * * Since 2.46 this also checks for a non-default class closure being * installed, as this is basically always what you want. * * One example of when you might use this is when the arguments to the * signal are difficult to compute. A class implementor may opt to not * emit the signal if no one is attached anyway, thus saving the cost * of building the arguments. * @param instance the object whose signal handlers are sought. * @param signal_id the signal id. * @param detail the detail. * @param may_be_blocked whether blocked handlers should count as match. * @returns %TRUE if a handler is connected to the signal, %FALSE otherwise. */ function signal_has_handler_pending( instance: Object, signal_id: number, detail: GLib.Quark, may_be_blocked: boolean, ): boolean; /** * 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. * * See [func`GObject`.signal_new] for details of the rules for valid names. * The rules for signal names are the same as those for property names. * @param name the canonical name of the signal * @returns %TRUE if @name is a valid signal name, %FALSE otherwise. */ function signal_is_valid_name(name: string): boolean; /** * 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(). * @param itype Instance or interface type. * @returns Newly allocated array of signal IDs. */ function signal_list_ids(itype: GType): number[]; /** * 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. * * Also tries the ancestors of the given type. * * The type class passed as `itype` must already have been instantiated (for * example, using g_type_class_ref()) for this function to work, as signals are * always installed during class initialization. * * See g_signal_new() for details on allowed signal names. * @param name the signal's name. * @param itype the type that the signal operates on. * @returns the signal's identifying number, or 0 if no signal was found. */ function signal_lookup(name: string, itype: GType): number; /** * Given the signal's identifier, finds its name. * * Two different signals may have the same name, if they have differing types. * @param signal_id the signal's identifying number. * @returns the signal name, or %NULL if the signal number was invalid. */ function signal_name(signal_id: number): string | null; /** * 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. * * See g_signal_chain_from_overridden() and * g_signal_chain_from_overridden_handler() for how to chain up to the * parent class closure from inside the overridden one. * @param signal_id the signal id * @param instance_type the instance type on which to override the class closure for the signal. * @param class_closure the closure. */ function signal_override_class_closure(signal_id: number, instance_type: GType, class_closure: Closure): void; /** * 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. * * See g_signal_chain_from_overridden() and * g_signal_chain_from_overridden_handler() for how to chain up to the * parent class closure from inside the overridden one. * @param signal_name the name for the signal * @param instance_type the instance type on which to override the class handler for the signal. * @param class_handler the handler. */ function signal_override_class_handler( signal_name: string, instance_type: GType, class_handler: Callback, ): void; /** * Internal function to parse a signal name into its `signal_id` * and `detail` quark. * @param detailed_signal a string of the form "signal-name::detail". * @param itype The interface/instance type that introduced "signal-name". * @param force_detail_quark %TRUE forces creation of a #GQuark for the detail. * @returns Whether the signal name could successfully be parsed and @signal_id_p and @detail_p contain valid return values. */ function signal_parse_name( detailed_signal: string, itype: GType, force_detail_quark: boolean, ): [boolean, number, GLib.Quark]; /** * 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. * @param signal_id The signal id of the signal to query information for. */ function signal_query(signal_id: number): SignalQuery; /** * Deletes an emission hook. * @param signal_id the id of the signal * @param hook_id the id of the emission hook, as returned by g_signal_add_emission_hook() */ function signal_remove_emission_hook(signal_id: number, hook_id: number): void; /** * Stops a signal's current emission. * * This will prevent the default method from running, if the signal was * %G_SIGNAL_RUN_LAST and you connected normally (i.e. without the "after" * flag). * * Prints a warning if used on a signal which isn't being emitted. * @param instance the object whose signal handlers you wish to stop. * @param signal_id the signal identifier, as returned by g_signal_lookup(). * @param detail the detail which the signal was emitted with. */ function signal_stop_emission(instance: Object, signal_id: number, detail: GLib.Quark): void; /** * Stops a signal's current emission. * * This is just like g_signal_stop_emission() except it will look up the * signal id for you. * @param instance the object whose signal handlers you wish to stop. * @param detailed_signal a string of the form "signal-name::detail". */ function signal_stop_emission_by_name(instance: Object, detailed_signal: string): void; /** * 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`. * @param itype the #GType identifier of an interface or classed type * @param struct_offset the offset of the member function of @itype's class structure which is to be invoked by the new closure * @returns a floating reference to a new #GCClosure */ function signal_type_cclosure_new(itype: GType, struct_offset: number): Closure; /** * Set the callback for a source as a #GClosure. * * If the source is not one of the standard GLib types, the `closure_callback` * and `closure_marshal` fields of the #GSourceFuncs structure must have been * filled in with pointers to appropriate functions. * @param source the source * @param closure a #GClosure */ function source_set_closure(source: GLib.Source, closure: Closure): void; /** * 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.) * * If the source is not one of the standard GLib types, the * `closure_callback` and `closure_marshal` fields of the #GSourceFuncs * structure must have been filled in with pointers to appropriate * functions. * @param source the source */ function source_set_dummy_callback(source: GLib.Source): void; /** * 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. * @param value #GValue which contents are to be described. * @returns Newly allocated string. */ function strdup_value_contents(value: Value | any): string; /** * 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. * * This function should be called in the * type's get_type() function after the type is registered. * The private structure can be retrieved using the * G_TYPE_CLASS_GET_PRIVATE() macro. * @param class_type GType of a classed type * @param private_size size of private structure */ function type_add_class_private(class_type: GType, private_size: number): void; function type_add_instance_private(class_type: GType, private_size: number): number; /** * 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. * @param instance_type #GType value of an instantiatable type * @param interface_type #GType value of an interface type * @param plugin #GTypePlugin structure to retrieve the #GInterfaceInfo from */ function type_add_interface_dynamic(instance_type: GType, interface_type: GType, plugin: TypePlugin): void; /** * 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. * @param instance_type #GType value of an instantiatable type * @param interface_type #GType value of an interface type * @param info #GInterfaceInfo structure for this (@instance_type, @interface_type) combination */ function type_add_interface_static(instance_type: GType, interface_type: GType, info: InterfaceInfo): void; function type_check_class_is_a(g_class: TypeClass, is_a_type: GType): boolean; /** * Private helper function to aid implementation of the * G_TYPE_CHECK_INSTANCE() macro. * @param instance a valid #GTypeInstance structure * @returns %TRUE if @instance is valid, %FALSE otherwise */ function type_check_instance(instance: TypeInstance): boolean; function type_check_instance_is_a(instance: TypeInstance, iface_type: GType): boolean; function type_check_instance_is_fundamentally_a(instance: TypeInstance, fundamental_type: GType): boolean; function type_check_is_value_type(type: GType): boolean; function type_check_value(value: Value | any): boolean; function type_check_value_holds(value: Value | any, type: GType): boolean; /** * Return a newly allocated and 0-terminated array of type IDs, listing * the child types of `type`. * @param type the parent type * @returns Newly allocated and 0-terminated array of child types, free with g_free() */ function type_children(type: GType): GType[]; function type_class_adjust_private_offset(g_class: any | null, private_size_or_offset: number): void; /** * Retrieves the type class of the given `type`. * * This function will create the class on demand if it does not exist * already. * * If you don't want to create the class, use g_type_class_peek() instead. * @param type type ID of a classed type * @returns the class structure for the type */ function type_class_get(type: GType): TypeClass; /** * Retrieves the class for a give type. * * This function is essentially the same as g_type_class_get(), * except that the class may have not been instantiated yet. * * As a consequence, this function may return %NULL if the class * of the type passed in does not currently exist (hasn't been * referenced before). * @param type type ID of a classed type * @returns the #GTypeClass structure for the given type ID or %NULL if the class does not currently exist */ function type_class_peek(type: GType): TypeClass | null; /** * A more efficient version of g_type_class_peek() which works only for * static types. * @param type type ID of a classed type * @returns the #GTypeClass structure for the given type ID or %NULL if the class does not currently exist or is dynamically loaded */ function type_class_peek_static(type: GType): TypeClass | null; /** * Increments the reference count of the class structure belonging to * `type`. * * This function will demand-create the class if it doesn't exist already. * @param type type ID of a classed type * @returns the #GTypeClass structure for the given type ID */ function type_class_ref(type: GType): TypeClass; /** * Returns the default interface vtable for the given `g_type`. * * If the type is not currently in use, then the default vtable * for the type will be created and initialized by calling * the base interface init and default vtable init functions for * the type (the `base_init` and `class_init` members of #GTypeInfo). * * If you don't want to create the interface vtable, you should use * g_type_default_interface_peek() instead. * * Calling g_type_default_interface_get() is useful when you * want to make sure that signals and properties for an interface * have been installed. * @param g_type an interface type * @returns the default vtable for the interface. */ function type_default_interface_get(g_type: GType): TypeInterface; /** * If the interface type `g_type` is currently in use, returns its * default interface vtable. * @param g_type an interface type * @returns the default vtable for the interface, or %NULL if the type is not currently in use */ function type_default_interface_peek(g_type: GType): TypeInterface; /** * Increments the reference count for the interface type `g_type,` * and returns the default interface vtable for the type. * * If the type is not currently in use, then the default vtable * for the type will be created and initialized by calling * the base interface init and default vtable init functions for * the type (the `base_init` and `class_init` members of #GTypeInfo). * Calling g_type_default_interface_ref() is useful when you * want to make sure that signals and properties for an interface * have been installed. * @param g_type an interface type * @returns the default vtable for the interface; call g_type_default_interface_unref() when you are done using the interface. */ function type_default_interface_ref(g_type: GType): TypeInterface; /** * Decrements the reference count for the type corresponding to the * interface default vtable `g_iface`. * * If the type is dynamic, then when no one is using the interface and all * references have been released, the finalize function for the interface's * default vtable (the `class_finalize` member of #GTypeInfo) will be called. * @param g_iface the default vtable structure for an interface, as returned by g_type_default_interface_ref() */ function type_default_interface_unref(g_iface: TypeInterface): void; /** * 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. * @param type a #GType * @returns the depth of @type */ function type_depth(type: GType): number; /** * Ensures that the indicated `type` has been registered with the * type system, and its _class_init() method has been run. * * In theory, simply calling the type's _get_type() method (or using * the corresponding macro) is supposed take care of this. However, * _get_type() methods are often marked %G_GNUC_CONST for performance * reasons, even though this is technically incorrect (since * %G_GNUC_CONST requires that the function not have side effects, * which _get_type() methods do on the first call). As a result, if * you write a bare call to a _get_type() macro, it may get optimized * out by the compiler. Using g_type_ensure() guarantees that the * type's _get_type() method is called. * @param type a #GType */ function type_ensure(type: GType): void; /** * Frees an instance of a type, returning it to the instance pool for * the type, if there is one. * * Like g_type_create_instance(), this function is reserved for * implementors of fundamental types. * @param instance an instance of a type */ function type_free_instance(instance: TypeInstance): void; /** * 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). * @param name type name to look up * @returns corresponding type ID or 0 */ function type_from_name(name: string): GType; /** * Internal function, used to extract the fundamental type ID portion. * Use G_TYPE_FUNDAMENTAL() instead. * @param type_id valid type ID * @returns fundamental type ID */ function type_fundamental(type_id: GType): GType; /** * 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. * @returns the next available fundamental type ID to be registered, or 0 if the type system ran out of fundamental type IDs */ function type_fundamental_next(): GType; /** * 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`). * @param type a #GType * @returns the number of instances allocated of the given type; if instance counts are not available, returns 0. */ function type_get_instance_count(type: GType): number; /** * Returns the #GTypePlugin structure for `type`. * @param type #GType to retrieve the plugin for * @returns the corresponding plugin if @type is a dynamic type, %NULL otherwise */ function type_get_plugin(type: GType): TypePlugin; /** * Obtains data which has previously been attached to `type` * with g_type_set_qdata(). * * Note that this does not take subtyping into account; data * attached to one type with g_type_set_qdata() cannot * be retrieved from a subtype using g_type_get_qdata(). * @param type a #GType * @param quark a #GQuark id to identify the data * @returns the data, or %NULL if no data was found */ function type_get_qdata(type: GType, quark: GLib.Quark): any | null; /** * 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. * @returns An unsigned int, representing the state of type registrations */ function type_get_type_registration_serial(): number; /** * This function used to initialise the type system. Since GLib 2.36, * the type system is initialised automatically and this function does * nothing. */ function type_init(): void; /** * 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. * * If you need to enable debugging features, use the `GOBJECT_DEBUG` * environment variable. * @param debug_flags bitwise combination of #GTypeDebugFlags values for debugging purposes */ function type_init_with_debug_flags(debug_flags: TypeDebugFlags | null): void; /** * Adds `prerequisite_type` to the list of prerequisites of `interface_type`. * This means that any type implementing `interface_type` must also implement * `prerequisite_type`. Prerequisites can be thought of as an alternative to * interface derivation (which GType doesn't support). An interface can have * at most one instantiatable prerequisite type. * @param interface_type #GType value of an interface type * @param prerequisite_type #GType value of an interface or instantiatable type */ function type_interface_add_prerequisite(interface_type: GType, prerequisite_type: GType): void; /** * Returns the #GTypePlugin structure for the dynamic interface * `interface_type` which has been added to `instance_type,` or %NULL * if `interface_type` has not been added to `instance_type` or does * not have a #GTypePlugin structure. See g_type_add_interface_dynamic(). * @param instance_type #GType of an instantiatable type * @param interface_type #GType of an interface type * @returns the #GTypePlugin for the dynamic interface @interface_type of @instance_type */ function type_interface_get_plugin(instance_type: GType, interface_type: GType): TypePlugin; /** * Returns the most specific instantiatable prerequisite of an * interface type. If the interface type has no instantiatable * prerequisite, %G_TYPE_INVALID is returned. * * See g_type_interface_add_prerequisite() for more information * about prerequisites. * @param interface_type an interface type * @returns the instantiatable prerequisite type or %G_TYPE_INVALID if none */ function type_interface_instantiatable_prerequisite(interface_type: GType): GType; /** * Returns the #GTypeInterface structure of an interface to which the * passed in class conforms. * @param instance_class a #GTypeClass structure * @param iface_type an interface ID which this class conforms to * @returns the #GTypeInterface structure of @iface_type if implemented by @instance_class, %NULL otherwise */ function type_interface_peek(instance_class: TypeClass, iface_type: GType): TypeInterface | null; /** * Returns the prerequisites of an interfaces type. * @param interface_type an interface type * @returns a newly-allocated zero-terminated array of #GType containing the prerequisites of @interface_type */ function type_interface_prerequisites(interface_type: GType): GType[]; /** * Return a newly allocated and 0-terminated array of type IDs, listing * the interface types that `type` conforms to. * @param type the type to list interface types for * @returns Newly allocated and 0-terminated array of interface types, free with g_free() */ function type_interfaces(type: GType): GType[]; /** * 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. * @param type type to check ancestry for * @param is_a_type possible ancestor of @type or interface that @type could conform to * @returns %TRUE if @type is a @is_a_type */ function type_is_a(type: GType, is_a_type: GType): boolean; /** * Get the unique name that is assigned to a type ID. * * Note that this function (like all other GType API) cannot cope with * invalid type IDs. %G_TYPE_INVALID may be passed to this function, as * may be any other validly registered type ID, but randomized type IDs * should not be passed in and will most likely lead to a crash. * @param type type to return name for * @returns static type name or %NULL */ function type_name(type: GType): string | null; function type_name_from_class(g_class: TypeClass): string; function type_name_from_instance(instance: TypeInstance): string; /** * 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. * @param leaf_type descendant of @root_type and the type to be returned * @param root_type immediate parent of the returned type * @returns immediate child of @root_type and ancestor of @leaf_type */ function type_next_base(leaf_type: GType, root_type: GType): GType; /** * 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. * @param type the derived type * @returns the parent type */ function type_parent(type: GType): GType; /** * Get the corresponding quark of the type IDs name. * @param type type to return quark of type name for * @returns the type names quark or 0 */ function type_qname(type: GType): GLib.Quark; /** * Queries the type system for information about a specific type. * * This function will fill in a user-provided structure to hold * type-specific information. If an invalid #GType is passed in, the * `type` member of the #GTypeQuery is 0. All members filled into the * #GTypeQuery structure should be considered constant and have to be * left untouched. * * Since GLib 2.78, this function allows queries on dynamic types. Previously * it only supported static types. * @param type #GType of a static, classed type */ function type_query(type: GType): TypeQuery; /** * 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. * @param parent_type type from which this type will be derived * @param type_name 0-terminated string used as the name of the new type * @param plugin #GTypePlugin structure to retrieve the #GTypeInfo from * @param flags bitwise combination of #GTypeFlags values * @returns the new type identifier or %G_TYPE_INVALID if registration failed */ function type_register_dynamic( parent_type: GType, type_name: string, plugin: TypePlugin, flags: TypeFlags | null, ): GType; /** * 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. * @param type_id a predefined type identifier * @param type_name 0-terminated string used as the name of the new type * @param info #GTypeInfo structure for this type * @param finfo #GTypeFundamentalInfo structure for this type * @param flags bitwise combination of #GTypeFlags values * @returns the predefined type identifier */ function type_register_fundamental( type_id: GType, type_name: string, info: TypeInfo, finfo: TypeFundamentalInfo, flags: TypeFlags | null, ): GType; /** * 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. * @param parent_type type from which this type will be derived * @param type_name 0-terminated string used as the name of the new type * @param info #GTypeInfo structure for this type * @param flags bitwise combination of #GTypeFlags values * @returns the new type identifier */ function type_register_static( parent_type: GType, type_name: string, info: TypeInfo, flags: TypeFlags | null, ): GType; /** * Attaches arbitrary data to a type. * @param type a #GType * @param quark a #GQuark id to identify the data * @param data the data */ function type_set_qdata(type: GType, quark: GLib.Quark, data?: any | null): void; function type_test_flags(type: GType, flags: number): boolean; /** * Returns whether a #GValue of type `src_type` can be copied into * a #GValue of type `dest_type`. * @param src_type source type to be copied. * @param dest_type destination type for copying. * @returns %TRUE if g_value_copy() is possible with @src_type and @dest_type. */ function value_type_compatible(src_type: GType, dest_type: GType): boolean; /** * Check whether g_value_transform() is able to transform values * of type `src_type` into values of type `dest_type`. Note that for * the types to be transformable, they must be compatible or a * transformation function must be registered. * @param src_type Source type. * @param dest_type Target type. * @returns %TRUE if the transformation is possible, %FALSE otherwise. */ function value_type_transformable(src_type: GType, dest_type: GType): boolean; function variant_get_gtype(): GType; interface BaseFinalizeFunc { (g_class: TypeClass): void; } interface BaseInitFunc { (g_class: TypeClass): void; } interface BindingTransformFunc { (binding: Binding, from_value: Value | any, to_value: Value | any): boolean; } interface BoxedCopyFunc { (boxed: any): any; } interface BoxedFreeFunc { (boxed: any): void; } interface Callback { (): void; } interface ClassFinalizeFunc { (g_class: TypeClass, class_data?: any | null): void; } interface ClassInitFunc { (g_class: TypeClass, class_data?: any | null): void; } interface ClosureMarshal { ( closure: Closure, return_value: Value | null, param_values: (Value | any)[], invocation_hint?: any | null, marshal_data?: any | null, ): void; } interface ClosureNotify { (data: any | null, closure: Closure): void; } interface InstanceInitFunc { (instance: TypeInstance, g_class: TypeClass): void; } interface InterfaceFinalizeFunc { (g_iface: TypeInterface, iface_data?: any | null): void; } interface InterfaceInitFunc { (g_iface: TypeInterface, iface_data?: any | null): void; } interface ObjectFinalizeFunc { (object: A): void; } interface ObjectGetPropertyFunc { (object: A, property_id: number, value: Value | any, pspec: ParamSpec): void; } interface ObjectSetPropertyFunc { (object: A, property_id: number, value: Value | any, pspec: ParamSpec): void; } interface SignalAccumulator { ( ihint: SignalInvocationHint, return_accu: Value | any, handler_return: Value | any, data?: any | null, ): boolean; } interface SignalEmissionHook { (ihint: SignalInvocationHint, param_values: (Value | any)[], data?: any | null): boolean; } interface ToggleNotify { (data: any | null, object: A, is_last_ref: boolean): void; } interface TypeClassCacheFunc { (cache_data: any | null, g_class: TypeClass): boolean; } interface TypeInterfaceCheckFunc { (check_data: any | null, g_iface: TypeInterface): void; } interface TypePluginCompleteInterfaceInfo { (plugin: TypePlugin, instance_type: GType, interface_type: GType, info: InterfaceInfo): void; } interface TypePluginCompleteTypeInfo { (plugin: TypePlugin, g_type: GType, info: TypeInfo, value_table: TypeValueTable): void; } interface TypePluginUnuse { (plugin: TypePlugin): void; } interface TypePluginUse { (plugin: TypePlugin): void; } interface TypeValueCollectFunc { (value: Value | any, collect_values: TypeCValue[], collect_flags: number): string | null; } interface TypeValueCopyFunc { (src_value: Value | any): void; } interface TypeValueFreeFunc { (value: Value | any): void; } interface TypeValueInitFunc { (value: Value | any): void; } interface TypeValueLCopyFunc { (value: Value | any, collect_values: TypeCValue[], collect_flags: number): string | null; } interface TypeValuePeekPointerFunc { (value: Value | any): any | null; } interface ValueTransform { (src_value: Value | any, dest_value: Value | any): void; } interface WeakNotify { (data: any | null, where_the_object_was: A): void; } type Array = object | null; type BookmarkFile = object | null; type ByteArray = object | null; type Bytes = object | null; type Checksum = object | null; type Date = object | null; type DateTime = object | null; type Dir = object | null; type Error = object | null; type HashTable = object | null; type Hmac = object | null; type IOChannel = object | null; type KeyFile = object | null; type MainContext = object | null; type MainLoop = object | null; type MappedFile = object | null; type MarkupParseContext = object | null; type MatchInfo = object | null; type OptionGroup = object | null; type PatternSpec = object | null; type PollFD = object | null; type PtrArray = object | null; type Rand = object | null; type Regex = object | null; type Source = object | null; type String = object | null; type Strv = object | null; type StrvBuilder = object | null; type Thread = object | null; type TimeZone = object | null; type Tree = object | null; type Uri = object | null; type VariantBuilder = object | null; type VariantDict = object | null; type VariantType = object | null; /** * Flags to be passed to g_object_bind_property() or * g_object_bind_property_full(). * * This enumeration can be extended at later date. */ /** * Flags to be passed to g_object_bind_property() or * g_object_bind_property_full(). * * This enumeration can be extended at later date. */ export namespace BindingFlags { export const $gtype: GType; } enum BindingFlags { /** * The default binding; if the source property * changes, the target property is updated with its value. */ DEFAULT, /** * Bidirectional binding; if either the * property of the source or the property of the target changes, * the other is updated. */ BIDIRECTIONAL, /** * Synchronize the values of the source and * target properties when creating the binding; the direction of * the synchronization is always from the source to the target. */ SYNC_CREATE, /** * If the two properties being bound are * booleans, setting one to %TRUE will result in the other being * set to %FALSE and vice versa. This flag will only work for * boolean properties, and cannot be used when passing custom * transformation functions to g_object_bind_property_full(). */ INVERT_BOOLEAN, } /** * The connection flags are used to specify the behaviour of a signal's * connection. */ /** * The connection flags are used to specify the behaviour of a signal's * connection. */ export namespace ConnectFlags { export const $gtype: GType; } enum ConnectFlags { /** * Default behaviour (no special flags). Since: 2.74 */ DEFAULT, /** * If set, the handler should be called after the * default handler of the signal. Normally, the handler is called before * the default handler. */ AFTER, /** * If set, the instance and data should be swapped when * calling the handler; see g_signal_connect_swapped() for an example. */ SWAPPED, } export namespace IOCondition { export const $gtype: GType; } enum IOCondition { IN, OUT, PRI, ERR, HUP, NVAL, } /** * Through the #GParamFlags flag values, certain aspects of parameters * can be configured. * * See also: %G_PARAM_STATIC_STRINGS */ /** * Through the #GParamFlags flag values, certain aspects of parameters * can be configured. * * See also: %G_PARAM_STATIC_STRINGS */ export namespace ParamFlags { export const $gtype: GType; } enum ParamFlags { /** * the parameter is readable */ READABLE, /** * the parameter is writable */ WRITABLE, /** * alias for %G_PARAM_READABLE | %G_PARAM_WRITABLE */ READWRITE, /** * the parameter will be set upon object construction. * See [vfunc`Object`.constructed] for more details */ CONSTRUCT, /** * the parameter can only be set upon object construction. * See [vfunc`Object`.constructed] for more details */ CONSTRUCT_ONLY, /** * upon parameter conversion (see g_param_value_convert()) * strict validation is not required */ LAX_VALIDATION, /** * the string used as name when constructing the * parameter is guaranteed to remain valid and * unmodified for the lifetime of the parameter. * Since 2.8 */ STATIC_NAME, /** * internal */ PRIVATE, /** * the string used as nick when constructing the * parameter is guaranteed to remain valid and * unmmodified for the lifetime of the parameter. * Since 2.8 */ STATIC_NICK, /** * the string used as blurb when constructing the * parameter is guaranteed to remain valid and * unmodified for the lifetime of the parameter. * Since 2.8 */ STATIC_BLURB, /** * calls to g_object_set_property() for this * property will not automatically result in a "notify" signal being * emitted: the implementation must call g_object_notify() themselves * in case the property actually changes. Since: 2.42. */ EXPLICIT_NOTIFY, /** * the parameter is deprecated and will be removed * in a future version. A warning will be generated if it is used * while running with G_ENABLE_DIAGNOSTIC=1. * Since 2.26 */ DEPRECATED, } /** * The signal flags are used to specify a signal's behaviour. */ /** * The signal flags are used to specify a signal's behaviour. */ export namespace SignalFlags { export const $gtype: GType; } enum SignalFlags { /** * Invoke the object method handler in the first emission stage. */ RUN_FIRST, /** * Invoke the object method handler in the third emission stage. */ RUN_LAST, /** * Invoke the object method handler in the last emission stage. */ RUN_CLEANUP, /** * Signals being emitted for an object while currently being in * emission for this very object will not be emitted recursively, * but instead cause the first emission to be restarted. */ NO_RECURSE, /** * This signal supports "::detail" appendices to the signal name * upon handler connections and emissions. */ DETAILED, /** * Action signals are signals that may freely be emitted on alive * objects from user code via g_signal_emit() and friends, without * the need of being embedded into extra code that performs pre or * post emission adjustments on the object. They can also be thought * of as object methods which can be called generically by * third-party code. */ ACTION, /** * No emissions hooks are supported for this signal. */ NO_HOOKS, /** * Varargs signal emission will always collect the * arguments, even if there are no signal handlers connected. Since 2.30. */ MUST_COLLECT, /** * The signal is deprecated and will be removed * in a future version. A warning will be generated if it is connected while * running with G_ENABLE_DIAGNOSTIC=1. Since 2.32. */ DEPRECATED, /** * Only used in #GSignalAccumulator accumulator * functions for the #GSignalInvocationHint::run_type field to mark the first * call to the accumulator function for a signal emission. Since 2.68. */ ACCUMULATOR_FIRST_RUN, } /** * The match types specify what g_signal_handlers_block_matched(), * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() * match signals by. */ /** * The match types specify what g_signal_handlers_block_matched(), * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() * match signals by. */ export namespace SignalMatchType { export const $gtype: GType; } enum SignalMatchType { /** * The signal id must be equal. */ ID, /** * The signal detail must be equal. */ DETAIL, /** * The closure must be the same. */ CLOSURE, /** * The C closure callback must be the same. */ FUNC, /** * The closure data must be the same. */ DATA, /** * Only unblocked signals may be matched. */ UNBLOCKED, } /** * These flags used to be passed to g_type_init_with_debug_flags() which * is now deprecated. * * If you need to enable debugging features, use the `GOBJECT_DEBUG` * environment variable. */ /** * These flags used to be passed to g_type_init_with_debug_flags() which * is now deprecated. * * If you need to enable debugging features, use the `GOBJECT_DEBUG` * environment variable. */ export namespace TypeDebugFlags { export const $gtype: GType; } enum TypeDebugFlags { /** * Print no messages */ NONE, /** * Print messages about object bookkeeping */ OBJECTS, /** * Print messages about signal emissions */ SIGNALS, /** * Keep a count of instances of each type */ INSTANCE_COUNT, /** * Mask covering all debug flags */ MASK, } /** * Bit masks used to check or determine characteristics of a type. */ /** * Bit masks used to check or determine characteristics of a type. */ export namespace TypeFlags { export const $gtype: GType; } enum TypeFlags { /** * No special flags. Since: 2.74 */ NONE, /** * Indicates an abstract type. No instances can be * created for an abstract type */ ABSTRACT, /** * Indicates an abstract value type, i.e. a type * that introduces a value table, but can't be used for * g_value_init() */ VALUE_ABSTRACT, /** * Indicates a final type. A final type is a non-derivable * leaf node in a deep derivable type hierarchy tree. Since: 2.70 */ FINAL, /** * The type is deprecated and may be removed in a * future version. A warning will be emitted if it is instantiated while * running with `G_ENABLE_DIAGNOSTIC=1`. Since 2.76 */ DEPRECATED, } /** * Bit masks used to check or determine specific characteristics of a * fundamental type. */ /** * Bit masks used to check or determine specific characteristics of a * fundamental type. */ export namespace TypeFundamentalFlags { export const $gtype: GType; } enum TypeFundamentalFlags { /** * Indicates a classed type */ CLASSED, /** * Indicates an instantiatable type (implies classed) */ INSTANTIATABLE, /** * Indicates a flat derivable type */ DERIVABLE, /** * Indicates a deep derivable type (implies derivable) */ DEEP_DERIVABLE, } namespace Binding { // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps { flags: BindingFlags; source: Object; source_property: string; sourceProperty: string; target: Object; target_property: string; targetProperty: string; } } /** * `GObject` instance (or source) and another property on another `GObject` * instance (or target). * * Whenever the source property changes, the same value is applied to the * target property; for instance, the following binding: * * ```c * g_object_bind_property (object1, "property-a", * object2, "property-b", * G_BINDING_DEFAULT); * ``` * * will cause the property named "property-b" of `object2` to be updated * every time [method`GObject`.set] or the specific accessor changes the value of * the property "property-a" of `object1`. * * It is possible to create a bidirectional binding between two properties * of two `GObject` instances, so that if either property changes, the * other is updated as well, for instance: * * ```c * g_object_bind_property (object1, "property-a", * object2, "property-b", * G_BINDING_BIDIRECTIONAL); * ``` * * will keep the two properties in sync. * * It is also possible to set a custom transformation function (in both * directions, in case of a bidirectional binding) to apply a custom * transformation from the source value to the target value before * applying it; for instance, the following binding: * * ```c * g_object_bind_property_full (adjustment1, "value", * adjustment2, "value", * G_BINDING_BIDIRECTIONAL, * celsius_to_fahrenheit, * fahrenheit_to_celsius, * NULL, NULL); * ``` * * will keep the "value" property of the two adjustments in sync; the * `celsius_to_fahrenheit` function will be called whenever the "value" * property of `adjustment1` changes and will transform the current value * of the property before applying it to the "value" property of `adjustment2`. * * Vice versa, the `fahrenheit_to_celsius` function will be called whenever * the "value" property of `adjustment2` changes, and will transform the * current value of the property before applying it to the "value" property * of `adjustment1`. * * Note that #GBinding does not resolve cycles by itself; a cycle like * * ``` * object1:propertyA -> object2:propertyB * object2:propertyB -> object3:propertyC * object3:propertyC -> object1:propertyA * ``` * * might lead to an infinite loop. The loop, in this particular case, * can be avoided if the objects emit the `GObject::notify` signal only * if the value has effectively been changed. A binding is implemented * using the `GObject::notify` signal, so it is susceptible to all the * various ways of blocking a signal emission, like [func`GObject`.signal_stop_emission] * or [func`GObject`.signal_handler_block]. * * A binding will be severed, and the resources it allocates freed, whenever * either one of the `GObject` instances it refers to are finalized, or when * the #GBinding instance loses its last reference. * * Bindings for languages with garbage collection can use * [method`GObject`.Binding.unbind] to explicitly release a binding between the source * and target properties, instead of relying on the last reference on the * binding, source, and target instances to drop. */ class Binding extends Object { static $gtype: GType; // Properties /** * Flags to be used to control the #GBinding */ get flags(): BindingFlags; /** * The #GObject that should be used as the source of the binding */ get source(): Object; /** * The name of the property of #GBinding:source that should be used * as the source of the binding. * * This should be in [canonical form][canonical-parameter-names] to get the * best performance. */ get source_property(): string; /** * The name of the property of #GBinding:source that should be used * as the source of the binding. * * This should be in [canonical form][canonical-parameter-names] to get the * best performance. */ get sourceProperty(): string; /** * The #GObject that should be used as the target of the binding */ get target(): Object; /** * The name of the property of #GBinding:target that should be used * as the target of the binding. * * This should be in [canonical form][canonical-parameter-names] to get the * best performance. */ get target_property(): string; /** * The name of the property of #GBinding:target that should be used * as the target of the binding. * * This should be in [canonical form][canonical-parameter-names] to get the * best performance. */ get targetProperty(): string; // Constructors constructor(properties?: Partial, ...args: any[]); _init(...args: any[]): void; // Methods /** * Retrieves the #GObject instance used as the source of the binding. * * A #GBinding can outlive the source #GObject as the binding does not hold a * strong reference to the source. If the source is destroyed before the * binding then this function will return %NULL. * @returns the source #GObject, or %NULL if the source does not exist any more. */ dup_source(): T; /** * Retrieves the #GObject instance used as the target of the binding. * * A #GBinding can outlive the target #GObject as the binding does not hold a * strong reference to the target. If the target is destroyed before the * binding then this function will return %NULL. * @returns the target #GObject, or %NULL if the target does not exist any more. */ dup_target(): T; /** * Retrieves the flags passed when constructing the #GBinding. * @returns the #GBindingFlags used by the #GBinding */ get_flags(): BindingFlags; /** * Retrieves the #GObject instance used as the source of the binding. * * A #GBinding can outlive the source #GObject as the binding does not hold a * strong reference to the source. If the source is destroyed before the * binding then this function will return %NULL. * * Use g_binding_dup_source() if the source or binding are used from different * threads as otherwise the pointer returned from this function might become * invalid if the source is finalized from another thread in the meantime. * @returns the source #GObject, or %NULL if the source does not exist any more. */ get_source(): T; /** * Retrieves the name of the property of #GBinding:source used as the source * of the binding. * @returns the name of the source property */ get_source_property(): string; /** * Retrieves the #GObject instance used as the target of the binding. * * A #GBinding can outlive the target #GObject as the binding does not hold a * strong reference to the target. If the target is destroyed before the * binding then this function will return %NULL. * * Use g_binding_dup_target() if the target or binding are used from different * threads as otherwise the pointer returned from this function might become * invalid if the target is finalized from another thread in the meantime. * @returns the target #GObject, or %NULL if the target does not exist any more. */ get_target(): T; /** * Retrieves the name of the property of #GBinding:target used as the target * of the binding. * @returns the name of the target property */ get_target_property(): string; /** * Explicitly releases the binding between the source and the target * property expressed by `binding`. * * This function will release the reference that is being held on * the `binding` instance if the binding is still bound; if you want to hold on * to the #GBinding instance after calling g_binding_unbind(), you will need * to hold a reference to it. * * Note however that this function does not take ownership of `binding,` it * only unrefs the reference that was initially created by * g_object_bind_property() and is owned by the binding. */ unbind(): void; } namespace BindingGroup { // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps { source: Object; } } /** * `GBindingGroup` can be used to bind multiple properties * from an object collectively. * * Use the various methods to bind properties from a single source * object to multiple destination objects. Properties can be bound * bidirectionally and are connected when the source object is set * with [method`GObject`.BindingGroup.set_source]. */ class BindingGroup extends Object { static $gtype: GType; // Properties /** * The source object used for binding properties. */ get source(): Object; set source(val: Object); // Constructors constructor(properties?: Partial, ...args: any[]); _init(...args: any[]): void; static ['new'](): BindingGroup; // Methods /** * Creates a binding between `source_property` on the source object * and `target_property` on `target`. Whenever the `source_property` * is changed the `target_property` is updated using the same value. * The binding flag %G_BINDING_SYNC_CREATE is automatically specified. * * See g_object_bind_property() for more information. * @param source_property the property on the source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags the flags used to create the #GBinding */ bind(source_property: string, target: Object, target_property: string, flags: BindingFlags | null): void; /** * Creates a binding between `source_property` on the source object and * `target_property` on `target,` allowing you to set the transformation * functions to be used by the binding. The binding flag * %G_BINDING_SYNC_CREATE is automatically specified. * * See g_object_bind_property_full() for more information. * @param source_property the property on the source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags the flags used to create the #GBinding * @param transform_to the transformation function from the source object to the @target, or %NULL to use the default * @param transform_from the transformation function from the @target to the source object, or %NULL to use the default */ bind_full( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, transform_to?: BindingTransformFunc | null, transform_from?: BindingTransformFunc | null, ): void; /** * Creates a binding between `source_property` on the source object and * `target_property` on `target,` allowing you to set the transformation * functions to be used by the binding. The binding flag * %G_BINDING_SYNC_CREATE is automatically specified. * * This function is the language bindings friendly version of * g_binding_group_bind_property_full(), using #GClosures * instead of function pointers. * * See g_object_bind_property_with_closures() for more information. * @param source_property the property on the source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags the flags used to create the #GBinding * @param transform_to a #GClosure wrapping the transformation function from the source object to the @target, or %NULL to use the default * @param transform_from a #GClosure wrapping the transformation function from the @target to the source object, or %NULL to use the default */ bind_full( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, transform_to?: Closure | null, transform_from?: Closure | null, ): void; /** * Gets the source object used for binding properties. * @returns a #GObject or %NULL. */ dup_source(): T; /** * Sets `source` as the source object used for creating property * bindings. If there is already a source object all bindings from it * will be removed. * * Note that all properties that have been bound must exist on `source`. * @param source the source #GObject, or %NULL to clear it */ set_source(source?: Object | null): void; } namespace InitiallyUnowned { // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps {} } /** * A type for objects that have an initially floating reference. * * All the fields in the `GInitiallyUnowned` structure are private to the * implementation and should never be accessed directly. */ class InitiallyUnowned extends Object { static $gtype: GType; // Constructors constructor(properties?: Partial, ...args: any[]); _init(...args: any[]): void; } namespace Object { // Signal callback interfaces interface Notify { (pspec: ParamSpec): void; } // Constructor properties interface interface ConstructorProps {} } /** * The base object type. * * `GObject` is the fundamental type providing the common attributes and * methods for all object types in GTK, Pango and other libraries * based on GObject. The `GObject` class provides methods for object * construction and destruction, property access methods, and signal * support. Signals are described in detail [here][gobject-Signals]. * * For a tutorial on implementing a new `GObject` class, see [How to define and * implement a new GObject](tutorial.html#how-to-define-and-implement-a-new-gobject). * For a list of naming conventions for GObjects and their methods, see the * [GType conventions](concepts.html#conventions). For the high-level concepts * behind GObject, read * [Instantiatable classed types: Objects](concepts.html#instantiatable-classed-types-objects). * * Since GLib 2.72, all `GObject`s are guaranteed to be aligned to at least the * alignment of the largest basic GLib type (typically this is `guint64` or * `gdouble`). If you need larger alignment for an element in a `GObject`, you * should allocate it on the heap (aligned), or arrange for your `GObject` to be * appropriately padded. This guarantee applies to the `GObject` (or derived) * struct, the `GObjectClass` (or derived) struct, and any private data allocated * by `G_ADD_PRIVATE()`. */ class Object { static $gtype: GType; // Constructors _init(...args: any[]): void; static newv(object_type: GType, parameters: Parameter[]): Object; // Signals connect(id: string, callback: (...args: any[]) => any): number; connect_after(id: string, callback: (...args: any[]) => any): number; emit(id: string, ...args: any[]): void; connect(signal: 'notify', callback: (_source: this, pspec: ParamSpec) => void): number; connect_after(signal: 'notify', callback: (_source: this, pspec: ParamSpec) => void): number; emit(signal: 'notify', pspec: ParamSpec): void; // Static methods static compat_control(what: number, data?: any | null): number; /** * Find the #GParamSpec with the given name for an * interface. Generally, the interface vtable passed in as `g_iface` * will be the default vtable from g_type_default_interface_ref(), or, * if you know the interface has already been loaded, * g_type_default_interface_peek(). * @param g_iface any interface vtable for the interface, or the default vtable for the interface * @param property_name name of a property to look up. */ static interface_find_property(g_iface: TypeInterface, property_name: string): ParamSpec; /** * Add a property to an interface; this is only useful for interfaces * that are added to GObject-derived types. Adding a property to an * interface forces all objects classes with that interface to have a * compatible property. The compatible property could be a newly * created #GParamSpec, but normally * g_object_class_override_property() will be used so that the object * class only needs to provide an implementation and inherits the * property description, default value, bounds, and so forth from the * interface property. * * This function is meant to be called from the interface's default * vtable initialization function (the `class_init` member of * #GTypeInfo.) It must not be called after after `class_init` has * been called for any object types implementing this interface. * * If `pspec` is a floating reference, it will be consumed. * @param g_iface any interface vtable for the interface, or the default vtable for the interface. * @param pspec the #GParamSpec for the new property */ static interface_install_property(g_iface: TypeInterface, pspec: ParamSpec): void; /** * Lists the properties of an interface.Generally, the interface * vtable passed in as `g_iface` will be the default vtable from * g_type_default_interface_ref(), or, if you know the interface has * already been loaded, g_type_default_interface_peek(). * @param g_iface any interface vtable for the interface, or the default vtable for the interface */ static interface_list_properties(g_iface: TypeInterface): ParamSpec[]; static find_property(property_name: string): ParamSpec; static install_properties(pspecs: ParamSpec[]): void; static install_property(property_id: number, pspec: ParamSpec): void; static list_properties(): ParamSpec[]; static override_property(property_id: number, name: string): void; static _classInit(klass: any): any; // Virtual methods /** * the `constructed` function is called by g_object_new() as the * final step of the object creation process. At the point of the call, all * construction properties have been set on the object. The purpose of this * call is to allow for object initialisation steps that can only be performed * after construction properties have been set. `constructed` implementors * should chain up to the `constructed` call of their parent class to allow it * to complete its initialisation. */ vfunc_constructed(): void; /** * emits property change notification for a bunch * of properties. Overriding `dispatch_properties_changed` should be rarely * needed. * @param n_pspecs * @param pspecs */ vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: ParamSpec): void; /** * the `dispose` function is supposed to drop all references to other * objects, but keep the instance otherwise intact, so that client method * invocations still work. It may be run multiple times (due to reference * loops). Before returning, `dispose` should chain up to the `dispose` method * of the parent class. */ vfunc_dispose(): void; /** * instance finalization function, should finish the finalization of * the instance begun in `dispose` and chain up to the `finalize` method of the * parent class. */ vfunc_finalize(): void; /** * the generic getter for all properties of this type. Should be * overridden for every type with properties. * @param property_id * @param value * @param pspec */ vfunc_get_property(property_id: number, value: Value | any, pspec: ParamSpec): void; /** * Emits a "notify" signal for the property `property_name` on `object`. * * When possible, eg. when signaling a property change from within the class * that registered the property, you should use g_object_notify_by_pspec() * instead. * * Note that emission of the notify signal may be blocked with * g_object_freeze_notify(). In this case, the signal emissions are queued * and will be emitted (in reverse order) when g_object_thaw_notify() is * called. * @param pspec */ vfunc_notify(pspec: ParamSpec): void; /** * the generic setter for all properties of this type. Should be * overridden for every type with properties. If implementations of * `set_property` don't emit property change notification explicitly, this will * be done implicitly by the type system. However, if the notify signal is * emitted explicitly, the type system will not emit it a second time. * @param property_id * @param value * @param pspec */ vfunc_set_property(property_id: number, value: Value | any, pspec: ParamSpec): void; // Methods /** * Creates a binding between `source_property` on `source` and `target_property` * on `target`. * * Whenever the `source_property` is changed the `target_property` is * updated using the same value. For instance: * * * ```c * g_object_bind_property (action, "active", widget, "sensitive", 0); * ``` * * * Will result in the "sensitive" property of the widget #GObject instance to be * updated with the same value of the "active" property of the action #GObject * instance. * * If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: * if `target_property` on `target` changes then the `source_property` on `source` * will be updated as well. * * The binding will automatically be removed when either the `source` or the * `target` instances are finalized. To remove the binding without affecting the * `source` and the `target` you can just call g_object_unref() on the returned * #GBinding instance. * * Removing the binding by calling g_object_unref() on it must only be done if * the binding, `source` and `target` are only used from a single thread and it * is clear that both `source` and `target` outlive the binding. Especially it * is not safe to rely on this if the binding, `source` or `target` can be * finalized from different threads. Keep another reference to the binding and * use g_binding_unbind() instead to be on the safe side. * * A #GObject can have multiple bindings. * @param source_property the property on @source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags flags to pass to #GBinding * @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero. */ bind_property( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, ): Binding; /** * Complete version of g_object_bind_property(). * * Creates a binding between `source_property` on `source` and `target_property` * on `target,` allowing you to set the transformation functions to be used by * the binding. * * If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: * if `target_property` on `target` changes then the `source_property` on `source` * will be updated as well. The `transform_from` function is only used in case * of bidirectional bindings, otherwise it will be ignored * * The binding will automatically be removed when either the `source` or the * `target` instances are finalized. This will release the reference that is * being held on the #GBinding instance; if you want to hold on to the * #GBinding instance, you will need to hold a reference to it. * * To remove the binding, call g_binding_unbind(). * * A #GObject can have multiple bindings. * * The same `user_data` parameter will be used for both `transform_to` * and `transform_from` transformation functions; the `notify` function will * be called once, when the binding is removed. If you need different data * for each transformation function, please use * g_object_bind_property_with_closures() instead. * @param source_property the property on @source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags flags to pass to #GBinding * @param transform_to the transformation function from the @source to the @target, or %NULL to use the default * @param transform_from the transformation function from the @target to the @source, or %NULL to use the default * @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required * @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero. */ bind_property_full( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, transform_to?: BindingTransformFunc | null, transform_from?: BindingTransformFunc | null, notify?: GLib.DestroyNotify | null, ): Binding; /** * Creates a binding between `source_property` on `source` and `target_property` * on `target,` allowing you to set the transformation functions to be used by * the binding. * * This function is the language bindings friendly version of * g_object_bind_property_full(), using #GClosures instead of * function pointers. * @param source_property the property on @source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags flags to pass to #GBinding * @param transform_to a #GClosure wrapping the transformation function from the @source to the @target, or %NULL to use the default * @param transform_from a #GClosure wrapping the transformation function from the @target to the @source, or %NULL to use the default * @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero. */ bind_property_full( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, transform_to: Closure, transform_from: Closure, ): Binding; /** * This function is intended for #GObject implementations to re-enforce * a [floating][floating-ref] object reference. Doing this is seldom * required: all #GInitiallyUnowneds are created with a floating reference * which usually just needs to be sunken by calling g_object_ref_sink(). */ force_floating(): void; /** * Increases the freeze count on `object`. If the freeze count is * non-zero, the emission of "notify" signals on `object` is * stopped. The signals are queued until the freeze count is decreased * to zero. Duplicate notifications are squashed so that at most one * #GObject::notify signal is emitted for each property modified while the * object is frozen. * * This is necessary for accessors that modify multiple properties to prevent * premature notification while the object is still being modified. */ freeze_notify(): void; /** * Gets a named field from the objects table of associations (see g_object_set_data()). * @param key name of the key for that association * @returns the data if found, or %NULL if no such data exists. */ get_data(key: string): any | null; /** * Gets a property of an object. * * The value can be: * - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60) * - a GObject.Value initialized with the expected type of the property * - a GObject.Value initialized with a type to which the expected type of the property can be transformed * * In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset. * * Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming. * @param property_name The name of the property to get * @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type */ get_property(property_name: string, value: Value | any): any; /** * This function gets back user data pointers stored via * g_object_set_qdata(). * @param quark A #GQuark, naming the user data pointer * @returns The user data pointer set, or %NULL */ get_qdata(quark: GLib.Quark): any | null; /** * Gets `n_properties` properties for an `object`. * Obtained properties will be set to `values`. All properties must be valid. * Warnings will be emitted and undefined behaviour may result if invalid * properties are passed in. * @param names the names of each property to get * @param values the values of each property to get */ getv(names: string[], values: (Value | any)[]): void; /** * Checks whether `object` has a [floating][floating-ref] reference. * @returns %TRUE if @object has a floating reference */ is_floating(): boolean; /** * Emits a "notify" signal for the property `property_name` on `object`. * * When possible, eg. when signaling a property change from within the class * that registered the property, you should use g_object_notify_by_pspec() * instead. * * Note that emission of the notify signal may be blocked with * g_object_freeze_notify(). In this case, the signal emissions are queued * and will be emitted (in reverse order) when g_object_thaw_notify() is * called. * @param property_name the name of a property installed on the class of @object. */ notify(property_name: string): void; /** * Emits a "notify" signal for the property specified by `pspec` on `object`. * * This function omits the property name lookup, hence it is faster than * g_object_notify(). * * One way to avoid using g_object_notify() from within the * class that registered the properties, and using g_object_notify_by_pspec() * instead, is to store the GParamSpec used with * g_object_class_install_property() inside a static array, e.g.: * * * ```c * typedef enum * { * PROP_FOO = 1, * PROP_LAST * } MyObjectProperty; * * static GParamSpec *properties[PROP_LAST]; * * static void * my_object_class_init (MyObjectClass *klass) * { * properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL, * 0, 100, * 50, * G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); * g_object_class_install_property (gobject_class, * PROP_FOO, * properties[PROP_FOO]); * } * ``` * * * and then notify a change on the "foo" property with: * * * ```c * g_object_notify_by_pspec (self, properties[PROP_FOO]); * ``` * * @param pspec the #GParamSpec of a property installed on the class of @object. */ notify_by_pspec(pspec: ParamSpec): void; /** * Increases the reference count of `object`. * * Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type * of `object` will be propagated to the return type (using the GCC typeof() * extension), so any casting the caller needs to do on the return type must be * explicit. * @returns the same @object */ ref(): Object; /** * Increase the reference count of `object,` and possibly remove the * [floating][floating-ref] reference, if `object` has a floating reference. * * In other words, if the object is floating, then this call "assumes * ownership" of the floating reference, converting it to a normal * reference by clearing the floating flag while leaving the reference * count unchanged. If the object is not floating, then this call * adds a new normal reference increasing the reference count by one. * * Since GLib 2.56, the type of `object` will be propagated to the return type * under the same conditions as for g_object_ref(). * @returns @object */ ref_sink(): Object; /** * Releases all references to other objects. This can be used to break * reference cycles. * * This function should only be called from object system implementations. */ run_dispose(): void; /** * Each object carries around a table of associations from * strings to pointers. This function lets you set an association. * * If the object already had an association with that name, * the old association will be destroyed. * * Internally, the `key` is converted to a #GQuark using g_quark_from_string(). * This means a copy of `key` is kept permanently (even after `object` has been * finalized) — so it is recommended to only use a small, bounded set of values * for `key` in your program, to avoid the #GQuark storage growing unbounded. * @param key name of the key * @param data data to associate with that key */ set_data(key: string, data?: any | null): void; /** * Sets a property on an object. * @param property_name The name of the property to set * @param value The value to set the property to */ set_property(property_name: string, value: Value | any): void; /** * Remove a specified datum from the object's data associations, * without invoking the association's destroy handler. * @param key name of the key * @returns the data if found, or %NULL if no such data exists. */ steal_data(key: string): any | null; /** * This function gets back user data pointers stored via * g_object_set_qdata() and removes the `data` from object * without invoking its destroy() function (if any was * set). * Usually, calling this function is only required to update * user data pointers with a destroy notifier, for example: * * ```c * void * object_add_to_user_list (GObject *object, * const gchar *new_string) * { * // the quark, naming the object data * GQuark quark_string_list = g_quark_from_static_string ("my-string-list"); * // retrieve the old string list * GList *list = g_object_steal_qdata (object, quark_string_list); * * // prepend new string * list = g_list_prepend (list, g_strdup (new_string)); * // this changed 'list', so we need to set it again * g_object_set_qdata_full (object, quark_string_list, list, free_string_list); * } * static void * free_string_list (gpointer data) * { * GList *node, *list = data; * * for (node = list; node; node = node->next) * g_free (node->data); * g_list_free (list); * } * ``` * * Using g_object_get_qdata() in the above example, instead of * g_object_steal_qdata() would have left the destroy function set, * and thus the partial string list would have been freed upon * g_object_set_qdata_full(). * @param quark A #GQuark, naming the user data pointer * @returns The user data pointer set, or %NULL */ steal_qdata(quark: GLib.Quark): any | null; /** * Reverts the effect of a previous call to * g_object_freeze_notify(). The freeze count is decreased on `object` * and when it reaches zero, queued "notify" signals are emitted. * * Duplicate notifications for each property are squashed so that at most one * #GObject::notify signal is emitted for each property, in the reverse order * in which they have been queued. * * It is an error to call this function when the freeze count is zero. */ thaw_notify(): void; /** * Decreases the reference count of `object`. When its reference count * drops to 0, the object is finalized (i.e. its memory is freed). * * If the pointer to the #GObject may be reused in future (for example, if it is * an instance variable of another object), it is recommended to clear the * pointer to %NULL rather than retain a dangling pointer to a potentially * invalid #GObject instance. Use g_clear_object() for this. */ unref(): void; /** * This function essentially limits the life time of the `closure` to * the life time of the object. That is, when the object is finalized, * the `closure` is invalidated by calling g_closure_invalidate() on * it, in order to prevent invocations of the closure with a finalized * (nonexisting) object. Also, g_object_ref() and g_object_unref() are * added as marshal guards to the `closure,` to ensure that an extra * reference count is held on `object` during invocation of the * `closure`. Usually, this function will be called on closures that * use this `object` as closure data. * @param closure #GClosure to watch */ watch_closure(closure: Closure): void; /** * 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. * @param id Handler ID of the handler to be disconnected */ disconnect(id: number): void; /** * Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values. * @param properties Object containing the properties to set */ set(properties: { [key: string]: any }): void; /** * Blocks a handler of an instance so it will not be called during any signal emissions * @param id Handler ID of the handler to be blocked */ block_signal_handler(id: number): void; /** * Unblocks a handler so it will be called again during any signal emissions * @param id Handler ID of the handler to be unblocked */ unblock_signal_handler(id: number): void; /** * Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked. * @param detailedName Name of the signal to stop emission of */ stop_emission_by_name(detailedName: string): void; } /** * A GObject parameter specification that defines property characteristics. * See https://gjs.guide/guides/gobject/basics.html#properties for more details. */ abstract class ParamSpec { static $gtype: GType; // Fields name: string; flags: ParamFlags; value_type: GType; owner_type: GType; // Constructors _init(...args: any[]): void; // Static methods /** * Validate a property name for a #GParamSpec. This can be useful for * dynamically-generated properties which need to be validated at run-time * before actually trying to create them. * * See [canonical parameter names][class`GObject`.ParamSpec#parameter-names] * for details of the rules for valid names. * @param name the canonical name of the property */ static is_valid_name(name: string): boolean; /** * Creates a new GParamSpecChar instance specifying a G_TYPE_CHAR property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static ['char']( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecUChar instance specifying a G_TYPE_UCHAR property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static uchar( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecInt instance specifying a G_TYPE_INT property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static int( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecUInt instance specifying a G_TYPE_UINT property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static uint( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecLong instance specifying a G_TYPE_LONG property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static long( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecULong instance specifying a G_TYPE_ULONG property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static ulong( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecInt64 instance specifying a G_TYPE_INT64 property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static int64( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecUInt64 instance specifying a G_TYPE_UINT64 property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static uint64( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecFloat instance specifying a G_TYPE_FLOAT property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static float( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * 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 name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param defaultValue The default value for this property */ static ['boolean']( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, defaultValue: boolean, ): ParamSpec; /** * Creates a new GParamSpecEnum instance specifying a G_TYPE_ENUM property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param enumType * @param defaultValue The default value for this property */ static ['enum']( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, enumType: GType | { $gtype: GType }, defaultValue: any, ): ParamSpec; /** * Creates a new GParamSpecDouble instance specifying a G_TYPE_DOUBLE property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param minimum The minimum value for this property * @param maximum The maximum value for this property * @param defaultValue The default value for this property */ static double( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, minimum: number, maximum: number, defaultValue: number, ): ParamSpec; /** * Creates a new GParamSpecString instance specifying a G_TYPE_STRING property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param defaultValue The default value for this property */ static string( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, defaultValue: string, ): ParamSpec; /** * Creates a new GParamSpecBoxed instance specifying a G_TYPE_BOXED derived property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param boxedType */ static boxed( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, boxedType: GType | { $gtype: GType }, ): ParamSpec; /** * Creates a new GParamSpecObject instance specifying a property holding object references. * @param name The name of the property * @param nick A human readable name for the property (can be null) * @param blurb A longer description of the property (can be null) * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param objectType The GType of the object */ static object( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, objectType: GType | { $gtype: GType }, ): ParamSpec; /** * Creates a new GParamSpecParam instance specifying a G_TYPE_PARAM property. * @param name The name of the property * @param nick A human readable name for the property * @param blurb A longer description of the property * @param flags The flags for this property (e.g. READABLE, WRITABLE) * @param paramType */ static param( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, paramType: any, ): ParamSpec; /** * Creates a new ParamSpec instance for JavaScript object properties. * @param name The name of the property * @param nick A human readable name for the property (can be null) * @param blurb A longer description of the property (can be null) * @param flags The flags for this property (e.g. READABLE, WRITABLE) */ static jsobject( name: string, nick: string | null, blurb: string | null, flags: ParamFlags | number, ): ParamSpec; // Virtual methods /** * The instance finalization function (optional), should chain * up to the finalize method of the parent class. */ vfunc_finalize(): void; /** * Checks if contents of `value` comply with the specifications * set out by this type, without modifying the value. This vfunc is optional. * If it isn't set, GObject will use `value_validate`. Since 2.74 * @param value */ vfunc_value_is_valid(value: Value | any): boolean; /** * Resets a `value` to the default value for this type * (recommended, the default is g_value_reset()), see * g_param_value_set_default(). * @param value */ vfunc_value_set_default(value: Value | any): void; /** * Ensures that the contents of `value` comply with the * specifications set out by this type (optional), see * g_param_value_validate(). * @param value */ vfunc_value_validate(value: Value | any): boolean; /** * Compares `value1` with `value2` according to this type * (recommended, the default is memcmp()), see g_param_values_cmp(). * @param value1 * @param value2 */ vfunc_values_cmp(value1: Value | any, value2: Value | any): number; // Methods /** * Get the short description of a #GParamSpec. * @returns the short description of @pspec. */ get_blurb(): string | null; /** * Gets the default value of `pspec` as a pointer to a #GValue. * * The #GValue will remain valid for the life of `pspec`. * @returns a pointer to a #GValue which must not be modified */ get_default_value(): unknown; /** * Get the name of a #GParamSpec. * * The name is always an "interned" string (as per g_intern_string()). * This allows for pointer-value comparisons. * @returns the name of @pspec. */ get_name(): string; /** * Gets the GQuark for the name. * @returns the GQuark for @pspec->name. */ get_name_quark(): GLib.Quark; /** * Get the nickname of a #GParamSpec. * @returns the nickname of @pspec. */ get_nick(): string; /** * Gets back user data pointers stored via g_param_spec_set_qdata(). * @param quark a #GQuark, naming the user data pointer * @returns the user data pointer set, or %NULL */ get_qdata(quark: GLib.Quark): any | null; /** * If the paramspec redirects operations to another paramspec, * returns that paramspec. Redirect is used typically for * providing a new implementation of a property in a derived * type while preserving all the properties from the parent * type. Redirection is established by creating a property * of type #GParamSpecOverride. See g_object_class_override_property() * for an example of the use of this capability. * @returns paramspec to which requests on this paramspec should be redirected, or %NULL if none. */ get_redirect_target(): ParamSpec | null; /** * Sets an opaque, named pointer on a #GParamSpec. The name is * specified through a #GQuark (retrieved e.g. via * g_quark_from_static_string()), and the pointer can be gotten back * from the `pspec` with g_param_spec_get_qdata(). Setting a * previously set user data pointer, overrides (frees) the old pointer * set, using %NULL as pointer essentially removes the data stored. * @param quark a #GQuark, naming the user data pointer * @param data an opaque user data pointer */ set_qdata(quark: GLib.Quark, data?: any | null): void; /** * The initial reference count of a newly created #GParamSpec is 1, * even though no one has explicitly called g_param_spec_ref() on it * yet. So the initial reference count is flagged as "floating", until * someone calls `g_param_spec_ref (pspec); g_param_spec_sink * (pspec);` in sequence on it, taking over the initial * reference count (thus ending up with a `pspec` that has a reference * count of 1 still, but is not flagged "floating" anymore). */ sink(): void; /** * Gets back user data pointers stored via g_param_spec_set_qdata() * and removes the `data` from `pspec` without invoking its destroy() * function (if any was set). Usually, calling this function is only * required to update user data pointers with a destroy notifier. * @param quark a #GQuark, naming the user data pointer * @returns the user data pointer set, or %NULL */ steal_qdata(quark: GLib.Quark): any | null; /** * Registers a property override for a property introduced in a parent class or inherited interface. * @param name The name of the property to override * @param oclass The object class or type that contains the property to override */ override(name: string, oclass: Object | Function | GType): void; } namespace SignalGroup { // Signal callback interfaces interface Bind { (instance: Object): void; } interface Unbind { (): void; } // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps { target: Object; target_type: GType; targetType: GType; } } /** * `GSignalGroup` manages a collection of signals on a `GObject`. * * `GSignalGroup` simplifies the process of connecting many signals to a `GObject` * as a group. As such there is no API to disconnect a signal from the group. * * In particular, this allows you to: * * - Change the target instance, which automatically causes disconnection * of the signals from the old instance and connecting to the new instance. * - Block and unblock signals as a group * - Ensuring that blocked state transfers across target instances. * * One place you might want to use such a structure is with `GtkTextView` and * `GtkTextBuffer`. Often times, you'll need to connect to many signals on * `GtkTextBuffer` from a `GtkTextView` subclass. This allows you to create a * signal group during instance construction, simply bind the * `GtkTextView:buffer` property to `GSignalGroup:target` and connect * all the signals you need. When the `GtkTextView:buffer` property changes * all of the signals will be transitioned correctly. */ class SignalGroup extends Object { static $gtype: GType; // Properties /** * The target instance used when connecting signals. */ get target(): Object; set target(val: Object); /** * The #GType of the target property. */ get target_type(): GType; /** * The #GType of the target property. */ get targetType(): GType; // Constructors constructor(properties?: Partial, ...args: any[]); _init(...args: any[]): void; static ['new'](target_type: GType): SignalGroup; // Signals connect(id: string, callback: (...args: any[]) => any): number; connect_after(id: string, callback: (...args: any[]) => any): number; emit(id: string, ...args: any[]): void; connect(signal: 'bind', callback: (_source: this, instance: Object) => void): number; connect_after(signal: 'bind', callback: (_source: this, instance: Object) => void): number; emit(signal: 'bind', instance: Object): void; connect(signal: 'unbind', callback: (_source: this) => void): number; connect_after(signal: 'unbind', callback: (_source: this) => void): number; emit(signal: 'unbind'): void; // Methods /** * Blocks all signal handlers managed by `self` so they will not * be called during any signal emissions. Must be unblocked exactly * the same number of times it has been blocked to become active again. * * This blocked state will be kept across changes of the target instance. */ block(): void; /** * Connects `closure` to the signal `detailed_signal` on #GSignalGroup:target. * * You cannot connect a signal handler after #GSignalGroup:target has been set. * @param detailed_signal a string of the form `signal-name` with optional `::signal-detail` * @param closure the closure to connect. * @param after whether the handler should be called before or after the default handler of the signal. */ connect_closure(detailed_signal: string, closure: Closure, after: boolean): void; /** * Connects `c_handler` to the signal `detailed_signal` * on the target instance of `self`. * * You cannot connect a signal handler after #GSignalGroup:target has been set. * @param detailed_signal a string of the form "signal-name::detail" * @param c_handler the #GCallback to connect * @param notify function to be called when disposing of @self * @param flags the flags used to create the signal connection */ connect_data( detailed_signal: string, c_handler: Callback, notify: ClosureNotify, flags: ConnectFlags | null, ): void; /** * Connects `c_handler` to the signal `detailed_signal` * on the target instance of `self`. * * The instance on which the signal is emitted and `data` * will be swapped when calling `c_handler`. * * You cannot connect a signal handler after #GSignalGroup:target has been set. * @param detailed_signal a string of the form "signal-name::detail" * @param c_handler the #GCallback to connect */ connect_swapped(detailed_signal: string, c_handler: Callback): void; /** * Gets the target instance used when connecting signals. * @returns The target instance */ dup_target(): T; /** * Sets the target instance used when connecting signals. Any signal * that has been registered with g_signal_group_connect_object() or * similar functions will be connected to this object. * * If the target instance was previously set, signals will be * disconnected from that object prior to connecting to `target`. * @param target The target instance used when connecting signals. */ set_target(target?: Object | null): void; /** * Unblocks all signal handlers managed by `self` so they will be * called again during any signal emissions unless it is blocked * again. Must be unblocked exactly the same number of times it * has been blocked to become active again. */ unblock(): void; } namespace TypeModule { // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps, TypePlugin.ConstructorProps {} } /** * `GTypeModule` provides a simple implementation of the `GTypePlugin` * interface. * * The model of `GTypeModule` is a dynamically loaded module which * implements some number of types and interface implementations. * * When the module is loaded, it registers its types and interfaces * using [method`GObject`.TypeModule.register_type] and * [method`GObject`.TypeModule.add_interface]. * As long as any instances of these types and interface implementations * are in use, the module is kept loaded. When the types and interfaces * are gone, the module may be unloaded. If the types and interfaces * become used again, the module will be reloaded. Note that the last * reference cannot be released from within the module code, since that * would lead to the caller's code being unloaded before `g_object_unref()` * returns to it. * * Keeping track of whether the module should be loaded or not is done by * using a use count - it starts at zero, and whenever it is greater than * zero, the module is loaded. The use count is maintained internally by * the type system, but also can be explicitly controlled by * [method`GObject`.TypeModule.use] and [method`GObject`.TypeModule.unuse]. * Typically, when loading a module for the first type, `g_type_module_use()` * will be used to load it so that it can initialize its types. At some later * point, when the module no longer needs to be loaded except for the type * implementations it contains, `g_type_module_unuse()` is called. * * `GTypeModule` does not actually provide any implementation of module * loading and unloading. To create a particular module type you must * derive from `GTypeModule` and implement the load and unload functions * in `GTypeModuleClass`. */ abstract class TypeModule extends Object implements TypePlugin { static $gtype: GType; // Fields use_count: number; type_infos: any[]; interface_infos: any[]; name: string; // Constructors constructor(properties?: Partial, ...args: any[]); _init(...args: any[]): void; // Virtual methods /** * loads the module and registers one or more types using * g_type_module_register_type(). */ vfunc_load(): boolean; /** * unloads the module */ vfunc_unload(): void; // Methods /** * Registers an additional interface for a type, whose interface lives * in the given type plugin. If the interface was already registered * for the type in this plugin, nothing will be done. * * As long as any instances of the type exist, the type plugin will * not be unloaded. * * Since 2.56 if `module` is %NULL this will call g_type_add_interface_static() * instead. This can be used when making a static build of the module. * @param instance_type type to which to add the interface. * @param interface_type interface type to add * @param interface_info type information structure */ add_interface(instance_type: GType, interface_type: GType, interface_info: InterfaceInfo): void; /** * Looks up or registers an enumeration that is implemented with a particular * type plugin. If a type with name `type_name` was previously registered, * the #GType identifier for the type is returned, otherwise the type * is newly registered, and the resulting #GType identifier returned. * * As long as any instances of the type exist, the type plugin will * not be unloaded. * * Since 2.56 if `module` is %NULL this will call g_type_register_static() * instead. This can be used when making a static build of the module. * @param name name for the type * @param const_static_values an array of #GEnumValue structs for the possible enumeration values. The array is terminated by a struct with all members being 0. * @returns the new or existing type ID */ register_enum(name: string, const_static_values: EnumValue): GType; /** * Looks up or registers a flags type that is implemented with a particular * type plugin. If a type with name `type_name` was previously registered, * the #GType identifier for the type is returned, otherwise the type * is newly registered, and the resulting #GType identifier returned. * * As long as any instances of the type exist, the type plugin will * not be unloaded. * * Since 2.56 if `module` is %NULL this will call g_type_register_static() * instead. This can be used when making a static build of the module. * @param name name for the type * @param const_static_values an array of #GFlagsValue structs for the possible flags values. The array is terminated by a struct with all members being 0. * @returns the new or existing type ID */ register_flags(name: string, const_static_values: FlagsValue): GType; /** * Looks up or registers a type that is implemented with a particular * type plugin. If a type with name `type_name` was previously registered, * the #GType identifier for the type is returned, otherwise the type * is newly registered, and the resulting #GType identifier returned. * * When reregistering a type (typically because a module is unloaded * then reloaded, and reinitialized), `module` and `parent_type` must * be the same as they were previously. * * As long as any instances of the type exist, the type plugin will * not be unloaded. * * Since 2.56 if `module` is %NULL this will call g_type_register_static() * instead. This can be used when making a static build of the module. * @param parent_type the type for the parent class * @param type_name name for the type * @param type_info type information structure * @param flags flags field providing details about the type * @returns the new or existing type ID */ register_type(parent_type: GType, type_name: string, type_info: TypeInfo, flags: TypeFlags | null): GType; /** * Sets the name for a #GTypeModule * @param name a human-readable name to use in error messages. */ set_name(name: string): void; /** * Decreases the use count of a #GTypeModule by one. If the * result is zero, the module will be unloaded. (However, the * #GTypeModule will not be freed, and types associated with the * #GTypeModule are not unregistered. Once a #GTypeModule is * initialized, it must exist forever.) */ unuse(): void; /** * Increases the use count of a #GTypeModule by one. If the * use count was zero before, the plugin will be loaded. * If loading the plugin fails, the use count is reset to * its prior value. * @returns %FALSE if the plugin needed to be loaded and loading the plugin failed. */ use(): boolean; // Conflicted with GObject.TypePlugin.use use(...args: never[]): any; // Inherited methods /** * Calls the `complete_interface_info` function from the * #GTypePluginClass of `plugin`. There should be no need to use this * function outside of the GObject type system itself. * @param instance_type the #GType of an instantiatable type to which the interface is added * @param interface_type the #GType of the interface whose info is completed * @param info the #GInterfaceInfo to fill in */ complete_interface_info(instance_type: GType, interface_type: GType, info: InterfaceInfo): void; /** * Calls the `complete_type_info` function from the #GTypePluginClass of `plugin`. * There should be no need to use this function outside of the GObject * type system itself. * @param g_type the #GType whose info is completed * @param info the #GTypeInfo struct to fill in * @param value_table the #GTypeValueTable to fill in */ complete_type_info(g_type: GType, info: TypeInfo, value_table: TypeValueTable): void; /** * Creates a binding between `source_property` on `source` and `target_property` * on `target`. * * Whenever the `source_property` is changed the `target_property` is * updated using the same value. For instance: * * * ```c * g_object_bind_property (action, "active", widget, "sensitive", 0); * ``` * * * Will result in the "sensitive" property of the widget #GObject instance to be * updated with the same value of the "active" property of the action #GObject * instance. * * If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: * if `target_property` on `target` changes then the `source_property` on `source` * will be updated as well. * * The binding will automatically be removed when either the `source` or the * `target` instances are finalized. To remove the binding without affecting the * `source` and the `target` you can just call g_object_unref() on the returned * #GBinding instance. * * Removing the binding by calling g_object_unref() on it must only be done if * the binding, `source` and `target` are only used from a single thread and it * is clear that both `source` and `target` outlive the binding. Especially it * is not safe to rely on this if the binding, `source` or `target` can be * finalized from different threads. Keep another reference to the binding and * use g_binding_unbind() instead to be on the safe side. * * A #GObject can have multiple bindings. * @param source_property the property on @source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags flags to pass to #GBinding * @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero. */ bind_property( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, ): Binding; /** * Complete version of g_object_bind_property(). * * Creates a binding between `source_property` on `source` and `target_property` * on `target,` allowing you to set the transformation functions to be used by * the binding. * * If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual: * if `target_property` on `target` changes then the `source_property` on `source` * will be updated as well. The `transform_from` function is only used in case * of bidirectional bindings, otherwise it will be ignored * * The binding will automatically be removed when either the `source` or the * `target` instances are finalized. This will release the reference that is * being held on the #GBinding instance; if you want to hold on to the * #GBinding instance, you will need to hold a reference to it. * * To remove the binding, call g_binding_unbind(). * * A #GObject can have multiple bindings. * * The same `user_data` parameter will be used for both `transform_to` * and `transform_from` transformation functions; the `notify` function will * be called once, when the binding is removed. If you need different data * for each transformation function, please use * g_object_bind_property_with_closures() instead. * @param source_property the property on @source to bind * @param target the target #GObject * @param target_property the property on @target to bind * @param flags flags to pass to #GBinding * @param transform_to the transformation function from the @source to the @target, or %NULL to use the default * @param transform_from the transformation function from the @target to the @source, or %NULL to use the default * @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required * @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero. */ bind_property_full( source_property: string, target: Object, target_property: string, flags: BindingFlags | null, transform_to?: BindingTransformFunc | null, transform_from?: BindingTransformFunc | null, notify?: GLib.DestroyNotify | null, ): Binding; // Conflicted with GObject.Object.bind_property_full bind_property_full(...args: never[]): any; /** * This function is intended for #GObject implementations to re-enforce * a [floating][floating-ref] object reference. Doing this is seldom * required: all #GInitiallyUnowneds are created with a floating reference * which usually just needs to be sunken by calling g_object_ref_sink(). */ force_floating(): void; /** * Increases the freeze count on `object`. If the freeze count is * non-zero, the emission of "notify" signals on `object` is * stopped. The signals are queued until the freeze count is decreased * to zero. Duplicate notifications are squashed so that at most one * #GObject::notify signal is emitted for each property modified while the * object is frozen. * * This is necessary for accessors that modify multiple properties to prevent * premature notification while the object is still being modified. */ freeze_notify(): void; /** * Gets a named field from the objects table of associations (see g_object_set_data()). * @param key name of the key for that association * @returns the data if found, or %NULL if no such data exists. */ get_data(key: string): any | null; /** * Gets a property of an object. * * The value can be: * - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60) * - a GObject.Value initialized with the expected type of the property * - a GObject.Value initialized with a type to which the expected type of the property can be transformed * * In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset. * * Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming. * @param property_name The name of the property to get * @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type */ get_property(property_name: string, value: Value | any): any; /** * This function gets back user data pointers stored via * g_object_set_qdata(). * @param quark A #GQuark, naming the user data pointer * @returns The user data pointer set, or %NULL */ get_qdata(quark: GLib.Quark): any | null; /** * Gets `n_properties` properties for an `object`. * Obtained properties will be set to `values`. All properties must be valid. * Warnings will be emitted and undefined behaviour may result if invalid * properties are passed in. * @param names the names of each property to get * @param values the values of each property to get */ getv(names: string[], values: (Value | any)[]): void; /** * Checks whether `object` has a [floating][floating-ref] reference. * @returns %TRUE if @object has a floating reference */ is_floating(): boolean; /** * Emits a "notify" signal for the property `property_name` on `object`. * * When possible, eg. when signaling a property change from within the class * that registered the property, you should use g_object_notify_by_pspec() * instead. * * Note that emission of the notify signal may be blocked with * g_object_freeze_notify(). In this case, the signal emissions are queued * and will be emitted (in reverse order) when g_object_thaw_notify() is * called. * @param property_name the name of a property installed on the class of @object. */ notify(property_name: string): void; /** * Emits a "notify" signal for the property specified by `pspec` on `object`. * * This function omits the property name lookup, hence it is faster than * g_object_notify(). * * One way to avoid using g_object_notify() from within the * class that registered the properties, and using g_object_notify_by_pspec() * instead, is to store the GParamSpec used with * g_object_class_install_property() inside a static array, e.g.: * * * ```c * typedef enum * { * PROP_FOO = 1, * PROP_LAST * } MyObjectProperty; * * static GParamSpec *properties[PROP_LAST]; * * static void * my_object_class_init (MyObjectClass *klass) * { * properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL, * 0, 100, * 50, * G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); * g_object_class_install_property (gobject_class, * PROP_FOO, * properties[PROP_FOO]); * } * ``` * * * and then notify a change on the "foo" property with: * * * ```c * g_object_notify_by_pspec (self, properties[PROP_FOO]); * ``` * * @param pspec the #GParamSpec of a property installed on the class of @object. */ notify_by_pspec(pspec: ParamSpec): void; /** * Increases the reference count of `object`. * * Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type * of `object` will be propagated to the return type (using the GCC typeof() * extension), so any casting the caller needs to do on the return type must be * explicit. * @returns the same @object */ ref(): Object; /** * Increase the reference count of `object,` and possibly remove the * [floating][floating-ref] reference, if `object` has a floating reference. * * In other words, if the object is floating, then this call "assumes * ownership" of the floating reference, converting it to a normal * reference by clearing the floating flag while leaving the reference * count unchanged. If the object is not floating, then this call * adds a new normal reference increasing the reference count by one. * * Since GLib 2.56, the type of `object` will be propagated to the return type * under the same conditions as for g_object_ref(). * @returns @object */ ref_sink(): Object; /** * Releases all references to other objects. This can be used to break * reference cycles. * * This function should only be called from object system implementations. */ run_dispose(): void; /** * Each object carries around a table of associations from * strings to pointers. This function lets you set an association. * * If the object already had an association with that name, * the old association will be destroyed. * * Internally, the `key` is converted to a #GQuark using g_quark_from_string(). * This means a copy of `key` is kept permanently (even after `object` has been * finalized) — so it is recommended to only use a small, bounded set of values * for `key` in your program, to avoid the #GQuark storage growing unbounded. * @param key name of the key * @param data data to associate with that key */ set_data(key: string, data?: any | null): void; /** * Sets a property on an object. * @param property_name The name of the property to set * @param value The value to set the property to */ set_property(property_name: string, value: Value | any): void; /** * Remove a specified datum from the object's data associations, * without invoking the association's destroy handler. * @param key name of the key * @returns the data if found, or %NULL if no such data exists. */ steal_data(key: string): any | null; /** * This function gets back user data pointers stored via * g_object_set_qdata() and removes the `data` from object * without invoking its destroy() function (if any was * set). * Usually, calling this function is only required to update * user data pointers with a destroy notifier, for example: * * ```c * void * object_add_to_user_list (GObject *object, * const gchar *new_string) * { * // the quark, naming the object data * GQuark quark_string_list = g_quark_from_static_string ("my-string-list"); * // retrieve the old string list * GList *list = g_object_steal_qdata (object, quark_string_list); * * // prepend new string * list = g_list_prepend (list, g_strdup (new_string)); * // this changed 'list', so we need to set it again * g_object_set_qdata_full (object, quark_string_list, list, free_string_list); * } * static void * free_string_list (gpointer data) * { * GList *node, *list = data; * * for (node = list; node; node = node->next) * g_free (node->data); * g_list_free (list); * } * ``` * * Using g_object_get_qdata() in the above example, instead of * g_object_steal_qdata() would have left the destroy function set, * and thus the partial string list would have been freed upon * g_object_set_qdata_full(). * @param quark A #GQuark, naming the user data pointer * @returns The user data pointer set, or %NULL */ steal_qdata(quark: GLib.Quark): any | null; /** * Reverts the effect of a previous call to * g_object_freeze_notify(). The freeze count is decreased on `object` * and when it reaches zero, queued "notify" signals are emitted. * * Duplicate notifications for each property are squashed so that at most one * #GObject::notify signal is emitted for each property, in the reverse order * in which they have been queued. * * It is an error to call this function when the freeze count is zero. */ thaw_notify(): void; /** * Decreases the reference count of `object`. When its reference count * drops to 0, the object is finalized (i.e. its memory is freed). * * If the pointer to the #GObject may be reused in future (for example, if it is * an instance variable of another object), it is recommended to clear the * pointer to %NULL rather than retain a dangling pointer to a potentially * invalid #GObject instance. Use g_clear_object() for this. */ unref(): void; /** * This function essentially limits the life time of the `closure` to * the life time of the object. That is, when the object is finalized, * the `closure` is invalidated by calling g_closure_invalidate() on * it, in order to prevent invocations of the closure with a finalized * (nonexisting) object. Also, g_object_ref() and g_object_unref() are * added as marshal guards to the `closure,` to ensure that an extra * reference count is held on `object` during invocation of the * `closure`. Usually, this function will be called on closures that * use this `object` as closure data. * @param closure #GClosure to watch */ watch_closure(closure: Closure): void; /** * the `constructed` function is called by g_object_new() as the * final step of the object creation process. At the point of the call, all * construction properties have been set on the object. The purpose of this * call is to allow for object initialisation steps that can only be performed * after construction properties have been set. `constructed` implementors * should chain up to the `constructed` call of their parent class to allow it * to complete its initialisation. */ vfunc_constructed(): void; /** * emits property change notification for a bunch * of properties. Overriding `dispatch_properties_changed` should be rarely * needed. * @param n_pspecs * @param pspecs */ vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: ParamSpec): void; /** * the `dispose` function is supposed to drop all references to other * objects, but keep the instance otherwise intact, so that client method * invocations still work. It may be run multiple times (due to reference * loops). Before returning, `dispose` should chain up to the `dispose` method * of the parent class. */ vfunc_dispose(): void; /** * instance finalization function, should finish the finalization of * the instance begun in `dispose` and chain up to the `finalize` method of the * parent class. */ vfunc_finalize(): void; /** * the generic getter for all properties of this type. Should be * overridden for every type with properties. * @param property_id * @param value * @param pspec */ vfunc_get_property(property_id: number, value: Value | any, pspec: ParamSpec): void; /** * Emits a "notify" signal for the property `property_name` on `object`. * * When possible, eg. when signaling a property change from within the class * that registered the property, you should use g_object_notify_by_pspec() * instead. * * Note that emission of the notify signal may be blocked with * g_object_freeze_notify(). In this case, the signal emissions are queued * and will be emitted (in reverse order) when g_object_thaw_notify() is * called. * @param pspec */ vfunc_notify(pspec: ParamSpec): void; /** * the generic setter for all properties of this type. Should be * overridden for every type with properties. If implementations of * `set_property` don't emit property change notification explicitly, this will * be done implicitly by the type system. However, if the notify signal is * emitted explicitly, the type system will not emit it a second time. * @param property_id * @param value * @param pspec */ vfunc_set_property(property_id: number, value: Value | any, pspec: ParamSpec): void; /** * 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. * @param id Handler ID of the handler to be disconnected */ disconnect(id: number): void; /** * Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values. * @param properties Object containing the properties to set */ set(properties: { [key: string]: any }): void; /** * Blocks a handler of an instance so it will not be called during any signal emissions * @param id Handler ID of the handler to be blocked */ block_signal_handler(id: number): void; /** * Unblocks a handler so it will be called again during any signal emissions * @param id Handler ID of the handler to be unblocked */ unblock_signal_handler(id: number): void; /** * Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked. * @param detailedName Name of the signal to stop emission of */ stop_emission_by_name(detailedName: string): void; } /** * A #GCClosure is a specialization of #GClosure for C function callbacks. */ class CClosure { static $gtype: GType; // Fields callback: any; // Constructors _init(...args: any[]): void; // Static methods /** * A #GClosureMarshal function for use with signals with handlers that * take two boxed pointers as arguments and return a boolean. If you * have such a signal, you will probably also need to use an * accumulator, such as g_signal_accumulator_true_handled(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_BOOLEAN__BOXED_BOXED( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with handlers that * take a flags type as an argument and return a boolean. If you have * such a signal, you will probably also need to use an accumulator, * such as g_signal_accumulator_true_handled(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_BOOLEAN__FLAGS( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with handlers that * take a #GObject and a pointer and produce a string. It is highly * unlikely that your signal handler fits this description. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_STRING__OBJECT_POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * boolean argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__BOOLEAN( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument which is any boxed pointer type. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__BOXED( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * character argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__CHAR( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with one * double-precision floating point argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__DOUBLE( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument with an enumerated type. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__ENUM( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument with a flags types. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__FLAGS( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with one * single-precision floating point argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__FLOAT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__INT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with with a single * long integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__LONG( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * #GObject argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__OBJECT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * argument of type #GParamSpec. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__PARAM( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single raw * pointer argument type. * * If it is possible, it is better to use one of the more specific * functions such as g_cclosure_marshal_VOID__OBJECT() or * g_cclosure_marshal_VOID__OBJECT(). * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single string * argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__STRING( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * unsigned character argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__UCHAR( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with with a single * unsigned integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__UINT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with an unsigned int * and a pointer as arguments. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__UINT_POINTER( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * unsigned long integer argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__ULONG( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with a single * #GVariant argument. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__VARIANT( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A #GClosureMarshal function for use with signals with no arguments. * @param closure A #GClosure. * @param return_value A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_VOID__VOID( closure: Closure, return_value: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; /** * A generic marshaller function implemented via * [libffi](http://sourceware.org/libffi/). * * Normally this function is not passed explicitly to g_signal_new(), * but used automatically by GLib when specifying a %NULL marshaller. * @param closure A #GClosure. * @param return_gvalue A #GValue to store the return value. May be %NULL if the callback of closure doesn't return a value. * @param n_param_values The length of the @param_values array. * @param param_values An array of #GValues holding the arguments on which to invoke the callback of closure. * @param invocation_hint The invocation hint given as the last argument to g_closure_invoke(). * @param marshal_data Additional data specified when registering the marshaller, see g_closure_set_marshal() and g_closure_set_meta_marshal() */ static marshal_generic( closure: Closure, return_gvalue: Value | any, n_param_values: number, param_values: Value | any, invocation_hint?: any | null, marshal_data?: any | null, ): void; } class ClosureNotifyData { static $gtype: GType; // Fields data: any; notify: ClosureNotify; // Constructors _init(...args: any[]): void; } /** * The class of an enumeration type holds information about its * possible values. */ class EnumClass { static $gtype: GType; // Fields minimum: number; maximum: number; n_values: number; values: EnumValue; // Constructors _init(...args: any[]): void; } /** * A structure which contains a single enum value, its name, and its * nickname. */ class EnumValue { static $gtype: GType; // Fields value: number; value_name: string; value_nick: string; // Constructors constructor( properties?: Partial<{ value: number; value_name: string; value_nick: string; }>, ); _init(...args: any[]): void; } /** * The class of a flags type holds information about its * possible values. */ class FlagsClass { static $gtype: GType; // Fields mask: number; n_values: number; values: FlagsValue; // Constructors _init(...args: any[]): void; } /** * A structure which contains a single flags value, its name, and its * nickname. */ class FlagsValue { static $gtype: GType; // Fields value: number; value_name: string; value_nick: string; // Constructors constructor( properties?: Partial<{ value: number; value_name: string; value_nick: string; }>, ); _init(...args: any[]): void; } type InitiallyUnownedClass = typeof InitiallyUnowned; /** * A structure that provides information to the type system which is * used specifically for managing interface types. */ class InterfaceInfo { static $gtype: GType; // Fields interface_init: InterfaceInitFunc; interface_finalize: InterfaceFinalizeFunc; interface_data: any; // Constructors _init(...args: any[]): void; } type ObjectClass = typeof Object; /** * The GObjectConstructParam struct is an auxiliary structure used to hand * #GParamSpec/#GValue pairs to the `constructor` of a #GObjectClass. */ class ObjectConstructParam { static $gtype: GType; // Fields pspec: ParamSpec; // Constructors _init(...args: any[]): void; } type ParamSpecClass = typeof ParamSpec; /** * A #GParamSpecPool maintains a collection of #GParamSpecs which can be * quickly accessed by owner and name. * * The implementation of the #GObject property system uses such a pool to * store the #GParamSpecs of the properties all object types. */ abstract class ParamSpecPool { static $gtype: GType; // Constructors _init(...args: any[]): void; // Methods /** * Frees the resources allocated by a #GParamSpecPool. */ free(): void; /** * Inserts a #GParamSpec in the pool. * @param pspec the #GParamSpec to insert * @param owner_type a #GType identifying the owner of @pspec */ insert(pspec: ParamSpec, owner_type: GType): void; /** * Gets an array of all #GParamSpecs owned by `owner_type` in * the pool. * @param owner_type the owner to look for * @returns a newly allocated array containing pointers to all #GParamSpecs owned by @owner_type in the pool */ list(owner_type: GType): ParamSpec[]; /** * Gets an #GList of all #GParamSpecs owned by `owner_type` in * the pool. * @param owner_type the owner to look for * @returns a #GList of all #GParamSpecs owned by @owner_type in the pool#GParamSpecs. */ list_owned(owner_type: GType): ParamSpec[]; /** * Looks up a #GParamSpec in the pool. * @param param_name the name to look for * @param owner_type the owner to look for * @param walk_ancestors If %TRUE, also try to find a #GParamSpec with @param_name owned by an ancestor of @owner_type. * @returns The found #GParamSpec, or %NULL if no matching #GParamSpec was found. */ lookup(param_name: string, owner_type: GType, walk_ancestors: boolean): ParamSpec | null; /** * Removes a #GParamSpec from the pool. * @param pspec the #GParamSpec to remove */ remove(pspec: ParamSpec): void; } /** * 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. * * The initialized structure is passed to the g_param_type_register_static() * The type system will perform a deep copy of this structure, so its memory * does not need to be persistent across invocation of * g_param_type_register_static(). */ class ParamSpecTypeInfo { static $gtype: GType; // Fields instance_size: number; n_preallocs: number; value_type: GType; // Constructors _init(...args: any[]): void; } /** * The GParameter struct is an auxiliary structure used * to hand parameter name/value pairs to g_object_newv(). */ class Parameter { static $gtype: GType; // Fields name: string; // Constructors _init(...args: any[]): void; } /** * The #GSignalInvocationHint structure is used to pass on additional information * to callbacks during a signal emission. */ class SignalInvocationHint { static $gtype: GType; // Fields signal_id: number; detail: GLib.Quark; run_type: SignalFlags; // Constructors _init(...args: any[]): void; } /** * A structure holding in-depth information for a specific signal. * * See also: g_signal_query() */ class SignalQuery { static $gtype: GType; // Fields signal_id: number; signal_name: string; itype: GType; signal_flags: SignalFlags; return_type: GType; n_params: number; param_types: GType[]; // Constructors _init(...args: any[]): void; } /** * An opaque structure used as the base of all classes. */ class TypeClass { static $gtype: GType; // Constructors _init(...args: any[]): void; // Static methods static adjust_private_offset(g_class: any | null, private_size_or_offset: number): void; /** * Retrieves the type class of the given `type`. * * This function will create the class on demand if it does not exist * already. * * If you don't want to create the class, use g_type_class_peek() instead. * @param type type ID of a classed type */ static get(type: GType): TypeClass; /** * Retrieves the class for a give type. * * This function is essentially the same as g_type_class_get(), * except that the class may have not been instantiated yet. * * As a consequence, this function may return %NULL if the class * of the type passed in does not currently exist (hasn't been * referenced before). * @param type type ID of a classed type */ static peek(type: GType): TypeClass | null; /** * A more efficient version of g_type_class_peek() which works only for * static types. * @param type type ID of a classed type */ static peek_static(type: GType): TypeClass | null; /** * Increments the reference count of the class structure belonging to * `type`. * * This function will demand-create the class if it doesn't exist already. * @param type type ID of a classed type */ static ref(type: GType): TypeClass; // Methods /** * Registers a private structure for an instantiatable type. * * When an object is allocated, the private structures for * the type and all of its parent types are allocated * sequentially in the same memory block as the public * structures, and are zero-filled. * * Note that the accumulated size of the private structures of * a type and all its parent types cannot exceed 64 KiB. * * This function should be called in the type's class_init() function. * The private structure can be retrieved using the * G_TYPE_INSTANCE_GET_PRIVATE() macro. * * The following example shows attaching a private structure * MyObjectPrivate to an object MyObject defined in the standard * GObject fashion in the type's class_init() function. * * Note the use of a structure member "priv" to avoid the overhead * of repeatedly calling MY_OBJECT_GET_PRIVATE(). * * * ```c * typedef struct _MyObject MyObject; * typedef struct _MyObjectPrivate MyObjectPrivate; * * struct _MyObject { * GObject parent; * * MyObjectPrivate *priv; * }; * * struct _MyObjectPrivate { * int some_field; * }; * * static void * my_object_class_init (MyObjectClass *klass) * { * g_type_class_add_private (klass, sizeof (MyObjectPrivate)); * } * * static void * my_object_init (MyObject *my_object) * { * my_object->priv = G_TYPE_INSTANCE_GET_PRIVATE (my_object, * MY_TYPE_OBJECT, * MyObjectPrivate); * // my_object->priv->some_field will be automatically initialised to 0 * } * * static int * my_object_get_some_field (MyObject *my_object) * { * MyObjectPrivate *priv; * * g_return_val_if_fail (MY_IS_OBJECT (my_object), 0); * * priv = my_object->priv; * * return priv->some_field; * } * ``` * * @param private_size size of private structure */ add_private(private_size: number): void; get_private(private_type: GType): any | null; /** * Retrieves the class structure of the immediate parent type of the * class passed in. * * This is a convenience function often needed in class initializers. * * Since derived classes hold a reference on their parent classes as * long as they are instantiated, the returned class will always exist. * * This function is essentially equivalent to: * g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class))) * @returns the parent class of @g_class */ peek_parent(): TypeClass; /** * Decrements the reference count of the class structure being passed in. * * Once the last reference count of a class has been released, classes * may be finalized by the type system, so further dereferencing of a * class pointer after g_type_class_unref() are invalid. */ unref(): void; } /** * A structure that provides information to the type system which is * used specifically for managing fundamental types. */ class TypeFundamentalInfo { static $gtype: GType; // Fields type_flags: TypeFundamentalFlags; // Constructors _init(...args: any[]): void; } /** * 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. * * The initialized structure is passed to the g_type_register_static() function * (or is copied into the provided #GTypeInfo structure in the * g_type_plugin_complete_type_info()). The type system will perform a deep * copy of this structure, so its memory does not need to be persistent * across invocation of g_type_register_static(). */ class TypeInfo { static $gtype: GType; // Fields class_size: number; base_init: BaseInitFunc; base_finalize: BaseFinalizeFunc; class_init: ClassInitFunc; class_finalize: ClassFinalizeFunc; class_data: any; instance_size: number; n_preallocs: number; instance_init: InstanceInitFunc; // Constructors _init(...args: any[]): void; } /** * An opaque structure used as the base of all type instances. */ class TypeInstance { static $gtype: GType; // Constructors _init(...args: any[]): void; // Methods get_private(private_type: GType): any | null; } /** * An opaque structure used as the base of all interface types. */ class TypeInterface { static $gtype: GType; // Constructors _init(...args: any[]): void; // Static methods /** * Adds `prerequisite_type` to the list of prerequisites of `interface_type`. * This means that any type implementing `interface_type` must also implement * `prerequisite_type`. Prerequisites can be thought of as an alternative to * interface derivation (which GType doesn't support). An interface can have * at most one instantiatable prerequisite type. * @param interface_type #GType value of an interface type * @param prerequisite_type #GType value of an interface or instantiatable type */ static add_prerequisite(interface_type: GType, prerequisite_type: GType): void; /** * Returns the #GTypePlugin structure for the dynamic interface * `interface_type` which has been added to `instance_type,` or %NULL * if `interface_type` has not been added to `instance_type` or does * not have a #GTypePlugin structure. See g_type_add_interface_dynamic(). * @param instance_type #GType of an instantiatable type * @param interface_type #GType of an interface type */ static get_plugin(instance_type: GType, interface_type: GType): TypePlugin; /** * Returns the most specific instantiatable prerequisite of an * interface type. If the interface type has no instantiatable * prerequisite, %G_TYPE_INVALID is returned. * * See g_type_interface_add_prerequisite() for more information * about prerequisites. * @param interface_type an interface type */ static instantiatable_prerequisite(interface_type: GType): GType; /** * Returns the #GTypeInterface structure of an interface to which the * passed in class conforms. * @param instance_class a #GTypeClass structure * @param iface_type an interface ID which this class conforms to */ static peek(instance_class: TypeClass, iface_type: GType): TypeInterface | null; /** * Returns the prerequisites of an interfaces type. * @param interface_type an interface type */ static prerequisites(interface_type: GType): GType[]; // Methods /** * Returns the corresponding #GTypeInterface structure of the parent type * of the instance type to which `g_iface` belongs. * * This is useful when deriving the implementation of an interface from the * parent type and then possibly overriding some methods. * @returns the corresponding #GTypeInterface structure of the parent type of the instance type to which @g_iface belongs, or %NULL if the parent type doesn't conform to the interface */ peek_parent(): TypeInterface | null; } type TypeModuleClass = typeof TypeModule; /** * The #GTypePlugin interface is used by the type system in order to handle * the lifecycle of dynamically loaded types. */ class TypePluginClass { static $gtype: GType; // Fields use_plugin: TypePluginUse; unuse_plugin: TypePluginUnuse; complete_type_info: TypePluginCompleteTypeInfo; complete_interface_info: TypePluginCompleteInterfaceInfo; // Constructors _init(...args: any[]): void; } /** * A structure holding information for a specific type. * * See also: g_type_query() */ class TypeQuery { static $gtype: GType; // Fields type: GType; type_name: string; class_size: number; instance_size: number; // Constructors _init(...args: any[]): void; } /** * - `'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` * * It should be noted that for variable argument list construction, * ANSI C promotes every type smaller than an integer to an int, and * floats to doubles. So for collection of short int or char, `'i'` * needs to be used, and for collection of floats `'d'`. * The #GTypeValueTable provides the functions required by the #GValue * implementation, to serve as a container for values of a type. */ class TypeValueTable { static $gtype: GType; // Fields value_init: TypeValueInitFunc; value_free: TypeValueFreeFunc; value_copy: TypeValueCopyFunc; value_peek_pointer: TypeValuePeekPointerFunc; collect_format: string; collect_value: TypeValueCollectFunc; lcopy_format: string; lcopy_value: TypeValueLCopyFunc; // Constructors _init(...args: any[]): void; } /** * An opaque structure used to hold different types of values. * * The data within the structure has protected scope: it is accessible only * to functions within a #GTypeValueTable structure, or implementations of * the g_value_*() API. That is, code portions which implement new fundamental * types. * * #GValue users cannot make any assumptions about how data is stored * within the 2 element `data` union, and the `g_type` member should * only be accessed through the G_VALUE_TYPE() macro. */ class Value { static $gtype: GType; // Constructors _init(...args: any[]): void; // Static methods /** * Returns whether a #GValue of type `src_type` can be copied into * a #GValue of type `dest_type`. * @param src_type source type to be copied. * @param dest_type destination type for copying. */ static type_compatible(src_type: GType, dest_type: GType): boolean; /** * Check whether g_value_transform() is able to transform values * of type `src_type` into values of type `dest_type`. Note that for * the types to be transformable, they must be compatible or a * transformation function must be registered. * @param src_type Source type. * @param dest_type Target type. */ static type_transformable(src_type: GType, dest_type: GType): boolean; // Methods /** * Copies the value of `src_value` into `dest_value`. * @param dest_value An initialized #GValue structure of the same type as @src_value. */ copy(dest_value: Value | any): void; /** * Get the contents of a %G_TYPE_OBJECT derived #GValue, increasing * its reference count. If the contents of the #GValue are %NULL, then * %NULL will be returned. * @returns object content of @value, should be unreferenced when no longer needed. */ dup_object(): T; /** * Get a copy the contents of a %G_TYPE_STRING #GValue. * @returns a newly allocated copy of the string content of @value */ dup_string(): string | null; /** * Get the contents of a variant #GValue, increasing its refcount. The returned * #GVariant is never floating. * @returns variant contents of @value (may be %NULL); should be unreffed using g_variant_unref() when no longer needed */ dup_variant(): GLib.Variant | null; /** * Determines if `value` will fit inside the size of a pointer value. * This is an internal function introduced mainly for C marshallers. * @returns %TRUE if @value will fit inside a pointer value. */ fits_pointer(): boolean; /** * Get the contents of a %G_TYPE_BOOLEAN #GValue. * @returns boolean contents of @value */ get_boolean(): boolean; /** * Get the contents of a %G_TYPE_BOXED derived #GValue. * @returns boxed contents of @value */ get_boxed(): any | null; /** * Do not use this function; it is broken on platforms where the %char * type is unsigned, such as ARM and PowerPC. See g_value_get_schar(). * * Get the contents of a %G_TYPE_CHAR #GValue. * @returns character contents of @value */ get_char(): number; /** * Get the contents of a %G_TYPE_DOUBLE #GValue. * @returns double contents of @value */ get_double(): number; /** * Get the contents of a %G_TYPE_ENUM #GValue. * @returns enum contents of @value */ get_enum(): number; /** * Get the contents of a %G_TYPE_FLAGS #GValue. * @returns flags contents of @value */ get_flags(): number; /** * Get the contents of a %G_TYPE_FLOAT #GValue. * @returns float contents of @value */ get_float(): number; /** * Get the contents of a %G_TYPE_GTYPE #GValue. * @returns the #GType stored in @value */ get_gtype(): GType; /** * Get the contents of a %G_TYPE_INT #GValue. * @returns integer contents of @value */ get_int(): number; /** * Get the contents of a %G_TYPE_INT64 #GValue. * @returns 64bit integer contents of @value */ get_int64(): number; /** * Get the contents of a %G_TYPE_LONG #GValue. * @returns long integer contents of @value */ get_long(): number; /** * Get the contents of a %G_TYPE_OBJECT derived #GValue. * @returns object contents of @value */ get_object(): T; /** * Get the contents of a %G_TYPE_PARAM #GValue. * @returns #GParamSpec content of @value */ get_param(): ParamSpec; /** * Get the contents of a pointer #GValue. * @returns pointer contents of @value */ get_pointer(): any | null; /** * Get the contents of a %G_TYPE_CHAR #GValue. * @returns signed 8 bit integer contents of @value */ get_schar(): number; /** * Get the contents of a %G_TYPE_STRING #GValue. * @returns string content of @value */ get_string(): string | null; /** * Get the contents of a %G_TYPE_UCHAR #GValue. * @returns unsigned character contents of @value */ get_uchar(): number; /** * Get the contents of a %G_TYPE_UINT #GValue. * @returns unsigned integer contents of @value */ get_uint(): number; /** * Get the contents of a %G_TYPE_UINT64 #GValue. * @returns unsigned 64bit integer contents of @value */ get_uint64(): number; /** * Get the contents of a %G_TYPE_ULONG #GValue. * @returns unsigned long integer contents of @value */ get_ulong(): number; /** * Get the contents of a variant #GValue. * @returns variant contents of @value (may be %NULL) */ get_variant(): GLib.Variant | null; /** * Initializes `value` with the default value of `type`. * @param g_type Type the #GValue should hold values of. * @returns the #GValue structure that has been passed in */ init(g_type: GType): unknown; /** * Initializes and sets `value` from an instantiatable type via the * value_table's collect_value() function. * * Note: The `value` will be initialised with the exact type of * `instance`. If you wish to set the `value'`s type to a different GType * (such as a parent class GType), you need to manually call * g_value_init() and g_value_set_instance(). * @param instance the instance */ init_from_instance(instance: TypeInstance): void; /** * Returns the value contents as pointer. This function asserts that * g_value_fits_pointer() returned %TRUE for the passed in value. * This is an internal function introduced mainly for C marshallers. * @returns the value contents as pointer */ peek_pointer(): any | null; /** * Clears the current value in `value` and resets it to the default value * (as if the value had just been initialized). * @returns the #GValue structure that has been passed in */ reset(): unknown; /** * Set the contents of a %G_TYPE_BOOLEAN #GValue to `v_boolean`. * @param v_boolean boolean value to be set */ set_boolean(v_boolean: boolean): void; /** * Set the contents of a %G_TYPE_BOXED derived #GValue to `v_boxed`. * @param v_boxed boxed value to be set */ set_boxed(v_boxed?: any | null): void; /** * This is an internal function introduced mainly for C marshallers. * @param v_boxed duplicated unowned boxed value to be set */ set_boxed_take_ownership(v_boxed?: any | null): void; /** * Set the contents of a %G_TYPE_CHAR #GValue to `v_char`. * @param v_char character value to be set */ set_char(v_char: number): void; /** * Set the contents of a %G_TYPE_DOUBLE #GValue to `v_double`. * @param v_double double value to be set */ set_double(v_double: number): void; /** * Set the contents of a %G_TYPE_ENUM #GValue to `v_enum`. * @param v_enum enum value to be set */ set_enum(v_enum: number): void; /** * Set the contents of a %G_TYPE_FLAGS #GValue to `v_flags`. * @param v_flags flags value to be set */ set_flags(v_flags: number): void; /** * Set the contents of a %G_TYPE_FLOAT #GValue to `v_float`. * @param v_float float value to be set */ set_float(v_float: number): void; /** * Set the contents of a %G_TYPE_GTYPE #GValue to `v_gtype`. * @param v_gtype #GType to be set */ set_gtype(v_gtype: GType): void; /** * Sets `value` from an instantiatable type via the * value_table's collect_value() function. * @param instance the instance */ set_instance(instance?: any | null): void; /** * Set the contents of a %G_TYPE_INT #GValue to `v_int`. * @param v_int integer value to be set */ set_int(v_int: number): void; /** * Set the contents of a %G_TYPE_INT64 #GValue to `v_int6`4. * @param v_int64 64bit integer value to be set */ set_int64(v_int64: number): void; /** * Set the contents of a %G_TYPE_STRING #GValue to `v_string`. The string is * assumed to be static and interned (canonical, for example from * g_intern_string()), and is thus not duplicated when setting the #GValue. * @param v_string static string to be set */ set_interned_string(v_string?: string | null): void; /** * Set the contents of a %G_TYPE_LONG #GValue to `v_long`. * @param v_long long integer value to be set */ set_long(v_long: number): void; /** * Set the contents of a %G_TYPE_OBJECT derived #GValue to `v_object`. * * g_value_set_object() increases the reference count of `v_object` * (the #GValue holds a reference to `v_object)`. If you do not wish * to increase the reference count of the object (i.e. you wish to * pass your current reference to the #GValue because you no longer * need it), use g_value_take_object() instead. * * It is important that your #GValue holds a reference to `v_object` (either its * own, or one it has taken) to ensure that the object won't be destroyed while * the #GValue still exists). * @param v_object object value to be set */ set_object(v_object?: Object | null): void; /** * Set the contents of a %G_TYPE_PARAM #GValue to `param`. * @param param the #GParamSpec to be set */ set_param(param?: ParamSpec | null): void; /** * Set the contents of a pointer #GValue to `v_pointer`. * @param v_pointer pointer value to be set */ set_pointer(v_pointer?: any | null): void; /** * Set the contents of a %G_TYPE_CHAR #GValue to `v_char`. * @param v_char signed 8 bit integer to be set */ set_schar(v_char: number): void; /** * Set the contents of a %G_TYPE_BOXED derived #GValue to `v_boxed`. * * The boxed value is assumed to be static, and is thus not duplicated * when setting the #GValue. * @param v_boxed static boxed value to be set */ set_static_boxed(v_boxed?: any | null): void; /** * Set the contents of a %G_TYPE_STRING #GValue to `v_string`. * The string is assumed to be static, and is thus not duplicated * when setting the #GValue. * * If the the string is a canonical string, using g_value_set_interned_string() * is more appropriate. * @param v_string static string to be set */ set_static_string(v_string?: string | null): void; /** * Set the contents of a %G_TYPE_STRING #GValue to a copy of `v_string`. * @param v_string caller-owned string to be duplicated for the #GValue */ set_string(v_string?: string | null): void; /** * This is an internal function introduced mainly for C marshallers. * @param v_string duplicated unowned string to be set */ set_string_take_ownership(v_string?: string | null): void; /** * Set the contents of a %G_TYPE_UCHAR #GValue to `v_uchar`. * @param v_uchar unsigned character value to be set */ set_uchar(v_uchar: number): void; /** * Set the contents of a %G_TYPE_UINT #GValue to `v_uint`. * @param v_uint unsigned integer value to be set */ set_uint(v_uint: number): void; /** * Set the contents of a %G_TYPE_UINT64 #GValue to `v_uint6`4. * @param v_uint64 unsigned 64bit integer value to be set */ set_uint64(v_uint64: number): void; /** * Set the contents of a %G_TYPE_ULONG #GValue to `v_ulong`. * @param v_ulong unsigned long integer value to be set */ set_ulong(v_ulong: number): void; /** * Set the contents of a variant #GValue to `variant`. * If the variant is floating, it is consumed. * @param variant a #GVariant, or %NULL */ set_variant(variant?: GLib.Variant | null): void; /** * Steal ownership on contents of a %G_TYPE_STRING #GValue. * As a result of this operation the value's contents will be reset to %NULL. * * The purpose of this call is to provide a way to avoid an extra copy * when some object have been serialized into string through #GValue API. * * NOTE: for safety and compatibility purposes, if #GValue contains * static string, or an interned one, this function will return a copy * of the string. Otherwise the transfer notation would be ambiguous. * @returns string content of @value; Should be freed with g_free() when no longer needed. */ steal_string(): string | null; /** * Sets the contents of a %G_TYPE_BOXED derived #GValue to `v_boxed` * and takes over the ownership of the caller’s reference to `v_boxed;` * the caller doesn’t have to unref it any more. * @param v_boxed duplicated unowned boxed value to be set */ take_boxed(v_boxed?: any | null): void; /** * Sets the contents of a %G_TYPE_STRING #GValue to `v_string`. * @param v_string string to take ownership of */ take_string(v_string?: string | null): void; /** * Set the contents of a variant #GValue to `variant,` and takes over * the ownership of the caller's reference to `variant;` * the caller doesn't have to unref it any more (i.e. the reference * count of the variant is not increased). * * If `variant` was floating then its floating reference is converted to * a hard reference. * * If you want the #GValue to hold its own reference to `variant,` use * g_value_set_variant() instead. * * This is an internal function introduced mainly for C marshallers. * @param variant a #GVariant, or %NULL */ take_variant(variant?: GLib.Variant | null): void; /** * Tries to cast the contents of `src_value` into a type appropriate * to store in `dest_value,` e.g. to transform a %G_TYPE_INT value * into a %G_TYPE_FLOAT value. Performing transformations between * value types might incur precision lossage. Especially * transformations into strings might reveal seemingly arbitrary * results and shouldn't be relied upon for production code (such * as rcfile value or object property serialization). * @param dest_value Target value. * @returns Whether a transformation rule was found and could be applied. Upon failing transformations, @dest_value is left untouched. */ transform(dest_value: Value | any): boolean; /** * Clears the current value in `value` (if any) and "unsets" the type, * this releases all resources associated with this GValue. An unset * value is the same as an uninitialized (zero-filled) #GValue * structure. */ unset(): void; } /** * A `GValueArray` is a container structure to hold an array of generic values. * * The prime purpose of a `GValueArray` is for it to be used as an * object property that holds an array of values. A `GValueArray` wraps * an array of `GValue` elements in order for it to be used as a boxed * type through `G_TYPE_VALUE_ARRAY`. * * `GValueArray` is deprecated in favour of `GArray` since GLib 2.32. * It is possible to create a `GArray` that behaves like a `GValueArray` * by using the size of `GValue` as the element size, and by setting * [method`GObject`.Value.unset] as the clear function using * [func`GLib`.Array.set_clear_func], for instance, the following code: * * ```c * GValueArray *array = g_value_array_new (10); * ``` * * can be replaced by: * * ```c * GArray *array = g_array_sized_new (FALSE, TRUE, sizeof (GValue), 10); * g_array_set_clear_func (array, (GDestroyNotify) g_value_unset); * ``` */ class ValueArray { static $gtype: GType; // Fields n_values: number; // Constructors constructor(n_prealloced: number); _init(...args: any[]): void; static ['new'](n_prealloced: number): ValueArray; // Methods /** * Insert a copy of `value` as last element of `value_array`. If `value` is * %NULL, an uninitialized value is appended. * @param value #GValue to copy into #GValueArray, or %NULL * @returns the #GValueArray passed in as @value_array */ append(value?: Value | null): ValueArray; /** * Construct an exact copy of a #GValueArray by duplicating all its * contents. * @returns Newly allocated copy of #GValueArray */ copy(): ValueArray; /** * Return a pointer to the value at `index_` contained in `value_array`. * @param index_ index of the value of interest * @returns pointer to a value at @index_ in @value_array */ get_nth(index_: number): unknown; /** * Insert a copy of `value` at specified position into `value_array`. If `value` * is %NULL, an uninitialized value is inserted. * @param index_ insertion position, must be <= value_array->;n_values * @param value #GValue to copy into #GValueArray, or %NULL * @returns the #GValueArray passed in as @value_array */ insert(index_: number, value?: Value | null): ValueArray; /** * Insert a copy of `value` as first element of `value_array`. If `value` is * %NULL, an uninitialized value is prepended. * @param value #GValue to copy into #GValueArray, or %NULL * @returns the #GValueArray passed in as @value_array */ prepend(value?: Value | null): ValueArray; /** * Remove the value at position `index_` from `value_array`. * @param index_ position of value to remove, which must be less than @value_array->n_values * @returns the #GValueArray passed in as @value_array */ remove(index_: number): ValueArray; /** * Sort `value_array` using `compare_func` to compare the elements according to * the semantics of #GCompareFunc. * * The current implementation uses the same sorting algorithm as standard * C qsort() function. * @param compare_func function to compare elements * @returns the #GValueArray passed in as @value_array */ sort(compare_func: GLib.CompareFunc): ValueArray; /** * Sort `value_array` using `compare_func` to compare the elements according * to the semantics of #GCompareDataFunc. * * The current implementation uses the same sorting algorithm as standard * C qsort() function. * @param compare_func function to compare elements * @returns the #GValueArray passed in as @value_array */ sort(compare_func: GLib.CompareDataFunc): ValueArray; } /** * A structure containing a weak reference to a #GObject. * * A `GWeakRef` can either be empty (i.e. point to %NULL), or point to an * object for as long as at least one "strong" reference to that object * exists. Before the object's #GObjectClass.dispose method is called, * every #GWeakRef associated with becomes empty (i.e. points to %NULL). * * Like #GValue, #GWeakRef can be statically allocated, stack- or * heap-allocated, or embedded in larger structures. * * Unlike g_object_weak_ref() and g_object_add_weak_pointer(), this weak * reference is thread-safe: converting a weak pointer to a reference is * atomic with respect to invalidation of weak pointers to destroyed * objects. * * If the object's #GObjectClass.dispose method results in additional * references to the object being held (‘re-referencing’), any #GWeakRefs taken * before it was disposed will continue to point to %NULL. Any #GWeakRefs taken * during disposal and after re-referencing, or after disposal has returned due * to the re-referencing, will continue to point to the object until its refcount * goes back to zero, at which point they too will be invalidated. * * It is invalid to take a #GWeakRef on an object during #GObjectClass.dispose * without first having or creating a strong reference to the object. */ class WeakRef { static $gtype: GType; // Constructors _init(...args: any[]): void; } /** * A union holding one collected value. */ class TypeCValue { static $gtype: GType; // Fields v_int: number; v_long: number; v_int64: number; v_double: number; v_pointer: any; // Constructors constructor( properties?: Partial<{ v_int: number; v_long: number; v_int64: number; v_double: number; v_pointer: any; }>, ); _init(...args: any[]): void; } class _Value__data__union { static $gtype: GType<_Value__data__union>; // Fields v_int: number; v_uint: number; v_long: number; v_ulong: number; v_int64: number; v_uint64: number; v_float: number; v_double: number; v_pointer: any; // Constructors constructor( properties?: Partial<{ v_int: number; v_uint: number; v_long: number; v_ulong: number; v_int64: number; v_uint64: number; v_float: number; v_double: number; v_pointer: any; }>, ); _init(...args: any[]): void; } namespace TypePlugin { // Constructor properties interface interface ConstructorProps extends Object.ConstructorProps {} } export interface TypePluginNamespace { $gtype: GType; prototype: TypePlugin; } interface TypePlugin extends Object { // Methods /** * Calls the `complete_interface_info` function from the * #GTypePluginClass of `plugin`. There should be no need to use this * function outside of the GObject type system itself. * @param instance_type the #GType of an instantiatable type to which the interface is added * @param interface_type the #GType of the interface whose info is completed * @param info the #GInterfaceInfo to fill in */ complete_interface_info(instance_type: GType, interface_type: GType, info: InterfaceInfo): void; /** * Calls the `complete_type_info` function from the #GTypePluginClass of `plugin`. * There should be no need to use this function outside of the GObject * type system itself. * @param g_type the #GType whose info is completed * @param info the #GTypeInfo struct to fill in * @param value_table the #GTypeValueTable to fill in */ complete_type_info(g_type: GType, info: TypeInfo, value_table: TypeValueTable): void; /** * Calls the `unuse_plugin` function from the #GTypePluginClass of * `plugin`. There should be no need to use this function outside of * the GObject type system itself. */ unuse(): void; /** * Calls the `use_plugin` function from the #GTypePluginClass of * `plugin`. There should be no need to use this function outside of * the GObject type system itself. */ use(): void; } export const TypePlugin: TypePluginNamespace & { new (): TypePlugin; // This allows `obj instanceof TypePlugin` }; type SignalCMarshaller = ClosureMarshal; type SignalCVaMarshaller = unknown; type Type = number; interface SignalMatch { // Fields signalId: string; detail: string; func: (...args: any[]) => any; } type Closure = (...args: P[]) => R; function signal_handlers_block_by_func(instance: Object, func: (...args: any[]) => any): void; function signal_handlers_unblock_by_func(instance: Object, func: (...args: any[]) => any): void; function signal_handlers_disconnect_by_func(instance: Object, func: (...args: any[]) => any): void; function signal_handler_find( ...args: | [Object, SignalMatch] | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null] ): number; function signal_handler_find(instance: Object, match: SignalMatch): number; function signal_handler_find( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function _real_signal_handler_find( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function signal_handler_block_matched( ...args: | [Object, SignalMatch] | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null] ): number; function signal_handler_block_matched(instance: Object, match: SignalMatch): number; function signal_handler_block_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function _real_signal_handler_block_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function signal_handler_block_disconnect_matched( ...args: | [Object, SignalMatch] | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null] ): number; function signal_handler_block_disconnect_matched(instance: Object, match: SignalMatch): number; function signal_handler_block_disconnect_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function _real_signal_handler_block_disconnect_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function signal_handler_block_unblock_matched( ...args: | [Object, SignalMatch] | [Object, SignalMatchType, number, GLib.Quark, Closure | null, object | null, object | null] ): number; function signal_handler_block_unblock_matched(instance: Object, match: SignalMatch): number; function signal_handler_block_unblock_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; function _real_signal_handler_block_unblock_matched( instance: Object, match: SignalMatchType, signal_id: number, detail: GLib.Quark, closure: Closure | null, func: object | null, object: object | null, ): number; /** * Name of the imported GIR library * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188 */ const __name__: string; /** * Version of the imported GIR library * `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189 */ const __version__: string; } export default GObject; } declare module 'gi://GObject' { import GObject20 from 'gi://GObject?version=2.0'; export default GObject20; } // END