<Type Name="Table" FullName="Gtk.Table">
  <TypeSignature Language="C#" Maintainer="Lee Mallabone" Value="public class Table : Gtk.Container" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit Table extends Gtk.Container" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
  </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>
  <Base>
    <BaseTypeName>Gtk.Container</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <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>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public Table (IntPtr raw);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(native int raw) cil managed" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
        <Parameter Name="raw" Type="System.IntPtr" />
      </Parameters>
      <Docs>
        <param name="raw">Pointer to the C object.</param>
        <summary>Internal constructor</summary>
        <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);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(unsigned int32 rows, unsigned int32 columns, bool homogeneous) cil managed" />
      <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>
        <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>
        <summary>Creates a new Table widget.</summary>
        <remarks>
          <para>The size of the table can be altered after its creation using the <see cref="M:Gtk.Table.Resize" /> method.</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);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Attach(class Gtk.Widget widget, unsigned int32 left_attach, unsigned int32 right_attach, unsigned int32 top_attach, unsigned int32 bottom_attach) cil managed" />
      <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>
        <param name="widget">The widget to be attached to the table</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>
        <summary>Packs a widget into the table with default packing options.</summary>
        <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="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);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Attach(class Gtk.Widget child, unsigned int32 left_attach, unsigned int32 right_attach, unsigned int32 top_attach, unsigned int32 bottom_attach, valuetype Gtk.AttachOptions xoptions, valuetype Gtk.AttachOptions yoptions, unsigned int32 xpadding, unsigned int32 ypadding) cil managed" />
      <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>
        <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>
        <summary>Packs a widget into the table.</summary>
        <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="ColumnSpacing">
      <MemberSignature Language="C#" Value="public uint ColumnSpacing { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 ColumnSpacing" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("column-spacing")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The number of pixels between columns if it isn't the default value.</summary>
        <value>A <see cref="T:System.UInt32" />.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DefaultColSpacing">
      <MemberSignature Language="C#" Value="public uint DefaultColSpacing { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 DefaultColSpacing" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The default number of pixels between columns.</summary>
        <value>A <see cref="T:System.UInt32" />.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="DefaultRowSpacing">
      <MemberSignature Language="C#" Value="public uint DefaultRowSpacing { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 DefaultRowSpacing" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Retrieve the spacing that gets placed between newly added rows by default.</summary>
        <value>Spacing between rows that will be added, in pixels.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetColSpacing">
      <MemberSignature Language="C#" Value="public uint GetColSpacing (uint column);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int32 GetColSpacing(unsigned int32 column) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="column">A zero-indexed column number to retrieve spacing information from.</param>
        <summary>The spacing currently set for a given column.</summary>
        <returns>The number of pixels of spacing assigned to the specified <paramref name="column" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetRowSpacing">
      <MemberSignature Language="C#" Value="public uint GetRowSpacing (uint row);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance unsigned int32 GetRowSpacing(unsigned int32 row) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="row" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <param name="row">A zero-indexed row number to retrieve spacing information from.</param>
        <summary>The spacing currently set for a given row.</summary>
        <returns>The number of pixels of spacing assigned to the specified <paramref name="row" />.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetSize">
      <MemberSignature Language="C#" Value="public void GetSize (out uint rows, out uint columns);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void GetSize(unsigned int32 rows, unsigned int32 columns) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rows" Type="System.UInt32&amp;" RefType="out" />
        <Parameter Name="columns" Type="System.UInt32&amp;" RefType="out" />
      </Parameters>
      <Docs>
        <param name="rows">To be added.</param>
        <param name="columns">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static GLib.GType GType { get; }" />
      <MemberSignature Language="ILAsm" Value=".property valuetype GLib.GType GType" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>GLib.GType</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>GType Property.</summary>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.Table" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Homogeneous">
      <MemberSignature Language="C#" Value="public bool Homogeneous { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool Homogeneous" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("homogeneous")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage whether all cells must be of equal size.</summary>
        <value>
          <see langword="true" /> if all cells are currently equally sized, <see langword="false" /> otherwise.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Item">
      <MemberSignature Language="C#" Value="public override Gtk.Container.ContainerChild this[Gtk.Widget child] { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance class Gtk.Container/ContainerChild Item(class Gtk.Widget)" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.Container+ContainerChild</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <param name="child">To be added.</param>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="NColumns">
      <MemberSignature Language="C#" Value="public uint NColumns { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 NColumns" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("n-columns")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the number of columns in this Table.</summary>
        <value>The number of columns this table currently has.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="NRows">
      <MemberSignature Language="C#" Value="public uint NRows { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 NRows" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("n-rows")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the number of rows in this Table.</summary>
        <value>The number of rows this table currently has.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Resize">
      <MemberSignature Language="C#" Value="public void Resize (uint rows, uint columns);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Resize(unsigned int32 rows, unsigned int32 columns) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="rows" Type="System.UInt32" />
        <Parameter Name="columns" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <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>
        <summary>Resizes the table so that the specified number of <paramref name="rows" />  and <paramref name="columns" /> are available for widget packing.</summary>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="RowSpacing">
      <MemberSignature Language="C#" Value="public uint RowSpacing { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 RowSpacing" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("row-spacing")</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>The space between table rows.</summary>
        <value>
          <see cref="T:System.UInt32" />.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="SetColSpacing">
      <MemberSignature Language="C#" Value="public void SetColSpacing (uint column, uint spacing);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetColSpacing(unsigned int32 column, unsigned int32 spacing) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="column" Type="System.UInt32" />
        <Parameter Name="spacing" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <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>
        <summary>Sets the spacing around a specified column.</summary>
        <remarks>
          <para>To adjust the spacing between all columns, use the <see cref="P:Gtk.Table.ColumnSpacing" /> property.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SetRowSpacing">
      <MemberSignature Language="C#" Value="public void SetRowSpacing (uint row, uint spacing);" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetRowSpacing(unsigned int32 row, unsigned int32 spacing) cil managed" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="row" Type="System.UInt32" />
        <Parameter Name="spacing" Type="System.UInt32" />
      </Parameters>
      <Docs>
        <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>
        <summary>Sets the spacing around a specified row.</summary>
        <remarks>
          <para>To adjust the spacing between all rows, use the <see cref="P:Gtk.Table.RowSpacing" /> property.</para>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>
