mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-12-24 16:15:40 +00:00
* atk/Object.custom:
* atk/glue/object.c: Implement virtual method OnRefStateSet(). svn path=/trunk/gtk-sharp/; revision=105160
This commit is contained in:
parent
be458c5034
commit
15cf27b0dd
|
@ -1,3 +1,8 @@
|
||||||
|
2008-06-06 Andres G. Aragoneses <aaragoneses@novell.com>
|
||||||
|
|
||||||
|
* atk/Object.custom:
|
||||||
|
* atk/glue/object.c: Implement virtual method OnRefStateSet().
|
||||||
|
|
||||||
2008-05-30 Mike Kestner <mkestner@novell.com>
|
2008-05-30 Mike Kestner <mkestner@novell.com>
|
||||||
|
|
||||||
* gdk/Pixbuf.custom: don't use the autogenerated PixbufDestroyNative
|
* gdk/Pixbuf.custom: don't use the autogenerated PixbufDestroyNative
|
||||||
|
|
|
@ -105,3 +105,43 @@
|
||||||
Remove
|
Remove
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport("atksharpglue-2")]
|
||||||
|
static extern void atksharp_object_override_ref_state_set (IntPtr type, RefStateSetDelegate cb);
|
||||||
|
|
||||||
|
[DllImport("atksharpglue-2")]
|
||||||
|
static extern IntPtr atksharp_object_base_ref_state_set (IntPtr atk_obj);
|
||||||
|
|
||||||
|
[GLib.CDeclCallback]
|
||||||
|
delegate IntPtr RefStateSetDelegate (IntPtr raw);
|
||||||
|
|
||||||
|
static RefStateSetDelegate RefStateSetCallback;
|
||||||
|
|
||||||
|
static IntPtr RefStateSet_cb (IntPtr raw)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
Atk.Object obj = GLib.Object.GetObject (raw, false) as Atk.Object;
|
||||||
|
Atk.StateSet state_set = obj.OnRefStateSet ();
|
||||||
|
if (state_set != null)
|
||||||
|
g_object_ref (state_set.Handle);
|
||||||
|
return state_set == null ? IntPtr.Zero : state_set.Handle;
|
||||||
|
} catch (Exception e) {
|
||||||
|
GLib.ExceptionManager.RaiseUnhandledException (e, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return IntPtr.Zero;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OverrideRefStateSet (GLib.GType gtype)
|
||||||
|
{
|
||||||
|
if (RefStateSetCallback == null)
|
||||||
|
RefStateSetCallback = new RefStateSetDelegate (RefStateSet_cb);
|
||||||
|
atksharp_object_override_ref_state_set (gtype.Val, RefStateSetCallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
[GLib.DefaultSignalHandler (Type=typeof(Atk.Object), ConnectionMethod="OverrideRefStateSet")]
|
||||||
|
protected virtual Atk.StateSet OnRefStateSet () {
|
||||||
|
IntPtr raw = atksharp_object_base_ref_state_set (Handle);
|
||||||
|
return (Atk.StateSet) GLib.Object.GetObject(raw, true);
|
||||||
|
}
|
||||||
|
|
|
@ -26,6 +26,11 @@ void atksharp_object_override_get_n_children (GType gtype, gpointer cb);
|
||||||
|
|
||||||
void atksharp_object_override_ref_child (GType gtype, gpointer cb);
|
void atksharp_object_override_ref_child (GType gtype, gpointer cb);
|
||||||
|
|
||||||
|
void atksharp_object_override_ref_state_set (GType gtype, gpointer cb);
|
||||||
|
|
||||||
|
AtkStateSet* atksharp_object_base_ref_state_set (AtkObject *base);
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
atksharp_object_override_get_n_children (GType gtype, gpointer cb)
|
atksharp_object_override_get_n_children (GType gtype, gpointer cb)
|
||||||
{
|
{
|
||||||
|
@ -43,3 +48,21 @@ atksharp_object_override_ref_child (GType gtype, gpointer cb)
|
||||||
klass = g_type_class_ref (gtype);
|
klass = g_type_class_ref (gtype);
|
||||||
((AtkObjectClass *) klass)->ref_child = cb;
|
((AtkObjectClass *) klass)->ref_child = cb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
atksharp_object_override_ref_state_set (GType gtype, gpointer cb)
|
||||||
|
{
|
||||||
|
AtkObjectClass *klass = g_type_class_peek (gtype);
|
||||||
|
if (!klass)
|
||||||
|
klass = g_type_class_ref (gtype);
|
||||||
|
((AtkObjectClass *) klass)->ref_state_set = cb;
|
||||||
|
}
|
||||||
|
|
||||||
|
AtkStateSet*
|
||||||
|
atksharp_object_base_ref_state_set (AtkObject *atk_obj)
|
||||||
|
{
|
||||||
|
AtkObjectClass *parent = g_type_class_peek_parent (G_OBJECT_GET_CLASS (atk_obj));
|
||||||
|
if (parent->ref_state_set)
|
||||||
|
return (*parent->ref_state_set) (atk_obj);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue