import "glib/glib/gtypes" import "glib/glib/gslist" import "glib/gobject/gtype" import "glib/gobject/gparam" public [name="c"] struct GData; end struct GObject : local GTypeInstance private ref_count: guint private qdata: GData end struct GObjectClass : local GTypeClass private construct_properties: GSList public constructor: {GType, guint, GObjectConstructParam} GObject public set_property: {GObject, guint, GValue, GParamSpec} void public get_property: {GObject, guint, GValue, GParamSpec} void public dispose: {GObject} void public finalize: {GObject} void public dispatch_properties_changed: {GObject, guint, GParamSpec} void public notify: {GObject, GParamSpec} void private pdummy: [8] gpointer end struct GObjectConstructParam pspec: GParamSpec value: GValue end typedef GObjectGetPropertyFunc = {GObject, guint, GValue, GParamSpec} void typedef GObjectSetPropertyFunc = {GObject, guint, GValue, GParamSpec} void typedef GObjectFinalizeFunc = {GObject} void typedef GWeakNotify = {gpointer, GObject} void //import func g_object_new (GType,[]gchar, ...): gpointer import func g_object_ref (gpointer): gpointer import func g_object_unref (gpointer): void import func g_value_set_object (GValue,gpointer): void import func g_value_get_object (GValue): gpointer // Stub function because vararg not portable import func g_object_new_0 (GType): gpointer end