<Type Name="HandleBox" FullName="Gtk.HandleBox">
  <TypeSignature Language="C#" Maintainer="Lee Mallabone" Value="public class HandleBox : Gtk.Bin" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyPublicKey>
    </AssemblyPublicKey>
    <AssemblyVersion>2.12.0.0</AssemblyVersion>
  </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>A container with a handle and a detachable child widget.</summary>
    <remarks>
      <para>The HandleBox widget allows a portion of a window to be "torn off". It is a <see cref="T:Gtk.Bin" /> widget that displays its child with a handle that the user can drag to create a separate floating window containing the child widget and the 'handle'.</para>
      <para>A thin ghost is drawn in the original location of the HandleBox. By dragging the separate window back to its original location, it can be reattached. When reattaching, the ghost and float window, must be aligned along one of the edges, the <see cref="P:Gtk.HandlBox.SnapEdge" />. This can either be specified by the application programmer explicitly, otherwise a reasonable default will be used, based on the <see cref="P:Gtk.HandleBox.HandlePosition" />.</para>
      <para>To make detaching and reattaching the HandleBox as minimally confusing as possible to the user, it is important to set the snap edge so that it does not move when the HandleBox is deattached. For instance, if the HandleBox is packed at the bottom of a <see cref="T:Gtk.VBox" />, then when the HandleBox is detached, the bottom edge of the HandleBox's allocation will remain fixed as the height of the HandleBox shrinks, so the snap edge should be set to <see cref="P:Gtk.PositionType.Bottom" />.</para>
      <para>The child of this widget is set using the <see cref="M:Gtk.Container.Add" /> method in <see cref="T:Gtk.Container" />.</para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.Bin</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public HandleBox (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>
        <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 HandleBox ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>The main way to create a HandleBox.</summary>
        <remarks>
          <para>Creates a new HandleBox, with the <see cref="P:Gtk.HandleBox.HandlePosition" /> set to the <see cref="P:Gtk.PositionType.Left" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="SnapEdge">
      <MemberSignature Language="C#" Value="public Gtk.PositionType SnapEdge { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.PositionType</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage which edge a detached HandleBox must reattach to.</summary>
        <value>The current edge that snapping works with.</value>
        <remarks>
          <para>To ensure good usability, this edge should be set to a side of the HandleBox whose position or size will not be altered when the child is detached.</para>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("snap-edge")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ShadowType">
      <MemberSignature Language="C#" Value="public Gtk.ShadowType ShadowType { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ShadowType</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the appearance of the <see cref="T:Gtk.Container" /> surrounding the child widget.</summary>
        <value>The current style of shadow in use.</value>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HandlePosition">
      <MemberSignature Language="C#" Value="public Gtk.PositionType HandlePosition { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.PositionType</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage where the handle of this container is placed.</summary>
        <value>The current position of the handle.</value>
        <remarks>
          <para>Note: In western cultures, anything other than a <see cref="P:Gtk.PositionType.Left" /> handle for horizontal HandleBoxes, or a <see cref="P:Gtk.PositionType.Top" /> handle for vertical HandleBoxes, may seem strange to users.</para>
          <para>The reverse is likely to be true for cultures with languages that are written from right to left.</para>
        </remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("handle-position")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="Shadow">
      <MemberSignature Language="C#" Value="public Gtk.ShadowType Shadow { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ShadowType</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Manage the appearance of the <see cref="T:Gtk.Container" /> surrounding the child widget.</summary>
        <value>The current style of shadow in use.</value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("shadow")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ChildAttached">
      <MemberSignature Language="C#" Value="public event Gtk.ChildAttachedHandler ChildAttached;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ChildAttachedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>This event is raised when the contents of the HandleBox are reattached to the main window. </summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("child_attached")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="ChildDetached">
      <MemberSignature Language="C#" Value="public event Gtk.ChildDetachedHandler ChildDetached;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Gtk.ChildDetachedHandler</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>This event is raised when the contents of the handlebox are detached from the main window.</summary>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("child_detached")</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
    <Member MemberName="SnapEdgeSet">
      <MemberSignature Language="C#" Value="public bool SnapEdgeSet { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
      </Parameters>
      <Docs>
        <summary>Whether to use the value from the snap_edge property or a value derived from handle_position.</summary>
        <value>a <see cref="T:System.Boolean" /></value>
        <remarks />
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("snap-edge-set")</AttributeName>
        </Attribute>
      </Attributes>
    </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>
        <value>a <see cref="T:GLib.GType" /></value>
        <remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gtk.HandleBox" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnChildDetached">
      <MemberSignature Language="C#" Value="protected virtual void OnChildDetached (Gtk.Widget child);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.HandleBox.ChildDetached" /> event.</summary>
        <param name="child">a <see cref="T:Gtk.Widget" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.HandleBox.ChildDetached" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName="OnChildAttached">
      <MemberSignature Language="C#" Value="protected virtual void OnChildAttached (Gtk.Widget child);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <summary>Default handler for the <see cref="M:Gtk.HandleBox.ChildAttached" /> event.</summary>
        <param name="child">a <see cref="T:Gtk.Widget" /></param>
        <remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gtk.HandleBox.ChildAttached" /> event.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected HandleBox (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>
        <remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
      </Docs>
      <Attributes>
        <Attribute>
          <AttributeName>System.Obsolete</AttributeName>
        </Attribute>
      </Attributes>
    </Member>
  </Members>
</Type>
