Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
gobject.h File Reference
#include <gobject/gtype.h>
#include <gobject/gvalue.h>
#include <gobject/gparam.h>
#include <gobject/gclosure.h>
#include <gobject/gsignal.h>
#include <gobject/gboxed.h>

Go to the source code of this file.

Data Structures

struct  _GObject
 
struct  _GObjectClass
 
struct  _GObjectConstructParam
 
struct  GWeakRef
 

Macros

#define G_TYPE_IS_OBJECT(type)   (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
 
#define G_OBJECT(object)   (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
 
#define G_OBJECT_CLASS(class)   (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
 
#define G_IS_OBJECT(object)   (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT))
 
#define G_IS_OBJECT_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
 
#define G_OBJECT_GET_CLASS(object)   (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
 
#define G_OBJECT_TYPE(object)   (G_TYPE_FROM_INSTANCE (object))
 
#define G_OBJECT_TYPE_NAME(object)   (g_type_name (G_OBJECT_TYPE (object)))
 
#define G_OBJECT_CLASS_TYPE(class)   (G_TYPE_FROM_CLASS (class))
 
#define G_OBJECT_CLASS_NAME(class)   (g_type_name (G_OBJECT_CLASS_TYPE (class)))
 
#define G_VALUE_HOLDS_OBJECT(value)   (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
 
#define G_TYPE_INITIALLY_UNOWNED   (g_initially_unowned_get_type())
 
#define G_INITIALLY_UNOWNED(object)   (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned))
 
#define G_INITIALLY_UNOWNED_CLASS(class)   (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
 
#define G_IS_INITIALLY_UNOWNED(object)   (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED))
 
#define G_IS_INITIALLY_UNOWNED_CLASS(class)   (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED))
 
#define G_INITIALLY_UNOWNED_GET_CLASS(object)   (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
 
#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec)
 
#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec)    G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
 
#define g_clear_object(object_ptr)   g_clear_pointer ((object_ptr), g_object_unref)
 
#define g_set_object(object_ptr, new_object)
 
#define g_assert_finalize_object(object)   (g_assert_finalize_object ((GObject *) object))
 
#define g_clear_weak_pointer(weak_pointer_location)
 
#define g_set_weak_pointer(weak_pointer_location, new_object)
 

Typedefs

typedef struct _GObject GObject
 
typedef struct _GObjectClass GObjectClass
 
typedef struct _GObject GInitiallyUnowned
 
typedef struct _GObjectClass GInitiallyUnownedClass
 
typedef struct _GObjectConstructParam GObjectConstructParam
 
typedef void(* GObjectGetPropertyFunc) (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
 
typedef void(* GObjectSetPropertyFunc) (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
 
typedef void(* GObjectFinalizeFunc) (GObject *object)
 
typedef void(* GWeakNotify) (gpointer data, GObject *where_the_object_was)
 
typedef void(* GToggleNotify) (gpointer data, GObject *object, gboolean is_last_ref)
 

Functions

GOBJECT_AVAILABLE_IN_ALL GType g_initially_unowned_get_type (void)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_property (GObjectClass *oclass, guint property_id, GParamSpec *pspec)
 
GOBJECT_AVAILABLE_IN_ALL GParamSpecg_object_class_find_property (GObjectClass *oclass, const gchar *property_name)
 
GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_class_list_properties (GObjectClass *oclass, guint *n_properties)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_class_override_property (GObjectClass *oclass, guint property_id, const gchar *name)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_properties (GObjectClass *oclass, guint n_pspecs, GParamSpec **pspecs)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_interface_install_property (gpointer g_iface, GParamSpec *pspec)
 
GOBJECT_AVAILABLE_IN_ALL GParamSpecg_object_interface_find_property (gpointer g_iface, const gchar *property_name)
 
GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_interface_list_properties (gpointer g_iface, guint *n_properties_p)
 
GOBJECT_AVAILABLE_IN_ALL GType g_object_get_type (void) G_GNUC_CONST
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_new (GType object_type, const gchar *first_property_name,...)
 
GOBJECT_AVAILABLE_IN_2_54 GObjectg_object_new_with_properties (GType object_type, guint n_properties, const char *names[], const GValue values[])
 
G_GNUC_BEGIN_IGNORE_DEPRECATIONS gpointer g_object_newv (GType object_type, guint n_parameters, GParameter *parameters)
 
G_GNUC_END_IGNORE_DEPRECATIONS GOBJECT_AVAILABLE_IN_ALL GObjectg_object_new_valist (GType object_type, const gchar *first_property_name, va_list var_args)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set (gpointer object, const gchar *first_property_name,...) G_GNUC_NULL_TERMINATED
 
GOBJECT_AVAILABLE_IN_ALL void g_object_get (gpointer object, const gchar *first_property_name,...) G_GNUC_NULL_TERMINATED
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_connect (gpointer object, const gchar *signal_spec,...) G_GNUC_NULL_TERMINATED
 
GOBJECT_AVAILABLE_IN_ALL void g_object_disconnect (gpointer object, const gchar *signal_spec,...) G_GNUC_NULL_TERMINATED
 
GOBJECT_AVAILABLE_IN_2_54 void g_object_setv (GObject *object, guint n_properties, const gchar *names[], const GValue values[])
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_valist (GObject *object, const gchar *first_property_name, va_list var_args)
 
GOBJECT_AVAILABLE_IN_2_54 void g_object_getv (GObject *object, guint n_properties, const gchar *names[], GValue values[])
 
GOBJECT_AVAILABLE_IN_ALL void g_object_get_valist (GObject *object, const gchar *first_property_name, va_list var_args)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_property (GObject *object, const gchar *property_name, const GValue *value)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_get_property (GObject *object, const gchar *property_name, GValue *value)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_freeze_notify (GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_notify (GObject *object, const gchar *property_name)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_notify_by_pspec (GObject *object, GParamSpec *pspec)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_thaw_notify (GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL gboolean g_object_is_floating (gpointer object)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref_sink (gpointer object)
 
GOBJECT_AVAILABLE_IN_2_70 gpointer g_object_take_ref (gpointer object)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref (gpointer object)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_unref (gpointer object)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_weak_ref (GObject *object, GWeakNotify notify, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_weak_unref (GObject *object, GWeakNotify notify, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_add_weak_pointer (GObject *object, gpointer *weak_pointer_location)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_remove_weak_pointer (GObject *object, gpointer *weak_pointer_location)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_add_toggle_ref (GObject *object, GToggleNotify notify, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_remove_toggle_ref (GObject *object, GToggleNotify notify, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_qdata (GObject *object, GQuark quark)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_qdata (GObject *object, GQuark quark, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_qdata_full (GObject *object, GQuark quark, gpointer data, GDestroyNotify destroy)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_qdata (GObject *object, GQuark quark)
 
GOBJECT_AVAILABLE_IN_2_34 gpointer g_object_dup_qdata (GObject *object, GQuark quark, GDuplicateFunc dup_func, gpointer user_data)
 
GOBJECT_AVAILABLE_IN_2_34 gboolean g_object_replace_qdata (GObject *object, GQuark quark, gpointer oldval, gpointer newval, GDestroyNotify destroy, GDestroyNotify *old_destroy)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_data (GObject *object, const gchar *key)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_data (GObject *object, const gchar *key, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_set_data_full (GObject *object, const gchar *key, gpointer data, GDestroyNotify destroy)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_data (GObject *object, const gchar *key)
 
GOBJECT_AVAILABLE_IN_2_34 gpointer g_object_dup_data (GObject *object, const gchar *key, GDuplicateFunc dup_func, gpointer user_data)
 
GOBJECT_AVAILABLE_IN_2_34 gboolean g_object_replace_data (GObject *object, const gchar *key, gpointer oldval, gpointer newval, GDestroyNotify destroy, GDestroyNotify *old_destroy)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_watch_closure (GObject *object, GClosure *closure)
 
GOBJECT_AVAILABLE_IN_ALL GClosureg_cclosure_new_object (GCallback callback_func, GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL GClosureg_cclosure_new_object_swap (GCallback callback_func, GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL GClosureg_closure_new_object (guint sizeof_closure, GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL void g_value_set_object (GValue *value, gpointer v_object)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_value_get_object (const GValue *value)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_value_dup_object (const GValue *value)
 
GOBJECT_AVAILABLE_IN_ALL gulong g_signal_connect_object (gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer gobject, GConnectFlags connect_flags)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_force_floating (GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL void g_object_run_dispose (GObject *object)
 
GOBJECT_AVAILABLE_IN_ALL void g_value_take_object (GValue *value, gpointer v_object)
 
void g_value_set_object_take_ownership (GValue *value, gpointer v_object)
 
GOBJECT_DEPRECATED gsize g_object_compat_control (gsize what, gpointer data)
 
GOBJECT_AVAILABLE_IN_ALL void g_clear_object (GObject **object_ptr)
 
static gboolean g_set_object (GObject **object_ptr, GObject *new_object)
 
static void g_assert_finalize_object (GObject *object)
 
static void g_clear_weak_pointer (gpointer *weak_pointer_location)
 
static gboolean g_set_weak_pointer (gpointer *weak_pointer_location, GObject *new_object)
 
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_init (GWeakRef *weak_ref, gpointer object)
 
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_clear (GWeakRef *weak_ref)
 
GOBJECT_AVAILABLE_IN_ALL gpointer g_weak_ref_get (GWeakRef *weak_ref)
 
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_set (GWeakRef *weak_ref, gpointer object)
 

Macro Definition Documentation

◆ g_assert_finalize_object

#define g_assert_finalize_object ( object)    (g_assert_finalize_object ((GObject *) object))

Definition at line 813 of file gobject.h.

◆ g_clear_object

#define g_clear_object ( object_ptr)    g_clear_pointer ((object_ptr), g_object_unref)

Definition at line 695 of file gobject.h.

◆ g_clear_weak_pointer

#define g_clear_weak_pointer ( weak_pointer_location)
Value:
(/* Check types match. */ \
(g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \
)
#define g_clear_weak_pointer(weak_pointer_location)
Definition gobject.h:846
void * gpointer
Definition gtypes.h:109

Definition at line 846 of file gobject.h.

846#define g_clear_weak_pointer(weak_pointer_location) \
847 (/* Check types match. */ \
848 (g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \
849 )

◆ G_INITIALLY_UNOWNED

#define G_INITIALLY_UNOWNED ( object)    (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned))

G_INITIALLY_UNOWNED: @object: Object which is subject to casting.

Casts a GInitiallyUnowned or derived pointer into a (GInitiallyUnowned*) pointer.

Depending on the current debugging level, this function may invoke certain runtime checks to identify invalid casts.

Definition at line 155 of file gobject.h.

◆ G_INITIALLY_UNOWNED_CLASS

#define G_INITIALLY_UNOWNED_CLASS ( class)    (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))

Definition at line 163 of file gobject.h.

◆ G_INITIALLY_UNOWNED_GET_CLASS

#define G_INITIALLY_UNOWNED_GET_CLASS ( object)    (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))

G_INITIALLY_UNOWNED_GET_CLASS: @object: a GInitiallyUnowned instance.

Get the class structure associated to a GInitiallyUnowned instance.

Returns: pointer to object class structure.

Definition at line 187 of file gobject.h.

◆ G_IS_INITIALLY_UNOWNED

#define G_IS_INITIALLY_UNOWNED ( object)    (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED))

G_IS_INITIALLY_UNOWNED: @object: Instance to check for being a G_TYPE_INITIALLY_UNOWNED.

Checks whether a valid GTypeInstance pointer is of type G_TYPE_INITIALLY_UNOWNED.

Definition at line 170 of file gobject.h.

◆ G_IS_INITIALLY_UNOWNED_CLASS

#define G_IS_INITIALLY_UNOWNED_CLASS ( class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED))

Definition at line 178 of file gobject.h.

◆ G_IS_OBJECT

#define G_IS_OBJECT ( object)    (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT))

G_IS_OBJECT: @object: Instance to check for being a G_TYPE_OBJECT.

Checks whether a valid GTypeInstance pointer is of type G_TYPE_OBJECT.

Definition at line 69 of file gobject.h.

Referenced by g_assert_finalize_object().

◆ G_IS_OBJECT_CLASS

#define G_IS_OBJECT_CLASS ( class)    (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))

Definition at line 80 of file gobject.h.

◆ G_OBJECT

#define G_OBJECT ( object)    (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))

G_OBJECT: @object: Object which is subject to casting.

Casts a GObject or derived pointer into a (GObject*) pointer.

Depending on the current debugging level, this function may invoke certain runtime checks to identify invalid casts.

Definition at line 54 of file gobject.h.

◆ G_OBJECT_CLASS

#define G_OBJECT_CLASS ( class)    (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))

Definition at line 61 of file gobject.h.

◆ G_OBJECT_CLASS_NAME

#define G_OBJECT_CLASS_NAME ( class)    (g_type_name (G_OBJECT_CLASS_TYPE (class)))

Definition at line 127 of file gobject.h.

◆ G_OBJECT_CLASS_TYPE

#define G_OBJECT_CLASS_TYPE ( class)    (G_TYPE_FROM_CLASS (class))

Definition at line 117 of file gobject.h.

◆ G_OBJECT_GET_CLASS

#define G_OBJECT_GET_CLASS ( object)    (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))

G_OBJECT_GET_CLASS: @object: a GObject instance.

Get the class structure associated to a GObject instance.

Returns: pointer to object class structure.

Definition at line 89 of file gobject.h.

◆ G_OBJECT_TYPE

#define G_OBJECT_TYPE ( object)    (G_TYPE_FROM_INSTANCE (object))

G_OBJECT_TYPE: @object: Object to return the type id for.

Get the type id of an object.

Returns: Type id of @object.

Definition at line 98 of file gobject.h.

◆ G_OBJECT_TYPE_NAME

#define G_OBJECT_TYPE_NAME ( object)    (g_type_name (G_OBJECT_TYPE (object)))

G_OBJECT_TYPE_NAME: @object: Object to return the type name for.

Get the name of an object's type.

Returns: Type name of @object. The string is owned by the type system and should not be freed.

Definition at line 108 of file gobject.h.

Referenced by g_object_notify_queue_freeze(), and g_object_notify_queue_thaw().

◆ G_OBJECT_WARN_INVALID_PROPERTY_ID

#define G_OBJECT_WARN_INVALID_PROPERTY_ID ( object,
property_id,
pspec )    G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))

G_OBJECT_WARN_INVALID_PROPERTY_ID: @object: the GObject on which set_property() or get_property() was called @property_id: the numeric id of the property @pspec: the GParamSpec of the property

This macro should be used to emit a standard warning about unexpected properties in set_property() and get_property() implementations.

Definition at line 690 of file gobject.h.

690#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
691 G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))

◆ G_OBJECT_WARN_INVALID_PSPEC

#define G_OBJECT_WARN_INVALID_PSPEC ( object,
pname,
property_id,
pspec )
Value:
GObject *_glib__object = (GObject*) (object); \
GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \
guint _glib__property_id = (property_id); \
g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \
__FILE__, __LINE__, \
(pname), \
_glib__property_id, \
_glib__pspec->name, \
g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \
G_OBJECT_TYPE_NAME (_glib__object)); \
#define G_STMT_END
Definition gmacros.h:997
#define G_STMT_START
Definition gmacros.h:989
#define G_OBJECT_TYPE_NAME(object)
Definition gobject.h:108
#define G_PARAM_SPEC_TYPE(pspec)
Definition gparam.h:91
G_GNUC_END_IGNORE_DEPRECATIONS GOBJECT_AVAILABLE_IN_ALL const gchar * g_type_name(GType type)
unsigned int guint
Definition gtypes.h:61
const gchar * name
Definition gparam.h:211

Definition at line 668 of file gobject.h.

668#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec) \
669G_STMT_START { \
670 GObject *_glib__object = (GObject*) (object); \
671 GParamSpec *_glib__pspec = (GParamSpec*) (pspec); \
672 guint _glib__property_id = (property_id); \
673 g_warning ("%s:%d: invalid %s id %u for \"%s\" of type '%s' in '%s'", \
674 __FILE__, __LINE__, \
675 (pname), \
676 _glib__property_id, \
677 _glib__pspec->name, \
678 g_type_name (G_PARAM_SPEC_TYPE (_glib__pspec)), \
679 G_OBJECT_TYPE_NAME (_glib__object)); \
680} G_STMT_END

◆ g_set_object

#define g_set_object ( object_ptr,
new_object )
Value:
(/* Check types match. */ \
0 ? *(object_ptr) = (new_object), FALSE : \
(g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \
)
#define FALSE
Definition gmacros.h:929
#define g_set_object(object_ptr, new_object)
Definition gobject.h:776

Definition at line 776 of file gobject.h.

776#define g_set_object(object_ptr, new_object) \
777 (/* Check types match. */ \
778 0 ? *(object_ptr) = (new_object), FALSE : \
779 (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \
780 )

◆ g_set_weak_pointer

#define g_set_weak_pointer ( weak_pointer_location,
new_object )
Value:
(/* Check types match. */ \
0 ? *(weak_pointer_location) = (new_object), FALSE : \
(g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \
)
#define g_set_weak_pointer(weak_pointer_location, new_object)
Definition gobject.h:914

Definition at line 914 of file gobject.h.

914#define g_set_weak_pointer(weak_pointer_location, new_object) \
915 (/* Check types match. */ \
916 0 ? *(weak_pointer_location) = (new_object), FALSE : \
917 (g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \
918 )

◆ G_TYPE_INITIALLY_UNOWNED

#define G_TYPE_INITIALLY_UNOWNED   (g_initially_unowned_get_type())

G_TYPE_INITIALLY_UNOWNED:

The type for GInitiallyUnowned.

Definition at line 144 of file gobject.h.

◆ G_TYPE_IS_OBJECT

#define G_TYPE_IS_OBJECT ( type)    (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)

G_TYPE_IS_OBJECT: @type: Type id to check

Check if the passed in type id is a G_TYPE_OBJECT or derived from it.

Returns: FALSE or TRUE, indicating whether @type is a G_TYPE_OBJECT.

Definition at line 44 of file gobject.h.

◆ G_VALUE_HOLDS_OBJECT

#define G_VALUE_HOLDS_OBJECT ( value)    (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))

G_VALUE_HOLDS_OBJECT: @value: a valid GValue structure

Checks whether the given GValue can hold values derived from type G_TYPE_OBJECT.

Returns: TRUE on success.

Definition at line 136 of file gobject.h.

Typedef Documentation

◆ GInitiallyUnowned

typedef struct _GObject GInitiallyUnowned

Definition at line 194 of file gobject.h.

◆ GInitiallyUnownedClass

Definition at line 195 of file gobject.h.

◆ GObject

typedef struct _GObject GObject

Definition at line 192 of file gobject.h.

◆ GObjectClass

typedef struct _GObjectClass GObjectClass

Definition at line 193 of file gobject.h.

◆ GObjectConstructParam

Definition at line 196 of file gobject.h.

◆ GObjectFinalizeFunc

typedef void(* GObjectFinalizeFunc) (GObject *object)

GObjectFinalizeFunc: @object: the GObject being finalized

The type of the @finalize function of GObjectClass.

Definition at line 231 of file gobject.h.

◆ GObjectGetPropertyFunc

typedef void(* GObjectGetPropertyFunc) (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)

GObjectGetPropertyFunc: @object: a GObject @property_id: the numeric id under which the property was registered with g_object_class_install_property(). @value: a GValue to return the property value in @pspec: the GParamSpec describing the property

The type of the @get_property function of GObjectClass.

Definition at line 207 of file gobject.h.

◆ GObjectSetPropertyFunc

typedef void(* GObjectSetPropertyFunc) (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)

GObjectSetPropertyFunc: @object: a GObject @property_id: the numeric id under which the property was registered with g_object_class_install_property(). @value: the new value for the property @pspec: the GParamSpec describing the property

The type of the @set_property function of GObjectClass.

Definition at line 221 of file gobject.h.

◆ GToggleNotify

typedef void(* GToggleNotify) (gpointer data, GObject *object, gboolean is_last_ref)

GToggleNotify: @data: Callback data passed to g_object_add_toggle_ref() @object: The object on which g_object_add_toggle_ref() was called. @is_last_ref: TRUE if the toggle reference is now the last reference to the object. FALSE if the toggle reference was the last reference and there are now other references.

A callback function used for notification when the state of a toggle reference changes.

See also: g_object_add_toggle_ref()

Definition at line 551 of file gobject.h.

◆ GWeakNotify

typedef void(* GWeakNotify) (gpointer data, GObject *where_the_object_was)

GWeakNotify: @data: data that was provided when the weak reference was established @where_the_object_was: the object being disposed

A GWeakNotify function can be added to an object as a callback that gets triggered when the object is finalized.

Since the object is already being disposed when the GWeakNotify is called, there's not much you could do with the object, apart from e.g. using its address as hash-index or the like.

In particular, this means it’s invalid to call g_object_ref(), g_weak_ref_init(), g_weak_ref_set(), g_object_add_toggle_ref(), g_object_weak_ref(), g_object_add_weak_pointer() or any function which calls them on the object from this callback.

Definition at line 249 of file gobject.h.

Function Documentation

◆ g_assert_finalize_object()

static void g_assert_finalize_object ( GObject * object)
inlinestatic

g_assert_finalize_object: (skip) @object: (transfer full) (type GObject.Object): an object

Assert that @object is non-NULL, then release one reference to it with g_object_unref() and assert that it has been finalized (i.e. that there are no more references).

If assertions are disabled via G_DISABLE_ASSERT, this macro just calls g_object_unref() without any further checks.

This macro should only be used in regression tests.

Since: 2.62

Definition at line 799 of file gobject.h.

801{
802 gpointer weak_pointer = object;
803
804 g_assert_true (G_IS_OBJECT (weak_pointer));
805 g_object_add_weak_pointer (object, &weak_pointer);
806 g_object_unref (weak_pointer);
807 g_assert_null (weak_pointer);
808}
#define G_IS_OBJECT(object)
Definition gobject.h:69
GOBJECT_AVAILABLE_IN_ALL void g_object_add_weak_pointer(GObject *object, gpointer *weak_pointer_location)
GOBJECT_AVAILABLE_IN_ALL void g_object_unref(gpointer object)
#define g_assert_true(expr)
Definition gtestutils.h:227
#define g_assert_null(expr)
Definition gtestutils.h:250

References g_assert_null, g_assert_true, G_IS_OBJECT, g_object_add_weak_pointer(), and g_object_unref().

◆ g_cclosure_new_object()

GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new_object ( GCallback callback_func,
GObject * object )

◆ g_cclosure_new_object_swap()

GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new_object_swap ( GCallback callback_func,
GObject * object )

◆ g_clear_object()

GOBJECT_AVAILABLE_IN_ALL void g_clear_object ( GObject ** object_ptr)

◆ g_clear_weak_pointer()

static void g_clear_weak_pointer ( gpointer * weak_pointer_location)
inlinestatic

g_clear_weak_pointer: (skip) @weak_pointer_location: The memory address of a pointer

Clears a weak reference to a GObject.

@weak_pointer_location must not be NULL.

If the weak reference is NULL then this function does nothing. Otherwise, the weak reference to the object is removed for that location and the pointer is set to NULL.

A macro is also included that allows this function to be used without pointer casts. The function itself is static inline, so its address may vary between compilation units.

Since: 2.56

Definition at line 834 of file gobject.h.

836{
837 GObject *object = (GObject *) *weak_pointer_location;
838
839 if (object != NULL)
840 {
841 g_object_remove_weak_pointer (object, weak_pointer_location);
842 *weak_pointer_location = NULL;
843 }
844}
#define NULL
Definition gmacros.h:924
GOBJECT_AVAILABLE_IN_ALL void g_object_remove_weak_pointer(GObject *object, gpointer *weak_pointer_location)

References g_object_remove_weak_pointer(), and NULL.

◆ g_closure_new_object()

GOBJECT_AVAILABLE_IN_ALL GClosure * g_closure_new_object ( guint sizeof_closure,
GObject * object )

◆ g_initially_unowned_get_type()

GOBJECT_AVAILABLE_IN_ALL GType g_initially_unowned_get_type ( void )

GInitiallyUnowned:

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

The class structure for the GInitiallyUnowned type.

◆ g_object_add_toggle_ref()

GOBJECT_AVAILABLE_IN_ALL void g_object_add_toggle_ref ( GObject * object,
GToggleNotify notify,
gpointer data )

◆ g_object_add_weak_pointer()

GOBJECT_AVAILABLE_IN_ALL void g_object_add_weak_pointer ( GObject * object,
gpointer * weak_pointer_location )

◆ g_object_class_find_property()

GOBJECT_AVAILABLE_IN_ALL GParamSpec * g_object_class_find_property ( GObjectClass * oclass,
const gchar * property_name )

◆ g_object_class_install_properties()

GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_properties ( GObjectClass * oclass,
guint n_pspecs,
GParamSpec ** pspecs )

◆ g_object_class_install_property()

GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_property ( GObjectClass * oclass,
guint property_id,
GParamSpec * pspec )

◆ g_object_class_list_properties()

GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_class_list_properties ( GObjectClass * oclass,
guint * n_properties )

◆ g_object_class_override_property()

GOBJECT_AVAILABLE_IN_ALL void g_object_class_override_property ( GObjectClass * oclass,
guint property_id,
const gchar * name )

◆ g_object_compat_control()

GOBJECT_DEPRECATED gsize g_object_compat_control ( gsize what,
gpointer data )

◆ g_object_connect()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_connect ( gpointer object,
const gchar * signal_spec,
... )

◆ g_object_disconnect()

GOBJECT_AVAILABLE_IN_ALL void g_object_disconnect ( gpointer object,
const gchar * signal_spec,
... )

◆ g_object_dup_data()

GOBJECT_AVAILABLE_IN_2_34 gpointer g_object_dup_data ( GObject * object,
const gchar * key,
GDuplicateFunc dup_func,
gpointer user_data )

◆ g_object_dup_qdata()

GOBJECT_AVAILABLE_IN_2_34 gpointer g_object_dup_qdata ( GObject * object,
GQuark quark,
GDuplicateFunc dup_func,
gpointer user_data )

◆ g_object_force_floating()

GOBJECT_AVAILABLE_IN_ALL void g_object_force_floating ( GObject * object)

◆ g_object_freeze_notify()

GOBJECT_AVAILABLE_IN_ALL void g_object_freeze_notify ( GObject * object)

◆ g_object_get()

GOBJECT_AVAILABLE_IN_ALL void g_object_get ( gpointer object,
const gchar * first_property_name,
... )

◆ g_object_get_data()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_data ( GObject * object,
const gchar * key )

◆ g_object_get_property()

GOBJECT_AVAILABLE_IN_ALL void g_object_get_property ( GObject * object,
const gchar * property_name,
GValue * value )

◆ g_object_get_qdata()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_qdata ( GObject * object,
GQuark quark )

◆ g_object_get_type()

GOBJECT_AVAILABLE_IN_ALL GType g_object_get_type ( void )

◆ g_object_get_valist()

GOBJECT_AVAILABLE_IN_ALL void g_object_get_valist ( GObject * object,
const gchar * first_property_name,
va_list var_args )

◆ g_object_getv()

GOBJECT_AVAILABLE_IN_2_54 void g_object_getv ( GObject * object,
guint n_properties,
const gchar * names[],
GValue values[] )

◆ g_object_interface_find_property()

GOBJECT_AVAILABLE_IN_ALL GParamSpec * g_object_interface_find_property ( gpointer g_iface,
const gchar * property_name )

◆ g_object_interface_install_property()

GOBJECT_AVAILABLE_IN_ALL void g_object_interface_install_property ( gpointer g_iface,
GParamSpec * pspec )

◆ g_object_interface_list_properties()

GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_interface_list_properties ( gpointer g_iface,
guint * n_properties_p )

◆ g_object_is_floating()

GOBJECT_AVAILABLE_IN_ALL gboolean g_object_is_floating ( gpointer object)

◆ g_object_new()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_new ( GType object_type,
const gchar * first_property_name,
... )

◆ g_object_new_valist()

G_GNUC_END_IGNORE_DEPRECATIONS GOBJECT_AVAILABLE_IN_ALL GObject * g_object_new_valist ( GType object_type,
const gchar * first_property_name,
va_list var_args )

◆ g_object_new_with_properties()

GOBJECT_AVAILABLE_IN_2_54 GObject * g_object_new_with_properties ( GType object_type,
guint n_properties,
const char * names[],
const GValue values[] )

◆ g_object_newv()

G_GNUC_BEGIN_IGNORE_DEPRECATIONS gpointer g_object_newv ( GType object_type,
guint n_parameters,
GParameter * parameters )

◆ g_object_notify()

GOBJECT_AVAILABLE_IN_ALL void g_object_notify ( GObject * object,
const gchar * property_name )

◆ g_object_notify_by_pspec()

GOBJECT_AVAILABLE_IN_ALL void g_object_notify_by_pspec ( GObject * object,
GParamSpec * pspec )

◆ g_object_ref()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref ( gpointer object)

Referenced by g_set_object().

◆ g_object_ref_sink()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref_sink ( gpointer object)

◆ g_object_remove_toggle_ref()

GOBJECT_AVAILABLE_IN_ALL void g_object_remove_toggle_ref ( GObject * object,
GToggleNotify notify,
gpointer data )

◆ g_object_remove_weak_pointer()

GOBJECT_AVAILABLE_IN_ALL void g_object_remove_weak_pointer ( GObject * object,
gpointer * weak_pointer_location )

◆ g_object_replace_data()

GOBJECT_AVAILABLE_IN_2_34 gboolean g_object_replace_data ( GObject * object,
const gchar * key,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify * old_destroy )

◆ g_object_replace_qdata()

GOBJECT_AVAILABLE_IN_2_34 gboolean g_object_replace_qdata ( GObject * object,
GQuark quark,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify * old_destroy )

◆ g_object_run_dispose()

GOBJECT_AVAILABLE_IN_ALL void g_object_run_dispose ( GObject * object)

◆ g_object_set()

GOBJECT_AVAILABLE_IN_ALL void g_object_set ( gpointer object,
const gchar * first_property_name,
... )

◆ g_object_set_data()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_data ( GObject * object,
const gchar * key,
gpointer data )

◆ g_object_set_data_full()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_data_full ( GObject * object,
const gchar * key,
gpointer data,
GDestroyNotify destroy )

◆ g_object_set_property()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_property ( GObject * object,
const gchar * property_name,
const GValue * value )

◆ g_object_set_qdata()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_qdata ( GObject * object,
GQuark quark,
gpointer data )

◆ g_object_set_qdata_full()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_qdata_full ( GObject * object,
GQuark quark,
gpointer data,
GDestroyNotify destroy )

◆ g_object_set_valist()

GOBJECT_AVAILABLE_IN_ALL void g_object_set_valist ( GObject * object,
const gchar * first_property_name,
va_list var_args )

◆ g_object_setv()

GOBJECT_AVAILABLE_IN_2_54 void g_object_setv ( GObject * object,
guint n_properties,
const gchar * names[],
const GValue values[] )

◆ g_object_steal_data()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_data ( GObject * object,
const gchar * key )

◆ g_object_steal_qdata()

GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_qdata ( GObject * object,
GQuark quark )

◆ g_object_take_ref()

GOBJECT_AVAILABLE_IN_2_70 gpointer g_object_take_ref ( gpointer object)

◆ g_object_thaw_notify()

GOBJECT_AVAILABLE_IN_ALL void g_object_thaw_notify ( GObject * object)

◆ g_object_unref()

GOBJECT_AVAILABLE_IN_ALL void g_object_unref ( gpointer object)

◆ g_object_watch_closure()

GOBJECT_AVAILABLE_IN_ALL void g_object_watch_closure ( GObject * object,
GClosure * closure )

◆ g_object_weak_ref()

GOBJECT_AVAILABLE_IN_ALL void g_object_weak_ref ( GObject * object,
GWeakNotify notify,
gpointer data )

◆ g_object_weak_unref()

GOBJECT_AVAILABLE_IN_ALL void g_object_weak_unref ( GObject * object,
GWeakNotify notify,
gpointer data )

◆ g_set_object()

static gboolean g_set_object ( GObject ** object_ptr,
GObject * new_object )
inlinestatic

g_set_object: (skip) @object_ptr: (inout) (not optional) (nullable): a pointer to a GObject reference @new_object: (nullable) (transfer none): a pointer to the new GObject to assign to @object_ptr, or NULL to clear the pointer

Updates a GObject pointer to refer to @new_object.

It increments the reference count of @new_object (if non-NULL), decrements the reference count of the current value of @object_ptr (if non-NULL), and assigns @new_object to @object_ptr. The assignment is not atomic.

@object_ptr must not be NULL, but can point to a NULL value.

A macro is also included that allows this function to be used without pointer casts. The function itself is static inline, so its address may vary between compilation units.

One convenient usage of this function is in implementing property setters: |[ void foo_set_bar (Foo *foo, Bar *new_bar) { g_return_if_fail (IS_FOO (foo)); g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));

if (g_set_object (&foo->bar, new_bar)) g_object_notify (foo, "bar"); } ]|

Returns: TRUE if the value of @object_ptr changed, FALSE otherwise

Since: 2.44

Definition at line 733 of file gobject.h.

736{
737 GObject *old_object = *object_ptr;
738
739 /* rely on g_object_[un]ref() to check the pointers are actually GObjects;
740 * elide a (object_ptr != NULL) check because most of the time we will be
741 * operating on struct members with a constant offset, so a NULL check would
742 * not catch bugs
743 */
744
745 if (old_object == new_object)
746 return FALSE;
747
748 if (new_object != NULL)
749 g_object_ref (new_object);
750
751 *object_ptr = new_object;
752
753 if (old_object != NULL)
754 g_object_unref (old_object);
755
756 return TRUE;
757}
#define TRUE
Definition gmacros.h:933
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref(gpointer object)

References FALSE, g_object_ref(), g_object_unref(), NULL, and TRUE.

◆ g_set_weak_pointer()

static gboolean g_set_weak_pointer ( gpointer * weak_pointer_location,
GObject * new_object )
inlinestatic

g_set_weak_pointer: (skip) @weak_pointer_location: the memory address of a pointer @new_object: (nullable) (transfer none): a pointer to the new GObject to assign to it, or NULL to clear the pointer

Updates a pointer to weakly refer to @new_object.

It assigns @new_object to @weak_pointer_location and ensures that @weak_pointer_location will automatically be set to NULL if @new_object gets destroyed. The assignment is not atomic. The weak reference is not thread-safe, see g_object_add_weak_pointer() for details.

The @weak_pointer_location argument must not be NULL.

A macro is also included that allows this function to be used without pointer casts. The function itself is static inline, so its address may vary between compilation units.

One convenient usage of this function is in implementing property setters: |[ void foo_set_bar (Foo *foo, Bar *new_bar) { g_return_if_fail (IS_FOO (foo)); g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));

if (g_set_weak_pointer (&foo->bar, new_bar)) g_object_notify (foo, "bar"); } ]|

Returns: TRUE if the value of @weak_pointer_location changed, FALSE otherwise

Since: 2.56

Definition at line 889 of file gobject.h.

892{
893 GObject *old_object = (GObject *) *weak_pointer_location;
894
895 /* elide a (weak_pointer_location != NULL) check because most of the time we
896 * will be operating on struct members with a constant offset, so a NULL
897 * check would not catch bugs
898 */
899
900 if (old_object == new_object)
901 return FALSE;
902
903 if (old_object != NULL)
904 g_object_remove_weak_pointer (old_object, weak_pointer_location);
905
906 *weak_pointer_location = new_object;
907
908 if (new_object != NULL)
909 g_object_add_weak_pointer (new_object, weak_pointer_location);
910
911 return TRUE;
912}

References FALSE, g_object_add_weak_pointer(), g_object_remove_weak_pointer(), NULL, and TRUE.

◆ g_signal_connect_object()

GOBJECT_AVAILABLE_IN_ALL gulong g_signal_connect_object ( gpointer instance,
const gchar * detailed_signal,
GCallback c_handler,
gpointer gobject,
GConnectFlags connect_flags )

◆ g_value_dup_object()

GOBJECT_AVAILABLE_IN_ALL gpointer g_value_dup_object ( const GValue * value)

◆ g_value_get_object()

GOBJECT_AVAILABLE_IN_ALL gpointer g_value_get_object ( const GValue * value)

◆ g_value_set_object()

GOBJECT_AVAILABLE_IN_ALL void g_value_set_object ( GValue * value,
gpointer v_object )

◆ g_value_set_object_take_ownership()

void g_value_set_object_take_ownership ( GValue * value,
gpointer v_object )

◆ g_value_take_object()

GOBJECT_AVAILABLE_IN_ALL void g_value_take_object ( GValue * value,
gpointer v_object )

◆ g_weak_ref_clear()

GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_clear ( GWeakRef * weak_ref)

◆ g_weak_ref_get()

GOBJECT_AVAILABLE_IN_ALL gpointer g_weak_ref_get ( GWeakRef * weak_ref)

◆ g_weak_ref_init()

GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_init ( GWeakRef * weak_ref,
gpointer object )

◆ g_weak_ref_set()

GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_set ( GWeakRef * weak_ref,
gpointer object )