|
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 |
>
|