Fixed Container.ChildGetProperty
Properly marshal `gtk_container_class_find_child_property` with return type of pointer instead of struct. When marshal pointer to struct manually.
This commit is contained in:
parent
bc3a55f71b
commit
7dbde29178
1 changed files with 8 additions and 7 deletions
|
@ -27,12 +27,12 @@ namespace Gtk
|
||||||
|
|
||||||
public partial class Container : IEnumerable
|
public partial class Container : IEnumerable
|
||||||
{
|
{
|
||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
delegate GParamSpec d_gtk_container_class_find_child_property(IntPtr cclass, string property_name);
|
delegate IntPtr d_gtk_container_class_find_child_property(IntPtr cclass, string property_name);
|
||||||
static d_gtk_container_class_find_child_property gtk_container_class_find_child_property = FuncLoader.LoadFunction<d_gtk_container_class_find_child_property>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_container_class_find_child_property"));
|
static d_gtk_container_class_find_child_property gtk_container_class_find_child_property = FuncLoader.LoadFunction<d_gtk_container_class_find_child_property>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_container_class_find_child_property"));
|
||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
delegate void d_gtk_container_child_get_property(IntPtr container, IntPtr child, string property_name, ref GLib.Value value);
|
delegate void d_gtk_container_child_get_property(IntPtr container, IntPtr child, string property_name, ref GLib.Value value);
|
||||||
static d_gtk_container_child_get_property gtk_container_child_get_property = FuncLoader.LoadFunction<d_gtk_container_child_get_property>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_container_child_get_property"));
|
static d_gtk_container_child_get_property gtk_container_child_get_property = FuncLoader.LoadFunction<d_gtk_container_child_get_property>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_container_child_get_property"));
|
||||||
|
|
||||||
struct GTypeInstance
|
struct GTypeInstance
|
||||||
{
|
{
|
||||||
|
@ -59,7 +59,8 @@ namespace Gtk
|
||||||
{
|
{
|
||||||
var value = new GLib.Value();
|
var value = new GLib.Value();
|
||||||
var cclass = ((GTypeInstance)Marshal.PtrToStructure(Handle, typeof(GTypeInstance))).GTypeClass;
|
var cclass = ((GTypeInstance)Marshal.PtrToStructure(Handle, typeof(GTypeInstance))).GTypeClass;
|
||||||
var prop = gtk_container_class_find_child_property(cclass, property_name);
|
var propPtr = gtk_container_class_find_child_property(cclass, property_name);
|
||||||
|
var prop = (GParamSpec)Marshal.PtrToStructure(propPtr, typeof(GParamSpec));
|
||||||
|
|
||||||
value.Init(prop.value_type);
|
value.Init(prop.value_type);
|
||||||
gtk_container_child_get_property(Handle, child.Handle, property_name, ref value);
|
gtk_container_child_get_property(Handle, child.Handle, property_name, ref value);
|
||||||
|
|
Loading…
Reference in a new issue