<Type Name="Statusbar" FullName="Gtk.Statusbar">
  <TypeSignature Language="C#" Value="public class Statusbar : Gtk.HBox, Implementor, IWrapper, IWrapper, IDisposable" Maintainer="Lee Mallabone" />
  <AssemblyInfo>
    <AssemblyName>gtk-sharp</AssemblyName>
    <AssemblyVersion>0.0.0.0</AssemblyVersion>
    <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>Report messages of minor importance to the user.</summary>
    <remarks>
      <para>The Statusbar widget displays textual messages to the user. Statusbars are typically placed at the bottom of application <see cref="T:Gtk.Window" />s.</para>
      <para>A Statusbar may provide a regular commentary of the application's status (as is usually the case in a web browser, for example), or may be used to simply output a message when the status changes, (when an upload is complete in an FTP client, for example).</para>
      <para>As a finishing touch to the StatusBar, it can have a "resize grip" added in the lower right corner. This is a triangular area that can be clicked on to resize the window containing the statusbar.</para>
      <para>Status bars in Gtk+ maintain a stack of messages. The message at the top of the each bar's stack is the one that will currently be displayed.</para>
      <para>Any messages added to a statusbar's stack must specify a <paramref name="context_id" /> that is used to uniquely identify the source of a message. This <paramref name="context_id" /> can be generated with <see cref="M:Gtk.Statusbar.GetContextId" />, given a message. Note that messages are stored in a stack, and when choosing which message to display, the stack structure is adhered to, regardless of the context identifier of a message.</para>
      <para>Messages are added to the bar's stack with <see cref="M:Gtk.Statusbar.Push" />, and the message at the top of the stack can be removed using <see cref="M:Gtk.Statusbar.Pop" />. A message can be removed from anywhere in the stack if it's <paramref name="message_id" /> was recorded at the time it was added. This is done using <see cref="M:Gtk.Statusbar.Remove" />.</para>
    </remarks>
  </Docs>
  <Base>
    <BaseTypeName>Gtk.HBox</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="Push">
      <MemberSignature Language="C#" Value="public uint Push (uint context_id, string text);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
		<Parameter Name="context_id" Type="System.UInt32" />
		<Parameter Name="text" Type="System.String" />
	</Parameters>
      <Docs>
        <summary>Pushes a new message onto the stack.</summary>
        <param name="context_id">The new message's context ID, as generated by <see cref="M:Gtk.Statusbar.GenerateContextId" />.</param>
        <param name="text">The message to display to the user.</param>
        <returns>The message's new message id for use with <see cref="M:Gtk.Statusbar.Remove" />.</returns>
        <remarks>
          <para>Note that the <paramref name="context_id" /> and the returned <paramref name="message_id" /> are equivalent and are both required for <see cref="M:Gtk.Statusbar.Remove" /> to work.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Remove">
      <MemberSignature Language="C#" Value="public void Remove (uint context_id, uint message_id);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
		<Parameter Name="context_id" Type="System.UInt32" />
		<Parameter Name="message_id" Type="System.UInt32" />
	</Parameters>
      <Docs>
        <summary>Forces the removal of a message from a statusbar's stack.</summary>
        <param name="context_id">A context identifier.</param>
        <param name="message_id">A message identifier.</param>
        <remarks>
          <para>The exact <paramref name="context_id" /> and <paramref name="message_id" /> must be specified.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Pop">
      <MemberSignature Language="C#" Value="public void Pop (uint context_id);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
		<Parameter Name="context_id" Type="System.UInt32" />
	</Parameters>
      <Docs>
        <summary>Removes the message at the top of the Statusbar's stack.</summary>
        <param name="context_id">A context identifier</param>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="GetContextId">
      <MemberSignature Language="C#" Value="public uint GetContextId (string context_description);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Parameters>
		<Parameter Name="context_description" Type="System.String" />
	</Parameters>
      <Docs>
        <summary>Generates an identifier based on the <paramref name="context_description" />.</summary>
        <param name="context_description">A description of the message you want to generate an identifier for.</param>
        <returns>An integer identifier</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="Finalize">
      <MemberSignature Language="C#" Value="protected virtual 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 Statusbar (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 Statusbar, 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 Statusbar ();" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters />
      <Docs>
        <summary>The main way to create a new status bar.</summary>
        <returns>A new Statusbar</returns>
        <remarks>
          <para>Creates a new Statusbar with an empty message stack.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GType">
      <MemberSignature Language="C#" Value="public static uint GType { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.UInt32</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>The GLib Type for Gtk.Statusbar</summary>
        <returns>The GLib Type for the Gtk.Statusbar class.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="HasResizeGrip">
      <MemberSignature Language="C#" Value="public bool HasResizeGrip { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
	</Parameters>
      <Docs>
        <summary>Manage whether this Statusbar has a resizable grip over its bottom right corner.</summary>
        <param name="value">Set to <see langword="true" /> to render a resize grip over the Statusbar, <see langword="false" /> otherwise.</param>
        <returns>Whether or not there is currently a resize grip on the Statusbar.</returns>
        <remarks />
      </Docs>
    </Member>
    <Member MemberName="TextPushed">
      <MemberSignature Language="C#" Value="public event GtkSharp.TextPushedHandler TextPushed;" />
      <MemberType>Event</MemberType>
      <ReturnValue><ReturnType>GtkSharp.TextPushedHandler</ReturnType></ReturnValue>
      <Parameters />
      <Docs>
        <summary>An event that is fired when a message is pushed onto the Statusbar's message stack using the <see cref="M:Gtk.Statusbar.Push" /> method.</summary>
        <remarks>
          <para>Connect to this event with a <see cref="T:GtkSharp.TextPushedHandler" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="TextPopped">
      <MemberSignature Language="C#" Value="public event GtkSharp.TextPoppedHandler TextPopped;" />
      <MemberType>Event</MemberType>
      <ReturnValue><ReturnType>GtkSharp.TextPoppedHandler</ReturnType></ReturnValue>
      <Parameters />
      <Docs>
        <summary>An event that is fired when a message is popped off the Statusbar's message stack using the <see cref="M:Gtk.Statusbar.Pop" /> method.</summary>
        <remarks>
          <para>Connect to this event with a <see cref="T:GtkSharp.TextPoppedHandler" />.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="protected Statusbar (GLib.Type gtype);" />
      <MemberType>Constructor</MemberType>
      <ReturnValue />
      <Parameters>
		<Parameter Name="gtype" Type="GLib.Type" />
	</Parameters>
      <Docs>
        <summary>Internal constructor</summary>
        <param name="gtype">GLib type for the type</param>
        <returns>Creates a new instance of Statusbar, using the GLib-provided type</returns>
        <remarks>
          <para>This is a constructor used by derivative types of <see cref="T:Gtk.Statusbar" /> that would have their own GLib type assigned to it.  This is not typically used by C# code.</para>
        </remarks>
      </Docs>
    </Member>
  </Members>
</Type>
