<Type Name="Table" FullName="Gtk.Table">
  <TypeSignature Language="C#" Value="public class Table : Gtk.Container, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="Lee Mallabone" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <AssemblyCulture>neutral</AssemblyCulture>
    <Attributes />
  </AssemblyInfo>
  <ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
  <Docs>
    <summary>Pack widgets in grid/table patterns.</summary>
    <remarks>
      <para>The Table widget allows a programmer to arrange widgets in rows and columns, making it easy to align many widgets adjacent to each other, horizontally and vertically.</para>
      <para>Tables are created with a specific size - the number of rows and columns. This can be changed dynamically with the <see cref="M:Gtk.Table.Resize" /> method. Widgets are packed into the table with <see cref="M:Gtk.Table.Attach" /> methods.</para>
      <para>The layout of a table can be altered by setting the spacing between rows and columns. This is done with the <see cref="P:Gtk.Table.ColumnSpacing" /> and <see cref="P:Gtk.Table.RowSpacing" /> properties, respectively. The spacing of individual cells can be adjusted with <see cref="M:Gtk.Table.SetColSpacing" /> and <see cref="M:Gtk.Table.SetRowSpacing" />.</para>
      <para>The following shows how to create a table with three widgets:
    <example>
          <code lang="C#">
public Widget MakeTableTester()
{
	// Create a table with 2 rows and 1 column
	Table tableLayout = new Table(2, 1, false);
	Label longLabel = new Label("This is a label that spans at least two Entry widgets");
	
	// Attach the label over the entire first row
	tableLayout.Attach(longLabel,   0, 2, 0, 1);
	// Attach an entry to each cell in the second row
	tableLayout.Attach(new Entry(), 0, 1, 1, 2);
	tableLayout.Attach(new Entry(), 1, 2, 1, 2);
	
	tableLayout.ShowAll();
	return tableLayout;
}
    </code>
        </example></para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Container</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>Atk.Implementor</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>GLib.IWrapper</InterfaceName>
    </Interface>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
  </Interfaces>
  <Attributes />
  <Members>
    <Member MemberName="SetColSpacing">
      <MemberSignature Language="C#" Value="public void SetColSpacing (uint column, uint spacing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="System.UInt32" />
        <Parameter Name="spacing" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Sets the spacing around a specified column.</summary>
        <param name="column">A zero-indexed column number to adjust the spacing of.</param>
        <param name="spacing">The number of pixels on each side of the <paramref name="column" />.</param>
        <remarks>
          <para>To adjust the spacing between all columns, use the <see cref="P:Gtk.Table.ColumnSpacing" /> property.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetColSpacing">
      <MemberSignature Language="C#" Value="public uint GetColSpacing (uint column);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>The spacing currently set for a given column.</summary>
        <param name="column">A zero-indexed column number to retrieve spacing information from.</param>
        <returns>The number of pixels of spacing assigned to the specified <paramref name="column" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetRowSpacing">
      <MemberSignature Language="C#" Value="public void SetRowSpacing (uint row, uint spacing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="row" Type="System.UInt32" />
        <Parameter Name="spacing" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Sets the spacing around a specified row.</summary>
        <param name="row">A zero-indexed row number to adjust the spacing of.</param>
        <param name="spacing">The number of pixels on each side of the <paramref name="row" />.</param>
        <remarks>
          <para>To adjust the spacing between all rows, use the <see cref="P:Gtk.Table.RowSpacing" /> property.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetRowSpacing">
      <MemberSignature Language="C#" Value="public uint GetRowSpacing (uint row);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="row" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>The spacing currently set for a given row.</summary>
        <param name="row">A zero-indexed row number to retrieve spacing information from.</param>
        <returns>The number of pixels of spacing assigned to the specified <paramref name="row" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Resize">
      <MemberSignature Language="C#" Value="public void Resize (uint rows, uint columns);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rows" Type="System.UInt32" />
        <Parameter Name="columns" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Resizes the table so that the specified number of <paramref name="rows" />  and <paramref name="columns" /> are available for widget packing.</summary>
        <param name="rows">The new number of rows this table should allow.</param>
        <param name="columns">The new number of columns this table should allow.</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Attach">
      <MemberSignature Language="C#" Value="public void Attach (Gtk.Widget child, uint left_attach, uint right_attach, uint top_attach, uint bottom_attach, Gtk.AttachOptions xoptions, Gtk.AttachOptions yoptions, uint xpadding, uint ypadding);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
        <Parameter Name="left_attach" Type="System.UInt32" />
        <Parameter Name="right_attach" Type="System.UInt32" />
        <Parameter Name="top_attach" Type="System.UInt32" />
        <Parameter Name="bottom_attach" Type="System.UInt32" />
        <Parameter Name="xoptions" Type="Gtk.AttachOptions" />
        <Parameter Name="yoptions" Type="Gtk.AttachOptions" />
        <Parameter Name="xpadding" Type="System.UInt32" />
        <Parameter Name="ypadding" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Packs a widget into the table.</summary>
        <param name="child">The <see cref="T:Gtk.Widget" /> to add.</param>
        <param name="left_attach">The column number to attach the left side of <paramref name="child" /> to.</param>
        <param name="right_attach">The column number to attach the right side of <paramref name="child" /> to.</param>
        <param name="top_attach">The row number to attach the top of <paramref name="child" /> to.</param>
        <param name="bottom_attach">The row number to attach the bottom of <paramref name="child" /> to.</param>
        <param name="xoptions">The horizontal packing options for this <paramref name="child" />.</param>
        <param name="yoptions">The vertical packing options for this <paramref name="child" />.</param>
        <param name="xpadding">The number of pixels of padding to add to the left and right of <paramref name="child" />.</param>
        <param name="ypadding">The number of pixels of padding to add to the top and bottom of <paramref name="child" />.</param>
        <remarks>
          <para>You can pack widgets into the Table using default packing and padding with the <see cref="M:Gtk.Table.Attach(Gtk.Widget,uint,uint,uint,uint)" /> convenience method.</para>
          <para>Child widgets can span as many table cells as they wish, allowing the programmer to create complex grids of Widgets.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Attach">
      <MemberSignature Language="C#" Value="public void Attach (Gtk.Widget widget, uint left_attach, uint right_attach, uint top_attach, uint bottom_attach);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="widget" Type="Gtk.Widget" />
        <Parameter Name="left_attach" Type="System.UInt32" />
        <Parameter Name="right_attach" Type="System.UInt32" />
        <Parameter Name="top_attach" Type="System.UInt32" />
        <Parameter Name="bottom_attach" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <summary>Packs a widget into the table with default packing options.</summary>
        <param name="child">The <see cref="T:Gtk.Widget" /> to add.</param>
        <param name="left_attach">The column number to attach the left side of <paramref name="child" /> to.</param>
        <param name="right_attach">The column number to attach the right side of <paramref name="child" /> to.</param>
        <param name="top_attach">The row number to attach the top of <paramref name="child" /> to.</param>
        <param name="bottom_attach">The row number to attach the bottom of <paramref name="child" /> to.</param>
        <remarks>
          <para>To pack widgets into the table with more control over size and padding, use the alternative <see cref="M:Gtk.Table.Attach(Gtk.Widget,uint,uint,uint,uint,Gtk.AttachOptions,Gtk.AttachOptions,uint,uint)" /> method.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="protected override void Finalize ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Disposes the resources associated with the object.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Table (IntPtr raw);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="raw">Pointer to the C object.</param>
        <returns>An instance of Table, wrapping the C object.</returns>
        <remarks>
          <para>This is an internal constructor, and should not be used by user code.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Table (uint rows, uint columns, bool homogeneous);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="rows" Type="System.UInt32" />
        <Parameter Name="columns" Type="System.UInt32" />
        <Parameter Name="homogeneous" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <summary>Creates a new Table widget.</summary>
        <param name="rows">The number of rows in this table.</param>
        <param name="columns">The number of columns in this table.</param>
        <param name="homogeneous">If homogeneous is TRUE, the table boxes (cells)  are resized to the size of the largest widget in the table. If homogeneous is FALSE, the size of a table boxes is dictated by the tallest widget in its same row, and the widest widget in its column (i.e. all cells are the same).</param>
        <returns>A new Table.</returns>
        <remarks>
          <para>The size of the table can be altered after its creation using the <see cref="M:Gtk.able.Resize" /> method.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="DefaultRowSpacing">
      <MemberSignature Language="C#" Value="public uint DefaultRowSpacing { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Retrieve the spacing that gets placed between newly added rows by default.</summary>
        <returns>Spacing between rows that will be added, in pixels.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DefaultColSpacing">
      <MemberSignature Language="C#" Value="public uint DefaultColSpacing { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The default number of pixels between columns.</summary>
        <returns>A <see cref="T:System.UInt32" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="ColumnSpacing">
      <MemberSignature Language="C#" Value="public uint ColumnSpacing { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The number of pixels between columns if it isn't the default value.</summary>
        <param name="value">
          <see cref="T:System.UInt32" />.</param>
        <returns>A <see cref="T:System.UInt32" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="NColumns">
      <MemberSignature Language="C#" Value="public uint NColumns { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the number of columns in this Table.</summary>
        <param name="value">The number of columns that this table should have.</param>
        <returns>The number of columns this table currently has.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Homogeneous">
      <MemberSignature Language="C#" Value="public bool Homogeneous { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage whether all cells must be of equal size.</summary>
        <param name="value">
          <see langword="true" /> to set all cells to an equal size, <see langword="false" /> otherwise.</param>
        <returns>
          <see langword="true" /> if all cells are currently equally sized, <see langword="false" /> otherwise.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RowSpacing">
      <MemberSignature Language="C#" Value="public uint RowSpacing { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The space between table rows.</summary>
        <param name="value">A <see cref="T:System.UInt32" />.</param>
        <returns>
          <see cref="T:System.UInt32" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="NRows">
      <MemberSignature Language="C#" Value="public uint NRows { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the number of rows in this Table.</summary>
        <param name="value">The number of rows that this table should have.</param>
        <returns>The number of rows this table currently has.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <returns>a <see cref="T:GLib.GType" /></returns>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.Table" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Table (GLib.GType gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="gtype" Type="GLib.GType" />
      </Parameters>
      <Docs>
        <summary>Protected Constructor.</summary>
        <param name="gtype">a <see cref="T:GLib.GType" /></param>
        <returns>a <see cref="T:Gtk.Table" /></returns>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Item">
      <MemberSignature Language="C#" Value="public override Gtk.Container+ContainerChild Item { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Container+ContainerChild</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <summary>Accessor for child property items</summary>
        <param name="child">a child of this table</param>
        <returns>a <see cref="T:Gtk.Container+ContainerChild" /></returns>
        <remarks>You can cast the returned object to <see cref="T:Gtk.Table+TableChild" /> to access its child properties.</remarks>
      </Docs>
    </Member>
  </Members>
</Type>