context: // This file was generated by the Gtk# code generator.
  // Any changes made will be lost if regenerated.
  
  namespace Gtk {
  
  	using System;
  	using System.Collections;
  	using System.Collections.Generic;
  	using System.Runtime.InteropServices;
  
  #region Autogenerated code
  	public partial class Layout : Gtk.Container, Gtk.IScrollable {
  
  		public Layout (IntPtr raw) : base(raw) {}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gtk_layout_new(IntPtr hadjustment, IntPtr vadjustment);
  
  		public Layout (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment) : base (IntPtr.Zero)
  		{
  			if (GetType () != typeof (Layout)) {
  				var vals = new List<GLib.Value> ();
  				var names = new List<string> ();
  				if (hadjustment != null) {
  					names.Add ("hadjustment");
  					vals.Add (new GLib.Value (hadjustment));
  				}
  				if (vadjustment != null) {
  					names.Add ("vadjustment");
  					vals.Add (new GLib.Value (vadjustment));
  				}
  				CreateNativeObject (names.ToArray (), vals.ToArray ());
  				return;
  			}
  			Raw = gtk_layout_new(hadjustment == null ? IntPtr.Zero : hadjustment.Handle, vadjustment == null ? IntPtr.Zero : vadjustment.Handle);
  		}
  
  		[GLib.Property ("width")]
  		public uint Width {
  			get {
  				GLib.Value val = GetProperty ("width");
  				uint ret = (uint) val;
  				val.Dispose ();
  				return ret;
  			}
  			set {
  				GLib.Value val = new GLib.Value(value);
  				SetProperty("width", val);
  				val.Dispose ();
  			}
  		}
  
  		[GLib.Property ("height")]
  		public uint Height {
  			get {
  				GLib.Value val = GetProperty ("height");
  				uint ret = (uint) val;
  				val.Dispose ();
  				return ret;
  			}
  			set {
  				GLib.Value val = new GLib.Value(value);
  				SetProperty("height", val);
  				val.Dispose ();
  			}
  		}
  
  		public class LayoutChild : Gtk.Container.ContainerChild {
  			protected internal LayoutChild (Gtk.Container parent, Gtk.Widget child) : base (parent, child) {}
  
  			[Gtk.ChildProperty ("x")]
  			public int X {
  				get {
  					GLib.Value val = parent.ChildGetProperty (child, "x");
  					int ret = (int) val;
  					val.Dispose ();
  					return ret;
  				}
  				set {
  					GLib.Value val = new GLib.Value(value);
  					parent.ChildSetProperty(child, "x", val);
  					val.Dispose ();
  				}
  			}
  
  			[Gtk.ChildProperty ("y")]
  			public int Y {
  				get {
  					GLib.Value val = parent.ChildGetProperty (child, "y");
  					int ret = (int) val;
  					val.Dispose ();
  					return ret;
  				}
  				set {
  					GLib.Value val = new GLib.Value(value);
  					parent.ChildSetProperty(child, "y", val);
  					val.Dispose ();
  				}
  			}
  
  		}
  
  		public override Gtk.Container.ContainerChild this [Gtk.Widget child] {
  			get {
  				return new LayoutChild (this, child);
  			}
  		}
  
  		[StructLayout (LayoutKind.Sequential)]
  		struct GtkLayoutClass {
  			IntPtr GtkReserved1;
  			IntPtr GtkReserved2;
  			IntPtr GtkReserved3;
  			IntPtr GtkReserved4;
  		}
  
  		static uint class_offset = ((GLib.GType) typeof (Gtk.Container)).GetClassSize ();
  		static Dictionary<GLib.GType, GtkLayoutClass> class_structs;
  
  		static GtkLayoutClass GetClassStruct (GLib.GType gtype, bool use_cache)
  		{
  			if (class_structs == null)
  				class_structs = new Dictionary<GLib.GType, GtkLayoutClass> ();
  
  			if (use_cache && class_structs.ContainsKey (gtype))
  				return class_structs [gtype];
  			else {
  				IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);
  				GtkLayoutClass class_struct = (GtkLayoutClass) Marshal.PtrToStructure (class_ptr, typeof (GtkLayoutClass));
  				if (use_cache)
  					class_structs.Add (gtype, class_struct);
  				return class_struct;
  			}
  		}
  
  		static void OverrideClassStruct (GLib.GType gtype, GtkLayoutClass class_struct)
  		{
  			IntPtr class_ptr = new IntPtr (gtype.GetClassPtr ().ToInt64 () + class_offset);
  			Marshal.StructureToPtr (class_struct, class_ptr, false);
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gtk_layout_get_bin_window(IntPtr raw);
  
  		public Gdk.Window BinWindow { 
  			get {
  				IntPtr raw_ret = gtk_layout_get_bin_window(Handle);
  				Gdk.Window ret = GLib.Object.GetObject(raw_ret) as Gdk.Window;
  				return ret;
  			}
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_layout_get_size(IntPtr raw, out uint width, out uint height);
  
  		public void GetSize(out uint width, out uint height) {
  			gtk_layout_get_size(Handle, out width, out height);
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gtk_layout_get_type();
  
  		public static new GLib.GType GType { 
  			get {
  				IntPtr raw_ret = gtk_layout_get_type();
  				GLib.GType ret = new GLib.GType(raw_ret);
  				return ret;
  			}
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_layout_move(IntPtr raw, IntPtr child_widget, int x, int y);
  
  		public void Move(Gtk.Widget child_widget, int x, int y) {
  			gtk_layout_move(Handle, child_widget == null ? IntPtr.Zero : child_widget.Handle, x, y);
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_layout_put(IntPtr raw, IntPtr child_widget, int x, int y);
  
  		public void Put(Gtk.Widget child_widget, int x, int y) {
  			gtk_layout_put(Handle, child_widget == null ? IntPtr.Zero : child_widget.Handle, x, y);
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_layout_set_size(IntPtr raw, uint width, uint height);
  
  		public void SetSize(uint width, uint height) {
  			gtk_layout_set_size(Handle, width, height);
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gtk_scrollable_get_hadjustment(IntPtr raw);
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_scrollable_set_hadjustment(IntPtr raw, IntPtr hadjustment);
  
  		[GLib.Property ("hadjustment")]
  		public Gtk.Adjustment Hadjustment {
  			get  {
  				IntPtr raw_ret = gtk_scrollable_get_hadjustment(Handle);
  				Gtk.Adjustment ret = GLib.Object.GetObject(raw_ret) as Gtk.Adjustment;
  				return ret;
  			}
  			set  {
  				gtk_scrollable_set_hadjustment(Handle, value == null ? IntPtr.Zero : value.Handle);
  			}
  		}
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern IntPtr gtk_scrollable_get_vadjustment(IntPtr raw);
  
  		[DllImport("libgtk-3-0.dll", CallingConvention = CallingConvention.Cdecl)]
  		static extern void gtk_scrollable_set_vadjustment(IntPtr raw, IntPtr vadjustment);
  
  		[GLib.Property ("vadjustment")]
  		public Gtk.Adjustment Vadjustment {
  			get  {
  
gt: 				IntPtr raw_ret = gtk_scrollable_get_vadjustment(Handle);