22#if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
23#error "Only <glib-object.h> can be included directly."
44#define G_TYPE_IS_OBJECT(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT)
54#define G_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject))
61#define G_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass))
68#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42
69#define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((object), G_TYPE_OBJECT))
71#define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT))
80#define G_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT))
89#define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass))
98#define G_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object))
108#define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object)))
117#define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
127#define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class)))
136#define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT))
144#define G_TYPE_INITIALLY_UNOWNED (g_initially_unowned_get_type())
155#define G_INITIALLY_UNOWNED(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnowned))
163#define G_INITIALLY_UNOWNED_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
170#define G_IS_INITIALLY_UNOWNED(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_INITIALLY_UNOWNED))
178#define G_IS_INITIALLY_UNOWNED_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_INITIALLY_UNOWNED))
187#define G_INITIALLY_UNOWNED_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_INITIALLY_UNOWNED, GInitiallyUnownedClass))
250 GObject *where_the_object_was);
406 const gchar *property_name);
409 guint *n_properties);
424 const gchar *property_name);
427 guint *n_properties_p);
433 const gchar *first_property_name,
446 GParameter *parameters);
452 const
gchar *first_property_name,
456 const
gchar *first_property_name,
460 const
gchar *first_property_name,
464 const
gchar *signal_spec,
468 const
gchar *signal_spec,
473 const
gchar *names[],
477 const
gchar *first_property_name,
482 const
gchar *names[],
486 const
gchar *first_property_name,
490 const
gchar *property_name,
494 const
gchar *property_name,
500 const
gchar *property_name);
531#if defined(glib_typeof) && GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_56
533#define g_object_ref(Obj) ((glib_typeof (Obj)) (g_object_ref) (Obj))
534#define g_object_ref_sink(Obj) ((glib_typeof (Obj)) (g_object_ref_sink) (Obj))
644 const gchar *detailed_signal,
668#define G_OBJECT_WARN_INVALID_PSPEC(object, pname, property_id, pspec) \
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__, \
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)); \
690#define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) \
691 G_OBJECT_WARN_INVALID_PSPEC ((object), "property", (property_id), (pspec))
695#define g_clear_object(object_ptr) g_clear_pointer ((object_ptr), g_object_unref)
737 GObject *old_object = *object_ptr;
745 if (old_object == new_object)
748 if (new_object !=
NULL)
751 *object_ptr = new_object;
753 if (old_object !=
NULL)
762#define g_set_object(object_ptr, new_object) \
763 (G_GNUC_EXTENSION ({ \
764 G_STATIC_ASSERT (sizeof *(object_ptr) == sizeof (new_object)); \
766 union { char *in; GObject **out; } _object_ptr; \
767 _object_ptr.in = (char *) (object_ptr); \
769 (void) (0 ? *(object_ptr) = (new_object), FALSE : FALSE); \
770 (g_set_object) (_object_ptr.out, (GObject *) new_object); \
772 GOBJECT_AVAILABLE_MACRO_IN_2_44
776#define g_set_object(object_ptr, new_object) \
778 0 ? *(object_ptr) = (new_object), FALSE : \
779 (g_set_object) ((GObject **) (object_ptr), (GObject *) (new_object)) \
810#ifdef G_DISABLE_ASSERT
811#define g_assert_finalize_object(object) g_object_unref (object)
813#define g_assert_finalize_object(object) (g_assert_finalize_object ((GObject *) object))
842 *weak_pointer_location =
NULL;
846#define g_clear_weak_pointer(weak_pointer_location) \
848 (g_clear_weak_pointer) ((gpointer *) (weak_pointer_location)) \
900 if (old_object == new_object)
903 if (old_object !=
NULL)
906 *weak_pointer_location = new_object;
908 if (new_object !=
NULL)
914#define g_set_weak_pointer(weak_pointer_location, new_object) \
916 0 ? *(weak_pointer_location) = (new_object), FALSE : \
917 (g_set_weak_pointer) ((gpointer *) (weak_pointer_location), (GObject *) (new_object)) \
typedefG_BEGIN_DECLS struct _GData GData
gpointer(* GDuplicateFunc)(gpointer data, gpointer user_data)
#define G_GNUC_NULL_TERMINATED
#define G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#define G_GNUC_END_IGNORE_DEPRECATIONS
#define GOBJECT_AVAILABLE_IN_2_34
#define GOBJECT_AVAILABLE_IN_2_54
#define GOBJECT_AVAILABLE_IN_2_70
#define GOBJECT_AVAILABLE_IN_ALL
#define GOBJECT_DEPRECATED_FOR(f)
#define GOBJECT_DEPRECATED
#define GOBJECT_DEPRECATED_IN_2_54_FOR(f)
GOBJECT_AVAILABLE_IN_2_54 void g_object_getv(GObject *object, guint n_properties, const gchar *names[], GValue values[])
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_weak_unref(GObject *object, GWeakNotify notify, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_value_set_object(GValue *value, gpointer v_object)
G_GNUC_BEGIN_IGNORE_DEPRECATIONS gpointer g_object_newv(GType object_type, guint n_parameters, GParameter *parameters)
GOBJECT_AVAILABLE_IN_ALL void g_object_thaw_notify(GObject *object)
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)
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_notify(GObject *object, const gchar *property_name)
GOBJECT_AVAILABLE_IN_ALL GParamSpec * g_object_interface_find_property(gpointer g_iface, const gchar *property_name)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_data(GObject *object, const gchar *key)
GOBJECT_AVAILABLE_IN_2_34 gboolean g_object_replace_qdata(GObject *object, GQuark quark, gpointer oldval, gpointer newval, GDestroyNotify destroy, GDestroyNotify *old_destroy)
void g_value_set_object_take_ownership(GValue *value, gpointer v_object)
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_70 gpointer g_object_take_ref(gpointer object)
GOBJECT_AVAILABLE_IN_ALL gpointer g_value_dup_object(const GValue *value)
#define g_set_object(object_ptr, new_object)
GOBJECT_AVAILABLE_IN_ALL void g_object_watch_closure(GObject *object, GClosure *closure)
#define g_assert_finalize_object(object)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_data(GObject *object, const gchar *key)
GOBJECT_AVAILABLE_IN_ALL gulong g_signal_connect_object(gpointer instance, const gchar *detailed_signal, GCallback c_handler, gpointer gobject, GConnectFlags connect_flags)
#define g_clear_object(object_ptr)
GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_properties(GObjectClass *oclass, guint n_pspecs, GParamSpec **pspecs)
GOBJECT_AVAILABLE_IN_ALL void g_object_notify_by_pspec(GObject *object, GParamSpec *pspec)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref(gpointer object)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new_object(GCallback callback_func, GObject *object)
GOBJECT_AVAILABLE_IN_ALL gpointer g_weak_ref_get(GWeakRef *weak_ref)
GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_class_list_properties(GObjectClass *oclass, guint *n_properties)
GOBJECT_AVAILABLE_IN_ALL void g_object_freeze_notify(GObject *object)
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_set_qdata(GObject *object, GQuark quark, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_object_get(gpointer object, const gchar *first_property_name,...) G_GNUC_NULL_TERMINATED
GOBJECT_AVAILABLE_IN_ALL void g_object_get_property(GObject *object, const gchar *property_name, GValue *value)
GOBJECT_AVAILABLE_IN_ALL GClosure * g_closure_new_object(guint sizeof_closure, GObject *object)
void(* GWeakNotify)(gpointer data, GObject *where_the_object_was)
GOBJECT_AVAILABLE_IN_ALL void g_object_force_floating(GObject *object)
GOBJECT_AVAILABLE_IN_ALL void g_object_set_property(GObject *object, const gchar *property_name, const GValue *value)
GOBJECT_AVAILABLE_IN_ALL void g_value_take_object(GValue *value, gpointer v_object)
GOBJECT_AVAILABLE_IN_ALL void g_object_set_data_full(GObject *object, const gchar *key, gpointer data, GDestroyNotify destroy)
GOBJECT_AVAILABLE_IN_2_34 gpointer g_object_dup_qdata(GObject *object, GQuark quark, GDuplicateFunc dup_func, gpointer user_data)
void(* GObjectFinalizeFunc)(GObject *object)
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_clear(GWeakRef *weak_ref)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_get_qdata(GObject *object, GQuark quark)
GOBJECT_AVAILABLE_IN_ALL GType g_object_get_type(void) G_GNUC_CONST
GOBJECT_AVAILABLE_IN_ALL void g_object_add_toggle_ref(GObject *object, GToggleNotify notify, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_object_class_install_property(GObjectClass *oclass, guint property_id, GParamSpec *pspec)
GOBJECT_AVAILABLE_IN_ALL void g_object_disconnect(gpointer object, const gchar *signal_spec,...) G_GNUC_NULL_TERMINATED
GOBJECT_DEPRECATED gsize g_object_compat_control(gsize what, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_object_remove_weak_pointer(GObject *object, gpointer *weak_pointer_location)
GOBJECT_AVAILABLE_IN_ALL gboolean g_object_is_floating(gpointer object)
GOBJECT_AVAILABLE_IN_ALL void g_object_remove_toggle_ref(GObject *object, GToggleNotify notify, gpointer data)
#define G_IS_OBJECT(object)
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 GObject * g_object_new_with_properties(GType object_type, guint n_properties, const char *names[], const GValue values[])
GOBJECT_AVAILABLE_IN_ALL GClosure * g_cclosure_new_object_swap(GCallback callback_func, GObject *object)
GOBJECT_AVAILABLE_IN_ALL GType g_initially_unowned_get_type(void)
GOBJECT_AVAILABLE_IN_ALL GParamSpec ** g_object_interface_list_properties(gpointer g_iface, guint *n_properties_p)
GOBJECT_AVAILABLE_IN_ALL gpointer g_value_get_object(const GValue *value)
#define g_set_weak_pointer(weak_pointer_location, new_object)
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 GParamSpec * g_object_class_find_property(GObjectClass *oclass, const gchar *property_name)
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(gpointer object, const gchar *first_property_name,...) G_GNUC_NULL_TERMINATED
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_steal_qdata(GObject *object, GQuark quark)
GOBJECT_AVAILABLE_IN_ALL void g_object_interface_install_property(gpointer g_iface, GParamSpec *pspec)
GOBJECT_AVAILABLE_IN_ALL void g_object_set_data(GObject *object, const gchar *key, gpointer data)
GOBJECT_AVAILABLE_IN_ALL void g_object_weak_ref(GObject *object, GWeakNotify notify, gpointer data)
#define g_clear_weak_pointer(weak_pointer_location)
void(* GObjectGetPropertyFunc)(GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
GOBJECT_AVAILABLE_IN_ALL void g_object_add_weak_pointer(GObject *object, gpointer *weak_pointer_location)
void(* GObjectSetPropertyFunc)(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
GOBJECT_AVAILABLE_IN_ALL void g_object_set_qdata_full(GObject *object, GQuark quark, gpointer data, GDestroyNotify destroy)
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_init(GWeakRef *weak_ref, gpointer object)
GOBJECT_AVAILABLE_IN_ALL void g_weak_ref_set(GWeakRef *weak_ref, gpointer object)
void(* GToggleNotify)(gpointer data, GObject *object, gboolean is_last_ref)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_ref_sink(gpointer object)
GOBJECT_AVAILABLE_IN_ALL gpointer g_object_new(GType object_type, const gchar *first_property_name,...)
GOBJECT_AVAILABLE_IN_ALL void g_object_unref(gpointer object)
GOBJECT_AVAILABLE_IN_ALL void g_object_run_dispose(GObject *object)
G_BEGIN_DECLS typedef guint32 GQuark
typedefG_BEGIN_DECLS struct _GSList GSList
#define g_assert_true(expr)
#define g_assert_null(expr)
G_BEGIN_DECLS typedef char gchar
void(* GDestroyNotify)(gpointer data)
void(* finalize)(GObject *object)
void(* constructed)(GObject *object)
void(* dispatch_properties_changed)(GObject *object, guint n_pspecs, GParamSpec **pspecs)
gsize n_construct_properties
GSList * construct_properties
void(* set_property)(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
void(* notify)(GObject *object, GParamSpec *pspec)
void(* get_property)(GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
void(* dispose)(GObject *object)
GTypeInstance g_type_instance