<Type Name="HandleBox" FullName="Gtk.HandleBox">
  <TypeSignature Language="C#" Maintainer="Lee Mallabone" Value="public class HandleBox : Gtk.Bin" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit HandleBox extends Gtk.Bin" />
  <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.Bin</BaseTypeName>
  </Base>
  <Interfaces>
  </Interfaces>
  <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>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public HandleBox ();" />
      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
      <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=".ctor">
      <MemberSignature Language="C#" Value="public HandleBox (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="ChildAttached">
      <MemberSignature Language="C#" Value="public event Gtk.ChildAttachedHandler ChildAttached;" />
      <MemberSignature Language="ILAsm" Value=".event class Gtk.ChildAttachedHandler ChildAttached" />
      <MemberType>Event</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("child-attached")</AttributeName>
        </Attribute>
      </Attributes>
      <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>
    </Member>
    <Member MemberName="ChildDetached">
      <MemberSignature Language="C#" Value="public event Gtk.ChildDetachedHandler ChildDetached;" />
      <MemberSignature Language="ILAsm" Value=".event class Gtk.ChildDetachedHandler ChildDetached" />
      <MemberType>Event</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Signal("child-detached")</AttributeName>
        </Attribute>
      </Attributes>
      <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>
    </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.HandleBox" />.</remarks>
      </Docs>
    </Member>
    <Member MemberName="HandlePosition">
      <MemberSignature Language="C#" Value="public Gtk.PositionType HandlePosition { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance valuetype Gtk.PositionType HandlePosition" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("handle-position")</AttributeName>
        </Attribute>
      </Attributes>
      <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>
    </Member>
    <Member MemberName="IsChildDetached">
      <MemberSignature Language="C#" Value="public bool IsChildDetached { get; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool IsChildDetached" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
        <since version="Gtk# 3.0" />
      </Docs>
    </Member>
    <Member MemberName="OnChildAttached">
      <MemberSignature Language="C#" Value="protected virtual void OnChildAttached (Gtk.Widget child);" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnChildAttached(class Gtk.Widget child) cil managed" />
      <MemberType>Method</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.DefaultSignalHandler(ConnectionMethod="OverrideChildAttached", Type=typeof(Gtk.HandleBox))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <param name="child">a <see cref="T:Gtk.Widget" /></param>
        <summary>Default handler for the <see cref="M:Gtk.HandleBox.ChildAttached" /> event.</summary>
        <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="OnChildDetached">
      <MemberSignature Language="C#" Value="protected virtual void OnChildDetached (Gtk.Widget child);" />
      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnChildDetached(class Gtk.Widget child) cil managed" />
      <MemberType>Method</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.DefaultSignalHandler(ConnectionMethod="OverrideChildDetached", Type=typeof(Gtk.HandleBox))</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="child" Type="Gtk.Widget" />
      </Parameters>
      <Docs>
        <param name="child">a <see cref="T:Gtk.Widget" /></param>
        <summary>Default handler for the <see cref="M:Gtk.HandleBox.ChildDetached" /> event.</summary>
        <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="ShadowType">
      <MemberSignature Language="C#" Value="public Gtk.ShadowType ShadowType { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance valuetype Gtk.ShadowType ShadowType" />
      <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="SnapEdge">
      <MemberSignature Language="C#" Value="public Gtk.PositionType SnapEdge { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance valuetype Gtk.PositionType SnapEdge" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("snap-edge")</AttributeName>
        </Attribute>
      </Attributes>
      <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>
    </Member>
    <Member MemberName="SnapEdgeSet">
      <MemberSignature Language="C#" Value="public bool SnapEdgeSet { get; set; }" />
      <MemberSignature Language="ILAsm" Value=".property instance bool SnapEdgeSet" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>GLib.Property("snap-edge-set")</AttributeName>
        </Attribute>
      </Attributes>
      <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>
    </Member>
  </Members>
</Type>
