Blame docs/tutorial/html/x363.html

Packit Service fb6fa5
Packit Service fb6fa5
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Details of Boxes
Packit Service fb6fa5
>
Packit Service fb6fa5
NAME="GENERATOR"
Packit Service fb6fa5
CONTENT="Modular DocBook HTML Stylesheet Version 1.79">
Packit Service fb6fa5
REL="HOME"
Packit Service fb6fa5
TITLE="GTK+ 2.0 Tutorial"
Packit Service fb6fa5
HREF="book1.html">
Packit Service fb6fa5
REL="UP"
Packit Service fb6fa5
TITLE="Packing Widgets"
Packit Service fb6fa5
HREF="c354.html">
Packit Service fb6fa5
REL="PREVIOUS"
Packit Service fb6fa5
TITLE="Packing Widgets"
Packit Service fb6fa5
HREF="c354.html">
Packit Service fb6fa5
REL="NEXT"
Packit Service fb6fa5
TITLE="Packing Demonstration Program"
Packit Service fb6fa5
HREF="x386.html">
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="SECT1"
Packit Service fb6fa5
BGCOLOR="#FFFFFF"
Packit Service fb6fa5
TEXT="#000000"
Packit Service fb6fa5
LINK="#0000FF"
Packit Service fb6fa5
VLINK="#840084"
Packit Service fb6fa5
ALINK="#0000FF"
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NAVHEADER"
Packit Service fb6fa5
>
Packit Service fb6fa5
SUMMARY="Header navigation table"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
CELLPADDING="0"
Packit Service fb6fa5
CELLSPACING="0"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
COLSPAN="3"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
>GTK+ 2.0 Tutorial
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="10%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="c354.html"
Packit Service fb6fa5
ACCESSKEY="P"
Packit Service fb6fa5
><<< Previous
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="80%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>Packing Widgets
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="10%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="bottom"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x386.html"
Packit Service fb6fa5
ACCESSKEY="N"
Packit Service fb6fa5
>Next >>>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
ALIGN="LEFT"
Packit Service fb6fa5
WIDTH="100%">
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="SECT1"
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="SECT1"
Packit Service fb6fa5
>
Packit Service fb6fa5
NAME="SEC-DETAILSOFBOXES"
Packit Service fb6fa5
>Details of Boxes
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Because of this flexibility, packing boxes in GTK can be confusing at
Packit Service fb6fa5
first. There are a lot of options, and it's not immediately obvious how
Packit Service fb6fa5
they all fit together. In the end, however, there are basically five
Packit Service fb6fa5
different styles.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="INLINEMEDIAOBJECT"
Packit Service fb6fa5
>
Packit Service fb6fa5
SRC="images/packbox1.png">
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Each line contains one horizontal box (hbox) with several buttons. The
Packit Service fb6fa5
call to gtk_box_pack is shorthand for the call to pack each of the
Packit Service fb6fa5
buttons into the hbox. Each of the buttons is packed into the hbox the
Packit Service fb6fa5
same way (i.e., same arguments to the gtk_box_pack_start() function).
Packit Service fb6fa5
>
Packit Service fb6fa5
>This is the declaration of the gtk_box_pack_start() function.
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>void gtk_box_pack_start( GtkBox    *box,
Packit Service fb6fa5
                         GtkWidget *child,
Packit Service fb6fa5
                         gboolean   expand,
Packit Service fb6fa5
                         gboolean   fill,
Packit Service fb6fa5
                         guint      padding );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>The first argument is the box you are packing the object into, the
Packit Service fb6fa5
second is the object. The objects will all be buttons for now, so
Packit Service fb6fa5
we'll be packing buttons into boxes.
Packit Service fb6fa5
>
Packit Service fb6fa5
>The expand argument to gtk_box_pack_start() and gtk_box_pack_end()
Packit Service fb6fa5
controls whether the widgets are laid out in the box to fill in all
Packit Service fb6fa5
the extra space in the box so the box is expanded to fill the area
Packit Service fb6fa5
allotted to it (TRUE); or the box is shrunk to just fit the widgets
Packit Service fb6fa5
(FALSE). Setting expand to FALSE will allow you to do right and left
Packit Service fb6fa5
justification of your widgets.  Otherwise, they will all expand to fit
Packit Service fb6fa5
into the box, and the same effect could be achieved by using only one
Packit Service fb6fa5
of gtk_box_pack_start() or gtk_box_pack_end().
Packit Service fb6fa5
>
Packit Service fb6fa5
>The fill argument to the gtk_box_pack functions control whether the
Packit Service fb6fa5
extra space is allocated to the objects themselves (TRUE), or as extra
Packit Service fb6fa5
padding in the box around these objects (FALSE). It only has an effect
Packit Service fb6fa5
if the expand argument is also TRUE.
Packit Service fb6fa5
>
Packit Service fb6fa5
>When creating a new box, the function looks like this:
Packit Service fb6fa5
>
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
BGCOLOR="#E0E0E0"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="PROGRAMLISTING"
Packit Service fb6fa5
>GtkWidget *gtk_hbox_new ( gboolean homogeneous,
Packit Service fb6fa5
                          gint     spacing );
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>The homogeneous argument to gtk_hbox_new() (and the same for
Packit Service fb6fa5
gtk_vbox_new()) controls whether each object in the box has the same
Packit Service fb6fa5
size (i.e., the same width in an hbox, or the same height in a
Packit Service fb6fa5
vbox). If it is set, the gtk_box_pack() routines function essentially
Packit Service fb6fa5
as if the 
Packit Service fb6fa5
CLASS="LITERAL"
Packit Service fb6fa5
>expand
Packit Service fb6fa5
> argument was always turned on.
Packit Service fb6fa5
>
Packit Service fb6fa5
>What's the difference between spacing (set when the box is created)
Packit Service fb6fa5
and padding (set when elements are packed)? Spacing is added between
Packit Service fb6fa5
objects, and padding is added on either side of an object. The
Packit Service fb6fa5
following figure should make it clearer:
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="INLINEMEDIAOBJECT"
Packit Service fb6fa5
>
Packit Service fb6fa5
SRC="images/packbox2.png">
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>Here is the code used to create the above images. I've commented it
Packit Service fb6fa5
fairly heavily so I hope you won't have any problems following
Packit Service fb6fa5
it. Compile it yourself and play with it.
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
CLASS="NAVFOOTER"
Packit Service fb6fa5
>
Packit Service fb6fa5
ALIGN="LEFT"
Packit Service fb6fa5
WIDTH="100%">
Packit Service fb6fa5
SUMMARY="Footer navigation table"
Packit Service fb6fa5
WIDTH="100%"
Packit Service fb6fa5
BORDER="0"
Packit Service fb6fa5
CELLPADDING="0"
Packit Service fb6fa5
CELLSPACING="0"
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="c354.html"
Packit Service fb6fa5
ACCESSKEY="P"
Packit Service fb6fa5
><<< Previous
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="34%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="book1.html"
Packit Service fb6fa5
ACCESSKEY="H"
Packit Service fb6fa5
>Home
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="x386.html"
Packit Service fb6fa5
ACCESSKEY="N"
Packit Service fb6fa5
>Next >>>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="left"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>Packing Widgets
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="34%"
Packit Service fb6fa5
ALIGN="center"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>
Packit Service fb6fa5
HREF="c354.html"
Packit Service fb6fa5
ACCESSKEY="U"
Packit Service fb6fa5
>Up
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
WIDTH="33%"
Packit Service fb6fa5
ALIGN="right"
Packit Service fb6fa5
VALIGN="top"
Packit Service fb6fa5
>Packing Demonstration Program
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>
Packit Service fb6fa5
>