// FIXME: This is also seriously LAME. The MinSliderSize property is "protected" // according to gtkrange.h, and thus should be exposed and accessible through // this sub-class, but GAPI does not bind protected structure fields. LAME LAME. [DllImport("libgobject-2.0-0.dll")] private static extern void g_type_query(IntPtr type, IntPtr query); private int min_slider_size_offset = -1; public int MinSliderSize { get { if(min_slider_size_offset < 0) { IntPtr query = Marshal.AllocHGlobal(5 * IntPtr.Size); g_type_query(Gtk.Widget.GType.Val, query); min_slider_size_offset = (int)Marshal.ReadIntPtr(query, 2 * IntPtr.Size + 4) + IntPtr.Size + 8; Marshal.FreeHGlobal(query); } int size = (int)Marshal.ReadIntPtr(Handle, min_slider_size_offset); Console.WriteLine(size); return size; } }