<?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-gtkbuttonbox">
  <refnamediv>
    <refname>gtk.ButtonBox</refname>
    <refpurpose>the base class for widgets that contain multiple
buttons</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Synopsis</title>

    <classsynopsis language="python">
      <ooclass><classname>gtk.ButtonBox</classname></ooclass>
      <ooclass><classname><link
linkend="class-gtkbox">gtk.Box</link></classname></ooclass>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkbuttonbox--get-layout">get_layout</link></methodname>
	<methodparam></methodparam>  </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkbuttonbox--set-layout">set_layout</link></methodname>
	<methodparam><parameter
		       role="keyword">layout_style</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkbuttonbox--get-child-secondary">get_child_secondary</link></methodname>
	<methodparam><parameter
		       role="keyword">child</parameter></methodparam>
      </methodsynopsis>
      <methodsynopsis language="python">
	<methodname><link
linkend="method-gtkbuttonbox--set-child-secondary">set_child_secondary</link></methodname>
	<methodparam><parameter
		       role="keyword">child</parameter></methodparam>
	<methodparam><parameter
		       role="keyword">is_secondary</parameter></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-gtkbuttonbox">gtk.ButtonBox</link>
</synopsis>

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

  <refsect1 id="properties-gtkbuttonbox">
    <title>gtk.ButtonBox 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="3.5in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"layout-style"</entry>
	      <entry>Read/Write</entry>
	<entry>the style used to layout the buttons in the box. The layout
styles are: <literal>gtk.BUTTONBOX_SPREAD</literal>,
<literal>gtk.BUTTONBOX_EDGE</literal>,
<literal>gtk.BUTTONBOX_START</literal> and
<literal>gtk.BUTTONBOX_END</literal>.</entry>
	  </row>

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

  </refsect1>

  <refsect1 id="style-properties-gtkbuttonbox">
    <title>gtk.ButtonBox 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="3.5in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"child-internal-pad-x"</entry>
	      <entry>Read</entry>
	      <entry>The amount of padding that increases a child's size on
	      the top and bottom</entry>
	    </row>

	    <row valign="top">
	      <entry>"child-internal-pad-y"</entry>
	      <entry>Read</entry>
	      <entry>The amount of padding that increases a child's size on
	      the top and bottom</entry>
	    </row>

	    <row valign="top">
	      <entry>"child-min-height"</entry>
	      <entry>Read</entry>
	      <entry>The minimum height of buttons inside the box.</entry>
	    </row>

	    <row valign="top">
	      <entry>"child-min-width"</entry>
	      <entry>Read</entry>
	      <entry>The minimum width of buttons inside the box.</entry>
	    </row>

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

  </refsect1>

  <refsect1 id="child-properties-gtkbuttonbox">
    <title>gtk.ButtonBox Child Properties</title>

    <para><link linkend="child-properties-gtkbox">gtk.Box Child 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="3.5in"/>
	  <tbody>

	    <row valign="top">
	      <entry>"secondary"</entry>
	      <entry>Read/Write</entry>
	<entry>If <literal>True</literal>, the child appears in a secondary
group of children, suitable for, e.g., help buttons.</entry>
	  </row>

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

  </refsect1>

  <refsect1 id="signal-prototypes-gtkbuttonbox">
    <title>gtk.ButtonBox 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>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>A button box is used to provide a consistent layout of buttons
throughout an application. The <link
linkend="class-gtkbuttonbox"><classname>gtk.ButtonBox</classname></link> is
subclassed by the <link
linkend="class-gtkhbuttonbox"><classname>gtk.HButtonBox</classname></link>
and <link
linkend="class-gtkvbuttonbox"><classname>gtk.VButtonBox</classname></link>
classes to provide horizontal and vertical button layouts respectively. The
same effect could be achieved by using a <link
linkend="class-gtkvbuttonbox"><classname>gtk.Box</classname></link> but less
conveniently.</para>

    <para>A buttonbox provides one default layout and a default spacing
value that are persistent across all widgets. The layout/spacing can then be
altered by the programmer, or if desired, by the user to alter the 'feel' of
a program to a small degree.</para>

    <para>The <link
linkend="method-gtkbox--get-spacing"><methodname>gtk.Box.get_spacing</methodname>()</link> 
method and the <link
linkend="method-gtkbox--set-spacing"><methodname>gtk.Box.set_spacing</methodname>()</link> 
methods retrieve and change the default number of pixels between buttons.
The <link
linkend="method-gtkbuttonbox--get-layout"><methodname>get_layout</methodname>()</link> 
and <link
linkend="method-gtkbuttonbox--set-layout"><methodname>set_layout</methodname>()</link> 
methods retrieve and alter the style used to spread the buttons in a button
box across the container. The layout styles are:
<literal>gtk.BUTTONBOX_SPREAD</literal>,
<literal>gtk.BUTTONBOX_EDGE</literal>,
<literal>gtk.BUTTONBOX_START</literal> and
<literal>gtk.BUTTONBOX_END</literal>.</para>

  </refsect1>

  <refsect1>
    <title>Methods</title>

    <refsect2 id="method-gtkbuttonbox--get-layout">
      <title>gtk.ButtonBox.get_layout</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_layout</methodname>
	  <methodparam></methodparam>  </methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>the layout style used by the
buttonbox</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>get_layout</methodname>() method returns the
current value of the "layout-style" property. The possible values are:
<literal>gtk.BUTTONBOX_SPREAD</literal>,
<literal>gtk.BUTTONBOX_EDGE</literal>,
<literal>gtk.BUTTONBOX_START</literal> and
<literal>gtk.BUTTONBOX_END</literal>.</para>

    </refsect2>

    <refsect2 id="method-gtkbuttonbox--set-layout">
      <title>gtk.ButtonBox.set_layout</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>set_layout</methodname>
	  <methodparam><parameter
			 role="keyword">layout_style</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter
role="keyword">layout_style</parameter>&nbsp;:</term>
	  <listitem><simpara>the new layout style</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>set_layout</methodname>() method sets the
"layout-style" property to the value in <parameter>layout_style</parameter>.
The possible values are: <literal>gtk.BUTTONBOX_SPREAD</literal>,
<literal>gtk.BUTTONBOX_EDGE</literal>,
<literal>gtk.BUTTONBOX_START</literal> and
<literal>gtk.BUTTONBOX_END</literal>.</para>

    </refsect2>

    <refsect2 id="method-gtkbuttonbox--get-child-secondary">
      <title>gtk.ButtonBox.get_child_secondary</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>get_child_secondary</methodname>
	  <methodparam><parameter
			 role="keyword">child</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter role="keyword">child</parameter>&nbsp;:</term>
	  <listitem><simpara>a child button of the
buttonbox</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><emphasis>Returns</emphasis>&nbsp;:</term>
	  <listitem><simpara>if <literal>True</literal>, the
<parameter>child</parameter> appears in a secondary group of the button
box.</simpara></listitem>
	</varlistentry>
      </variablelist>

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

      <para>The <methodname>get_child_secondary</methodname>() method
returns <literal>True</literal> if <parameter>child</parameter> should
appear in a secondary group of children. See the <link
linkend="method-gtkbuttonbox--set-child-secondary"><methodname>set_child_secondary</methodname>()</link>
method for more information.</para>

    </refsect2>

    <refsect2 id="method-gtkbuttonbox--set-child-secondary">
      <title>gtk.ButtonBox.set_child_secondary</title>

      <programlisting><methodsynopsis language="python">
	  <methodname>set_child_secondary</methodname>
	  <methodparam><parameter
			 role="keyword">child</parameter></methodparam>
	  <methodparam><parameter
			 role="keyword">is_secondary</parameter></methodparam>
	</methodsynopsis></programlisting>
      <variablelist>
	<varlistentry>
	  <term><parameter role="keyword">child</parameter>&nbsp;:</term>
	  <listitem><simpara>a child button of the
buttonbox</simpara></listitem>
	</varlistentry>
	<varlistentry>
	  <term><parameter
role="keyword">is_secondary</parameter>&nbsp;:</term>
	  <listitem><simpara>if <literal>True</literal>, the
<parameter>child</parameter> appears in a secondary group of the button
box.</simpara></listitem>
	</varlistentry>
      </variablelist>

      <para>The <methodname>set_child_secondary</methodname>() method sets
whether <parameter>child</parameter> should appear in a secondary group of
children. The typical use of a secondary child is the help button in a
dialog that is displayed away from the main group of buttons e.g. right
aligned.</para>

      <para>The secondary group appears after the other children if the
style is <literal>gtk.BUTTONBOX_START</literal>,
<literal>gtk.BUTTONBOX_SPREAD</literal> or
<literal>gtk.BUTTONBOX_EDGE</literal>, and before the the other children if
the style is <literal>gtk.BUTTONBOX_END</literal>. For horizontal button
boxes, the definition of before/after depends on direction of the widget
(see <link
linkend="method-gtkwidget--set-direction"><function>gtk.Widget.set_direction()</function></link>). 
If the style is <literal>gtk.BUTTONBOX_START</literal> or
<literal>gtk.BUTTONBOX_END</literal>, then the secondary children are
aligned at the other end of the button box from the main children. For the
other styles, they appear immediately next to the main children.</para>

    </refsect2>

  </refsect1>

</refentry>
