<?xml version="1.0" standalone="no"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="class-gtkstatusbar">
  <refmeta>
    <refentrytitle>gtk.Statusbar</refentrytitle>
    <manvolnum>3</manvolnum>
    <refmiscinfo>PyGTK Docs</refmiscinfo>
  </refmeta>

  <refnamediv>
    <refname>gtk.Statusbar</refname>
    <refpurpose>report messages of minor importance to the user.</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Synopsis</title>

    <classsynopsis language="python">
      <ooclass><classname>gtk.Statusbar</classname></ooclass>
      <ooclass><classname><link
linkend="class-gtkhbox">gtk.HBox</link></classname></ooclass>
      <constructorsynopsis language="python">
	<methodname><link
linkend="constructor-gtkstatusbar">gtk.Statusbar</link></methodname>
	<methodparam></methodparam>  </constructorsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--get-context-id">get_context_id</link></methodname>
	<methodparam><parameter
		       role="keyword">context_description</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--push">push</link></methodname>
	<methodparam><parameter
		       role="keyword">context_id</parameter></methodparam>
	<methodparam><parameter
		       role="keyword">text</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--pop">pop</link></methodname>
	<methodparam><parameter
		       role="keyword">context_id</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--remove-message">remove_message</link></methodname>
	<methodparam><parameter
		       role="keyword">context_id</parameter></methodparam>
	<methodparam><parameter
		       role="keyword">message_id</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--remove">remove</link></methodname>
	<methodparam><parameter
		       role="keyword">context_id</parameter></methodparam>
	<methodparam><parameter
		       role="keyword">message_id</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
        <methodname><link linkend="method-gtkstatusbar--remove-all">remove_all</link></methodname>
        <methodparam><parameter role="keyword">context_id</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--set-has-resize-grip">set_has_resize_grip</link></methodname>
	<methodparam><parameter
		       role="keyword">setting</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkstatusbar--get-has-resize-grip">get_has_resize_grip</link></methodname>
	<methodparam></methodparam>  </methodsynopsis>
      <methodsynopsis language="python">
        <methodname><link linkend="method-gtkstatusbar--get-message-area">get_message_area</link></methodname>
        <methodparam></methodparam>
      </methodsynopsis>
    </classsynopsis>

  </refsect1>

  <refsect1>
    <title>Ancestry</title>

<synopsis>+-- <link linkend="class-gobject">gobject.GObject</link>
  +-- <link linkend="class-gtkobject">gtk.Object</link>
    +-- <link linkend="class-gtkwidget">gtk.Widget</link>
      +-- <link linkend="class-gtkcontainer">gtk.Container</link>
        +-- <link linkend="class-gtkbox">gtk.Box</link>
          +-- <link linkend="class-gtkhbox">gtk.HBox</link>
            +-- <link linkend="class-gtkstatusbar">gtk.Statusbar</link>
</synopsis>

  </refsect1>
  
  <refsect1>
		<title>Implemented Interfaces</title>
		<para>
			<link linkend="class-gtkstatusbar"><classname>gtk.Statusbar</classname></link>
			implements 
			<link linkend="class-gtkbuildable"><classname>gtk.Buildable</classname></link>
		</para>
	</refsect1>

  <refsect1 id="properties-gtkstatusbar">
    <title>gtk.Statusbar Properties</title>

    <para><link linkend="properties-gtkobject">gtk.Object Properties</link></para>
    <para><link linkend="properties-gtkwidget">gtk.Widget Properties</link></para>
    <para><link linkend="properties-gtkcontainer">gtk.Container Properties</link></para>
    <para><link linkend="properties-gtkbox">gtk.Box Properties</link></para>

    <blockquote role="properties">
      <informaltable pgwide="1" frame="none">
	<tgroup cols="3">
	  <colspec column="1" colwidth="1in"/>
	  <colspec column="2" colwidth="1in"/>
	  <colspec column="3" colwidth="4in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"has-resize-grip"</entry>
	      <entry>Read-Write</entry>

	      <entry>If <literal>True</literal>, the statusbar has a grip
	      for resizing the toplevel window. Available in GTK+ 2.4 and
	      above.</entry>
	    </row>

	  </tbody>
	</tgroup>
      </informaltable>
    </blockquote>

  </refsect1>

  <refsect1 id="style-properties-gtkstatusbar">
    <title>gtk.Statusbar Style Properties</title>

    <para><link linkend="style-properties-gtkwidget">gtk.Widget Style Properties</link></para>

    <blockquote role="properties">
      <informaltable pgwide="1" frame="none">
	<tgroup cols="3">
	  <colspec column="1" colwidth="1in"/>
	  <colspec column="2" colwidth="1in"/>
	  <colspec column="3" colwidth="4in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"shadow-type"</entry>
	      <entry>Read</entry>
	      <entry>The style of bevel around the statusbar text</entry>
	    </row>

	  </tbody>
	</tgroup>
      </informaltable>
    </blockquote>

  </refsect1>

  <refsect1 id="child-properties-gtkstatusbar">
    <title>gtk.Statusbar Child Properties</title>

    <para><link linkend="child-properties-gtkbox">gtk.Box Child Properties</link></para>

  </refsect1>

  <refsect1 id="signal-prototypes-gtkstatusbar">
    <title>gtk.Statusbar Signal Prototypes</title>

    <para><link linkend="signal-prototypes-gobject">gobject.GObject Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkobject">gtk.Object Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkwidget">gtk.Widget Signal Prototypes</link></para>
    <para><link linkend="signal-prototypes-gtkcontainer">gtk.Container Signal Prototypes</link></para>

    <variablelist>
      <varlistentry>
        <term>"<link
linkend="signal-gtkstatusbar--text-popped">text-popped</link>"</term>
        <listitem>
          <methodsynopsis
	    language="python"><methodname>callback</methodname>
            <methodparam><parameter>statusbar</parameter></methodparam>
            <methodparam><parameter>context_id</parameter></methodparam>
            <methodparam><parameter>text</parameter></methodparam>
            <methodparam><parameter>user_param1</parameter></methodparam>
            <methodparam><parameter>...</parameter></methodparam>
          </methodsynopsis>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term>"<link
linkend="signal-gtkstatusbar--text-pushed">text-pushed</link>"</term>
        <listitem>
          <methodsynopsis
	    language="python"><methodname>callback</methodname>
            <methodparam><parameter>statusbar</parameter></methodparam>
            <methodparam><parameter>context_id</parameter></methodparam>
            <methodparam><parameter>text</parameter></methodparam>
            <methodparam><parameter>user_param1</parameter></methodparam>
            <methodparam><parameter>...</parameter></methodparam>
          </methodsynopsis>
        </listitem>
      </varlistentry>
    </variablelist>

  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>A <link
linkend="class-gtkstatusbar"><classname>gtk.Statusbar</classname></link> is
usually placed along the bottom of an application's main <link
linkend="class-gtkwindow"><classname>gtk.Window</classname></link>. It 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
<literal>FTP</literal> client, for example). It may also have a resize grip
(a triangular area in the lower right corner) which can be clicked on to
resize the window containing the statusbar. Status bars in PyGTK 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
<literal>context_id</literal> that is used to uniquely identify the source
of a message. The <literal>context_id</literal> can be generated by the
<link
linkend="method-gtkstatusbar--get-context-id"><methodname>get_context_id</methodname>()</link> 
method, and associated with a context message. An existing context_id can be
retrieved using the context message using the <link
linkend="method-gtkstatusbar--get-context-id"><methodname>get_context_id</methodname>()</link> 
method. 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>

  </refsect1>

  <refsect1 id="constructor-gtkstatusbar">
    <title>Constructor</title>

    <programlisting><constructorsynopsis language="python">
	<methodname>gtk.Statusbar</methodname>
	<methodparam></methodparam>  </constructorsynopsis></programlisting>
    <variablelist>
      <varlistentry>
	<term><emphasis>Returns</emphasis>&nbsp;:</term>
	<listitem><simpara>a new <link
linkend="class-gtkstatusbar"><classname>gtk.Statusbar</classname></link>
widget</simpara></listitem>
      </varlistentry>
    </variablelist>

    <para>Creates a new <link
linkend="class-gtkstatusbar"><classname>gtk.Statusbar</classname></link>
widget.</para>

  </refsect1>

  <refsect1>
    <title>Methods</title>

    <refsect2 id="method-gtkstatusbar--get-context-id">
      <title>gtk.Statusbar.get_context_id</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_context_id</methodname>
	  <methodparam><parameter
			 role="keyword">context_description</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter
role="keyword">context_description</parameter>&nbsp;:</term>
	  <listitem><simpara>a string identifying the context for the
message</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>an integer context
identifier</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>get_context_id</methodname>() method returns a
new or existing context identifier, given a description of the actual
context specified by <parameter>context_description</parameter>. In effect,
<methodname>get_context_id</methodname>() both registers and retrieves a
context identifier.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--push">
      <title>gtk.Statusbar.push</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>push</methodname>
	  <methodparam><parameter
			 role="keyword">context_id</parameter></methodparam>
	  <methodparam><parameter
			 role="keyword">text</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter
role="keyword">context_id</parameter>&nbsp;:</term>
	  <listitem><simpara>a context identifier</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter role="keyword">text</parameter>&nbsp;:</term>
	  <listitem><simpara>the message text</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>an integer message
identifier</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>push</methodname>() method pushes a new message
specified by <parameter>text</parameter> with the specified
<parameter>context_id</parameter> onto a statusbar's stack and returns a
message id that that can be used with the <link
linkend="method-gtkstatusbar--remove-message"><methodname>remove_message</methodname>()</link>
method.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--pop">
      <title>gtk.Statusbar.pop</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>pop</methodname>
	  <methodparam><parameter
			 role="keyword">context_id</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter
role="keyword">context_id</parameter>&nbsp;:</term>
	  <listitem><simpara>a context identifier</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>pop</methodname>() method removes the top
message with the specified <parameter>context_id</parameter> from the
statusbar's stack.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--remove-message">
      <title>gtk.Statusbar.remove_message</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>remove_message</methodname>
	  <methodparam><parameter
			 role="keyword">context_id</parameter></methodparam>
	  <methodparam><parameter
			 role="keyword">message_id</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter
role="keyword">context_id</parameter>&nbsp;:</term>
	  <listitem><simpara>the context identifier</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter
role="keyword">message_id</parameter>&nbsp;:</term>
	  <listitem><simpara>the message identifier</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>remove_message</methodname>() method removes the message
with the specified <parameter>message_id</parameter> and
<parameter>context_id</parameter> from the statusbar's message stack.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--remove">
      <title>gtk.Statusbar.remove</title>

      <warning>
        <para>This method is deprecated in PyGTK 2.22 and above</para>
      </warning>

      <para>This method calls either
        <link linkend="method-gtkcontainer--remove">gtk.Container.remove</link>
        or <link linkend="method-gtkstatusbar--remove-message">gtk.Statusbar.remove_message</link>
        depending on parameters.  The second option is for compatibility only and will be
        eventually removed.  New code should use <literal>remove</literal> only to remove
        widgets (as in <literal>gtk.Container</literal> method).  To remove messages, use
        <link linkend="method-gtkstatusbar--remove-message">gtk.Statusbar.remove_message</link>
        directly.</para>
    </refsect2>

    <refsect2 id="method-gtkstatusbar--remove-all">
      <title>gtk.StatusBar.remove_all</title>

      <programlisting><methodsynopsis language="python">
        <methodname>remove_all</methodname>
        <methodparam><parameter role="keyword">context_id</parameter></methodparam>
      </methodsynopsis></programlisting>
      <variablelist>
        <varlistentry>
          <term><parameter role="keyword">context_id</parameter>&nbsp;:</term>
          <listitem><simpara>a context identifier.</simpara></listitem>
        </varlistentry>
      </variablelist>

      <note>
        <para>This method is available in PyGTK 2.22 and above.</para>
      </note>

      <para>The <methodname>remove_all</methodname>() method forces the removal of all messages
      from a statusbar's stack with the exact <parameter>context_id</parameter>.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--set-has-resize-grip">
      <title>gtk.Statusbar.set_has_resize_grip</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>set_has_resize_grip</methodname>
	  <methodparam><parameter
			 role="keyword">setting</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter role="keyword">setting</parameter>&nbsp;:</term>
	  <listitem><simpara>if <literal>True</literal> a resize grip is
displayed</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>set_has_resize_grip</methodname>() method sets
the internal "has_resize_grip" property to the value specified by
<parameter>setting</parameter>. If <parameter>setting</parameter> is
<literal>True</literal> a resize grip is displayed on the statusbar</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--get-has-resize-grip">
      <title>gtk.Statusbar.get_has_resize_grip</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_has_resize_grip</methodname>
	  <methodparam></methodparam>  </methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara><literal>True</literal> if a resize grip is
displayed</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>get_has_resize_grip</methodname>() method
returns the value of the internal "has_resize_grip" property that determines
if a resize grip is displayed on the statusbar.</para>

    </refsect2>

    <refsect2 id="method-gtkstatusbar--get-message-area">
      <title>gtk.StatusBar.get_message_area</title>

      <programlisting><methodsynopsis language="python">
        <methodname>get_message_area</methodname>
        <methodparam></methodparam>
      </methodsynopsis></programlisting>
      <variablelist>
        <varlistentry>
          <term><emphasis>Returns</emphasis>&nbsp;:</term>
          <listitem><simpara>a <link linkend="class-gtkbox"><classname>gtk.Box</classname></link>.</simpara></listitem>
        </varlistentry>
      </variablelist>

      <note>
        <para>This method is available in PyGTK 2.22 and above.</para>
      </note>

      <para>The <methodname>get_message_area</methodname>() method retrieves
      the box containing the label widget.</para>

    </refsect2>

  </refsect1>

  <refsect1>
    <title>Signals</title>

    <refsect2 id="signal-gtkstatusbar--text-popped">
      <title>The "text-popped" gtk.Statusbar Signal</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>callback</methodname>
	  <methodparam><parameter>statusbar</parameter></methodparam>
	  <methodparam><parameter>context_id</parameter></methodparam>
	  <methodparam><parameter>text</parameter></methodparam>
	  <methodparam><parameter>user_param1</parameter></methodparam>
	  <methodparam><parameter>...</parameter></methodparam>
	</methodsynopsis></programlisting>

      <variablelist>
	<varlistentry>
	  <term><parameter>statusbar</parameter>&nbsp;:</term>
	  <listitem><simpara>the statusbar that received the
signal</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>context_id</parameter>&nbsp;:</term>
	  <listitem><simpara>the context identifier of the top
message</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>text</parameter>&nbsp;:</term>
	  <listitem><simpara>the string containing the top message
text</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>user_param1</parameter>&nbsp;:</term>
          <listitem><simpara>the first user parameter (if any) specified
with the <link
linkend="method-gobject--connect"><methodname>connect</methodname>()</link>
method</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>...</parameter>&nbsp;:</term>
	  <listitem><simpara>additional user parameters (if
any)</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The "text-popped" signal is emitted when a message is removed
from the statusbar message stack. Note the text and context_id are for the
top message on the statusbar stack not the message that was actually
removed.</para>

    </refsect2>

    <refsect2 id="signal-gtkstatusbar--text-pushed">
      <title>The "text-pushed" gtk.Statusbar Signal</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>callback</methodname>
	  <methodparam><parameter>statusbar</parameter></methodparam>
	  <methodparam><parameter>context_id</parameter></methodparam>
	  <methodparam><parameter>text</parameter></methodparam>
	  <methodparam><parameter>user_param1</parameter></methodparam>
	  <methodparam><parameter>...</parameter></methodparam>
	</methodsynopsis></programlisting>

      <variablelist>
	<varlistentry>
	  <term><parameter>statusbar</parameter>&nbsp;:</term>
	  <listitem><simpara>the statusbar that received the
signal</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>context_id</parameter>&nbsp;:</term>
	  <listitem><simpara>the context identifier of the message
added</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>text</parameter>&nbsp;:</term>
	  <listitem><simpara>the string containing the message
text</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>user_param1</parameter>&nbsp;:</term>
          <listitem><simpara>the first user parameter (if any) specified
with the <link
linkend="method-gobject--connect"><methodname>connect</methodname>()</link>
method</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter>...</parameter>&nbsp;:</term>
	  <listitem><simpara>additional user parameters (if
any)</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The "text-pushed" signal is emitted when a message is added to
the statusbar message stack.</para>

    </refsect2>

  </refsect1>

</refentry>
