summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBST 2000 Tony Gale <gale@gtk.org>2000-07-21 13:26:25 +0000
committerTony Gale <gale@src.gnome.org>2000-07-21 13:26:25 +0000
commita7ac5157d072913d24ca407c47923184c5638ccd (patch)
tree4ed0826a17898ba9967e7ff843e872e36ff4a851 /docs
parent631205ddc7a443ffaa4d1ef71cc3c0d973017c2b (diff)
downloadgtk+-a7ac5157d072913d24ca407c47923184c5638ccd.tar.gz
Minor updates
Fri Jul 21 14:23:51 BST 2000 Tony Gale <gale@gtk.org> * docs/tutorial/gtk-tut.sgml: Minor updates * docs/tutorial/*.jpg *.eps: Screenshots for tutorial
Diffstat (limited to 'docs')
-rwxr-xr-xdocs/tutorial/gtk-tut.sgml406
-rw-r--r--docs/tutorial/gtk_tut_packbox1.eps1111
-rw-r--r--docs/tutorial/gtk_tut_packbox1.jpgbin0 -> 25975 bytes
-rw-r--r--docs/tutorial/gtk_tut_packbox2.eps1042
-rw-r--r--docs/tutorial/gtk_tut_packbox2.jpgbin0 -> 21958 bytes
-rw-r--r--docs/tutorial/gtk_tut_table.eps654
-rw-r--r--docs/tutorial/gtk_tut_table.jpgbin0 -> 4315 bytes
7 files changed, 3010 insertions, 203 deletions
diff --git a/docs/tutorial/gtk-tut.sgml b/docs/tutorial/gtk-tut.sgml
index fc16fa0287..8d9bbf9299 100755
--- a/docs/tutorial/gtk-tut.sgml
+++ b/docs/tutorial/gtk-tut.sgml
@@ -2,7 +2,7 @@
<book id="gtk-tut">
<bookinfo>
- <date>July 18th 2000</date>
+ <date>July 21st 2000</date>
<title>GTK+ 1.2 Tutorial</title>
<authorgroup>
<author>
@@ -233,7 +233,7 @@ When control reaches this point, GTK will sleep waiting for X events
occur. In our simple example, however, events are ignored.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-HelloWorld">
<title>Hello World in GTK</title>
<para>Now for a program with a widget (a button). It's the classic
@@ -402,7 +402,7 @@ purposes.</simpara>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheoryOfSignalsAndCallbacks">
<title>Theory of Signals and Callbacks</title>
<para>Before we look in detail at <emphasis>helloworld</emphasis>, we'll discuss signals
@@ -486,7 +486,7 @@ data supplied to the callbacks.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Events">
<title>Events</title>
<para>In addition to the signal mechanism described above, there is a set
@@ -646,7 +646,7 @@ propagation process.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SteppingThroughHelloWorld">
<title>Stepping Through Hello World</title>
<para>Now that we know the theory behind this, let's clarify by walking
@@ -869,7 +869,7 @@ callback, exiting GTK.</para>
<title>Moving On</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-DataTypes">
<title>Data Types</title>
<para>There are a few things you probably noticed in the previous examples
@@ -890,7 +890,7 @@ is an object.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-MoreOnSignalHandlers">
<title>More on Signal Handlers</title>
<para>Lets take another look at the gtk_signal_connect declaration.</para>
@@ -947,7 +947,7 @@ void gtk_signal_handler_unblock_by_data( GtkObject *object,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-AnUpgradedHelloWorld">
<title>An Upgraded Hello World</title>
<para>Let's take a look at a slightly improved <emphasis>helloworld</emphasis> with
@@ -1081,7 +1081,7 @@ into a window, how do you control where that widget is positioned?
This is where packing comes in.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheoryOfPackingBoxes">
<title>Theory of Packing Boxes</title>
<para>Most packing is done by creating boxes as in the example above. These
@@ -1115,7 +1115,7 @@ placing and creating widgets.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-DetailsOfBoxes">
<title>Details of Boxes</title>
<para>Because of this flexibility, packing boxes in GTK can be confusing at
@@ -1126,7 +1126,7 @@ different styles.</para>
<para>
<inlinemediaobject>
<imageobject>
-<imagedata fileref="gtk_tut_packbox1.gif">
+<imagedata fileref="gtk_tut_packbox1.jpg">
</imageobject>
<imageobject>
<imagedata fileref="gtk_tut_packbox1.eps">
@@ -1188,7 +1188,7 @@ following figure should make it clearer:</para>
<para>
<inlinemediaobject>
<imageobject>
-<imagedata fileref="gtk_tut_packbox2.gif">
+<imagedata fileref="gtk_tut_packbox2.jpg">
</imageobject>
<imageobject>
<imagedata fileref="gtk_tut_packbox2.eps">
@@ -1203,7 +1203,7 @@ it. Compile it yourself and play with it.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-PackingDemonstrationProgram">
<title>Packing Demonstration Program</title>
<programlisting role="C">
@@ -1505,7 +1505,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-PackingUsingTables">
<title>Packing Using Tables</title>
<para>Let's take a look at another way of packing - Tables. These can be
@@ -1655,7 +1655,7 @@ any spacing.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TablePackingExamples">
<title>Table Packing Example</title>
<para>Here we make a window with three buttons in a 2x2 table.
@@ -1666,7 +1666,7 @@ Which means it should look something like this:</para>
<para>
<inlinemediaobject>
<imageobject>
-<imagedata fileref="gtk_tut_table.gif">
+<imagedata fileref="gtk_tut_table.jpg">
</imageobject>
<imageobject>
<imagedata fileref="gtk_tut_table.eps">
@@ -1816,8 +1816,8 @@ children of a widget (a window is a widget too) will not be displayed
until the window itself is shown using the gtk_widget_show() function.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Casting</title>
+<sect1 id="sec-Casting">
+<title>Casting</title>
<para>You'll notice as you go on that GTK uses a type casting system. This
is always done using macros that both test the ability to cast the
@@ -1865,7 +1865,7 @@ learn how a widget works just by looking at the function declarations.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-WidgetHierarchy">
<title>Widget Hierarchy</title>
<para>For your reference, here is the class hierarchy tree used to implement widgets.</para>
@@ -1969,7 +1969,7 @@ learn how a widget works just by looking at the function declarations.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-WidgetsWithoutWindows">
<title>Widgets Without Windows</title>
<para>The following widgets do not have an associated window. If you want to
@@ -2009,7 +2009,7 @@ gtk/testgtk.c.</para>
<title>The Button Widget</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-NormalButtons">
<title>Normal Buttons</title>
<para>We've almost seen all there is to see of the button widget. It's
@@ -2178,8 +2178,8 @@ released within Button widget</simpara>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Toggle Buttons</title>
+<sect1 id="sec-ToggleButtons">
+<title>Toggle Buttons</title>
<para>Toggle buttons are derived from normal buttons and are very similar,
except they will always be in one of two states, alternated by a
@@ -2254,8 +2254,8 @@ void gtk_toggle_button_toggled (GtkToggleButton *toggle_button);
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Check Buttons</title>
+<sect1 id="sec-CheckButtons">
+<title>Check Buttons</title>
<para>Check buttons inherit many properties and functions from the the
toggle buttons above, but look a little different. Rather than being
@@ -2474,7 +2474,7 @@ that incorporate them:
<link linkend="sec-ScrolledWindows">Scrolled Windows</link>, and others.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-CreatingAnAdjustment">
<title>Creating an Adjustment</title>
<para>Many of the widgets which use adjustment objects do so automatically,
@@ -2506,8 +2506,8 @@ usually non-zero.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Using Adjustments the Easy Way</title>
+<sect1 id="sec-UsingAdjustments">
+<title>Using Adjustments the Easy Way</title>
<para>The adjustable widgets can be roughly divided into those which use and
require specific units for these values and those which treat them as
@@ -2549,8 +2549,8 @@ widget? Of course it will! Just like this:</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Adjustment Internals</title>
+<sect1 id="sec-AdjustmentInternals">
+<title>Adjustment Internals</title>
<para>Ok, you say, that's nice, but what if I want to create my own handlers
to respond when the user adjusts a range widget or a spin button, and
@@ -2675,7 +2675,7 @@ trough. When the user manipulates the slider, the range widget will
change the value of the adjustment.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ScrollbarWidgets">
<title>Scrollbar Widgets</title>
<para>These are your standard, run-of-the-mill scrollbars. These should be
@@ -2706,8 +2706,8 @@ widget.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Scale Widgets</title>
+<sect1 id="sec-ScaleWidgets">
+<title>Scale Widgets</title>
<para>Scale widgets are used to allow the user to visually select and
manipulate a value within a specific range. You might want to use a
@@ -2809,7 +2809,7 @@ of all widgets that interest you,</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-CommonRangeFunctions">
<title>Common Range Functions</title>
<para>The Range widget class is fairly complicated internally, but, like
@@ -2895,7 +2895,7 @@ gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "changed");
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-KeyAndMouseBindings">
<title>Key and Mouse bindings</title>
<para>All of the GTK range widgets react to mouse clicks in more or less
@@ -2943,7 +2943,7 @@ and <literal>Control-Page Down</literal>.</para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> Horizontal Range Widgets</title>
+<title>Horizontal Range Widgets</title>
<para>The left and right arrow keys work as you might expect in these
widgets, moving the slider back and forth by <literal>step_increment</literal>. The
@@ -2957,7 +2957,7 @@ while for HScrollbar, it's done with <literal>Control-Home</literal> and
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-RangeWidgetsExample">
<title>Example</title>
<para>This example is a somewhat modified version of the "range controls"
@@ -3275,7 +3275,7 @@ window.</para>
<title>Miscellaneous Widgets</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Labels">
<title>Labels</title>
<para>Labels are used a lot in GTK, and are relatively simple. Labels emit
@@ -3465,7 +3465,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Arrows">
<title>Arrows</title>
<para>The Arrow widget draws an arrowhead, facing in a number of possible
@@ -3588,7 +3588,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheTooltipsObject">
<title>The Tooltips Object</title>
<para>These are the little text strings that pop up when you leave your
@@ -4122,8 +4122,8 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Dialogs</title>
+<sect1 id="sec-Dialogs">
+<title>Dialogs</title>
<para>The Dialog widget is very simple, and is actually just a window with a
few things pre-packed into it for you. The structure for a Dialog is:</para>
@@ -4649,7 +4649,7 @@ makes the application terminate.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Rulers">
<title>Rulers</title>
<para>Ruler widgets are used to indicate the location of the mouse pointer
@@ -4821,7 +4821,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Statusbars">
<title>Statusbars</title>
<para>Statusbars are simple widgets used to display a text message. They
@@ -4959,7 +4959,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TextEntries">
<title>Text Entries</title>
<para>The Entry widget allows text to be typed and displayed in a single line
@@ -5152,7 +5152,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SpinButtons">
<title>Spin Buttons</title>
<para>The Spin Button widget is generally used to allow the user to select a
@@ -5623,7 +5623,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ComboBox">
<title>Combo Box</title>
<para>The combo box is another fairly simple widget that is really just a
@@ -5795,7 +5795,7 @@ appropriate Item. Frankly, I have no idea how to do that.
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Calendar">
<title>Calendar</title>
<para>The Calendar widget is an effective way to display and retrieve
@@ -6383,8 +6383,8 @@ int main(int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Color Selection</title>
+<sect1 id="sec-ColorSelection">
+<title>Color Selection</title>
<para>The color selection widget is, not surprisingly, a widget for
interactive selection of colors. This composite widget lets the user
@@ -6639,7 +6639,7 @@ gint main( gint argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-FileSelections">
<title>File Selections</title>
<para>The file selection widget is a quick and simple way to display a File
@@ -6846,7 +6846,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheAlignmentWidget">
<title>The Alignment widget</title>
<para>The alignment widget allows you to place a widget within its window at
@@ -6891,7 +6891,7 @@ the <link linkend="sec-ProgressBars">Progress Bar</link> widget.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-FixedContainer">
<title>Fixed Container</title>
<para>The Fixed container allows you to place widgets at a fixed position
@@ -7005,8 +7005,8 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Layout Container</title>
+<sect1 id="sec-LayoutContainer">
+<title>Layout Container</title>
<para>The Layout container is similar to the Fixed container except that it
implements an infinite (where infinity is less than 2^32) scrolling
@@ -7196,8 +7196,8 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Aspect Frames</title>
+<sect1 id="sec-AspectFrames">
+<title>Aspect Frames</title>
<para>The aspect frame widget is like a frame widget, except that it also
enforces the aspect ratio (that is, the ratio of the width to the
@@ -7286,7 +7286,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-PanedWindowWidgets">
<title>Paned Window Widgets</title>
<para>The paned window widgets are useful when you want to divide an area
@@ -7702,7 +7702,7 @@ the default size of the window or other widgets.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ButtonBoxes">
<title>Button Boxes</title>
<para>Button Boxes are a convenient way to quickly layout a group of
@@ -7897,7 +7897,7 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Toolbar">
<title>Toolbar</title>
<para>Toolbars are usually used to group some number of widgets in order to
@@ -8338,8 +8338,8 @@ static char * gtk_xpm[] = {
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Notebooks</title>
+<sect1 id="sec-Notebooks">
+<title>Notebooks</title>
<para>The NoteBook Widget is a collection of "pages" that overlap each
other, each page contains different information with only one page
@@ -8686,7 +8686,7 @@ optionally have a title, which itself is optionally active, allowing
us to bind a function to its selection.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-CreatingACListWidget">
<title>Creating a CList widget</title>
<para>Creating a CList is quite straightforward, once you have learned
@@ -8720,7 +8720,7 @@ functionality. This is a change from the GTK 1.0 implementation.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ModesOfOperating">
<title>Modes of operation</title>
<para>There are several attributes that can be used to alter the behaviour of
@@ -8780,7 +8780,7 @@ void gtk_clist_set_shadow_type( GtkCList *clist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-WorkingWithTitles">
<title>Working with titles</title>
<para>When you create a CList widget, you will also get a set of title
@@ -8846,7 +8846,7 @@ void gtk_clist_set_column_widget( GtkCList *clist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ManipulatingTheListItself">
<title>Manipulating the list itself</title>
<para>It is possible to change the justification for a column, and it is
@@ -8966,7 +8966,7 @@ void gtk_clist_set_background( GtkCList *clist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-AddingRowsToTheList">
<title>Adding rows to the list</title>
<para>We can add rows in three ways. They can be prepended or appended to
@@ -9029,7 +9029,7 @@ void gtk_clist_thaw( GtkCList * clist );
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SettingTextAndPixmapsInTheCells">
<title>Setting text and pixmaps in the cells</title>
<para>A cell can contain a pixmap, text or both. To set them the following
@@ -9133,7 +9133,7 @@ void gtk_clist_set_shift( GtkCList *clist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-StoringDataPointers">
<title>Storing data pointers</title>
<para>With a CList it is possible to set a data pointer for a row. This
@@ -9163,7 +9163,7 @@ gint gtk_clist_find_row_from_data( GtkCList *clist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-WorkingWithSelections">
<title>Working with selections</title>
<para>There are also functions available that let us force the (un)selection
@@ -9199,7 +9199,7 @@ Luckily, there is a simpler way...</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheSignalsThatBringItTogether">
<title>The signals that bring it together</title>
<para>As with all other widgets, there are a few signals that can be used. The
@@ -9242,7 +9242,7 @@ gtk_signal_connect(GTK_OBJECT( clist),
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ACListExample">
<title>A CList example</title>
<programlisting role="C">
@@ -9438,8 +9438,8 @@ required by the user.</para>
<para>This section of the tutorial is under development.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Creating a CTree</title>
+<sect1 id="sec-CreatingACTree">
+<title>Creating a CTree</title>
<para>A CTree, being derived from CList, can have multiple columns. These
columns optionally have titles that are displayed along the top of
@@ -9479,7 +9479,7 @@ and "Description", with the first column containing the tree.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-AddingAndRemovingNodes">
<title>Adding and Removing nodes</title>
<para>The items in a CTree are termed <emphasis>nodes</emphasis>. Nodes are inserted
@@ -9575,8 +9575,8 @@ remove.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Setting CTree Attributes</title>
+<sect1 id="sec-SettingCTreeAttributes">
+<title>Setting CTree Attributes</title>
<para>There are a number of functions that set options that pertain to a
CTree instance as a whole (rather than to a particular node). The
@@ -9635,7 +9635,7 @@ can be one of:</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-UtilizingRowData">
<title>Utilizing row data</title>
<para>The CTree widget allows you to associate data with each node of the
@@ -9697,8 +9697,8 @@ the same way as the corresponding CList ones. However, Tree is
not derived from CList, so you cannot use them interchangeably.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Creating a Tree</title>
+<sect1 id="sec-CreatingATree">
+<title>Creating a Tree</title>
<para>A Tree is created in the usual way, using:</para>
@@ -9740,7 +9740,7 @@ equivalent to gtk_list_*_items().</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-AddingASubtree">
<title>Adding a Subtree</title>
<para>A subtree is created like any other Tree widget. A subtree is added
@@ -9768,8 +9768,8 @@ expects.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Handling the Selection List</title>
+<sect1 id="sec-HandlingTheSelectionList">
+<title>Handling the Selection List</title>
<para>As with CList, the Tree type has a <literal>selection</literal> field, and
it is possible to control the behaviour of the tree (somewhat) by
@@ -9814,7 +9814,7 @@ to call gtk_signal_connect() for every subtree.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TreeWidgetInternals">
<title>Tree Widget Internals</title>
<para>The Tree's struct definition looks like this:</para>
@@ -10321,7 +10321,7 @@ GtkWidget GTK_TREE_ITEM_SUBTREE (gpointer obj)
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TreeExample">
<title>Tree Example</title>
<para>This is somewhat like the tree example in testgtk.c, but a lot less
@@ -10535,7 +10535,7 @@ Itemfactory, it is not possible to add images or the character '/' to
the menus.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ManualMenuCreation">
<title>Manual Menu Creation</title>
<para>In the true tradition of teaching, we'll show you the hard way
@@ -10757,7 +10757,7 @@ by a menu bar, as shown in the sample code.</simpara>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ManualMenuExample">
<title>Manual Menu Example</title>
<para>That should about do it. Let's take a look at an example to help clarify.</para>
@@ -10905,7 +10905,7 @@ table, bind keys to menu functions.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-UsingItemFactory">
<title>Using ItemFactory</title>
<para>Now that we've shown you the hard way, here's how you do it using the
@@ -10914,7 +10914,7 @@ gtk_item_factory calls.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ItemFactoryExample">
<title>Item Factory Example</title>
<para>Here is an example using the GTK item factory.</para>
@@ -11056,7 +11056,7 @@ use of double- and triple-click to select a word and a whole line,
respectively.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-CreatingAndConfiguringATextBox">
<title>Creating and Configuring a Text box</title>
<para>There is only one function for creating a new Text widget.</para>
@@ -11133,7 +11133,7 @@ TRUE or FALSE value.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TextManipulation">
<title>Text Manipulation</title>
<para>The current insertion point of a Text widget can be set using</para>
@@ -11236,7 +11236,7 @@ with it.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-KeyBoardShortcuts">
<title>Keyboard Shortcuts</title>
<para>The text widget has a number of pre-installed keyboard shortcuts for
@@ -11311,7 +11311,7 @@ extend the selection.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-AGtkTextExample">
<title>A GtkText Example</title>
<programlisting role="C">
@@ -11524,7 +11524,7 @@ widget, please consider writing a tutorial on it so others may benefit
from your time.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-CTree">
<title>CTree</title>
<para></para>
@@ -11532,64 +11532,64 @@ from your time.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Curves</title>
+<sect1 id="sec-Curves">
+<title>Curves</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Drawing Area</title>
+<sect1 id="sec-DrawingArea">
+<title>Drawing Area</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Font Selection Dialog</title>
+<sect1 id="sec-FontSelectionDialog">
+<title>Font Selection Dialog</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Gamma Curve</title>
+<sect1 id="sec-GammaCurve">
+<title>Gamma Curve</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Image</title>
+<sect1 id="sec-Image">
+<title>Image</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Packer</title>
+<sect1 id="sec-Packer">
+<title>Packer</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Plugs and Sockets</title>
+<sect1 id="sec-PlugsAndSockets">
+<title>Plugs and Sockets</title>
<para></para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Preview</title>
+<sect1 id="sec-Preview">
+<title>Preview</title>
<para></para>
@@ -12100,7 +12100,7 @@ void gtk_widget_hide( GtkWidget *widget );
<title>Timeouts, IO and Idle Functions</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Timeouts">
<title>Timeouts</title>
<para>You may be wondering how you make GTK do useful work when in gtk_main.
@@ -12138,7 +12138,7 @@ gint timeout_callback( gpointer data );
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-MonitoringIO">
<title>Monitoring IO</title>
<para>A nifty feature of GDK (the library that underlies GTK), is the
@@ -12191,7 +12191,7 @@ void input_callback( gpointer data,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-IdleFunctions">
<title>Idle Functions</title>
<para><!-- TODO: Need to check on idle priorities - TRG -->
@@ -12224,7 +12224,7 @@ called.</para>
<title>Advanced Event and Signal Handling</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SignalFunctions">
<title>Signal Functions</title>
<!-- ----------------------------------------------------------------- -->
@@ -12355,7 +12355,7 @@ void gtk_signal_emit_stop_by_name( GtkObject *object,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SignalEmissionAndPropagation">
<title>Signal Emission and Propagation</title>
<para>Signal emission is the process whereby GTK runs all handlers for a
@@ -12411,7 +12411,7 @@ the signal is propagated, not the current emission.</simpara>
<title>Managing Selections</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SelectionsOverview">
<title>Overview</title>
<para>One type of interprocess communication supported by X and GTK is
@@ -12449,8 +12449,8 @@ selections and targets are identified by atoms.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Retrieving the selection</title>
+<sect1 id="sec-RetrievingTheSelection">
+<title>Retrieving the selection</title>
<para>Retrieving the selection is an asynchronous process. To start the
process, you call:</para>
@@ -12609,8 +12609,8 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title>Supplying the selection </title>
+<sect1 id="sec-SupplyingTheSelection">
+<title>Supplying the selection</title>
<para>Supplying the selection is a bit more complicated. You must register
handlers that will be called when your selection is requested. For
@@ -12821,7 +12821,7 @@ have equivalent functionality built-in, while in other cases it may
not.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Definitions">
<title>Definitions</title>
<para>Definitions for the extremes of many of the standard types are:</para>
@@ -12873,7 +12873,7 @@ guint32
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-DoublyLinkedLists">
<title>Doubly Linked Lists</title>
<para>The following functions are used to create, manage, and destroy
@@ -12969,7 +12969,7 @@ void g_list_foreach( GList *list,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SinglyLinkedLists">
<title>Singly Linked Lists</title>
<para>Many of the above functions for singly linked lists are identical to the
@@ -13013,7 +13013,7 @@ void g_slist_foreach( GSList *list,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-MemoryManagement">
<title>Memory Management</title>
<programlisting role="C">
@@ -13061,7 +13061,7 @@ MEM_CHECK</literal> to the top of gmem.c and re-make and make install.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Timers">
<title>Timers</title>
<para>Timer functions can be used to time operations (e.g., to see how much
@@ -13088,7 +13088,7 @@ gdouble g_timer_elapsed( GTimer *timer,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-StringHandling">
<title>String Handling</title>
<para>GLib defines a new type called a GString, which is similar to a
@@ -13166,7 +13166,7 @@ void g_string_sprintfa ( GString *string,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-UtilityAndErrorFunctions">
<title>Utility and Error Functions</title>
<programlisting role="C">
@@ -13244,8 +13244,8 @@ files. These can be used to set the colors of just about any widget, and
can also be used to tile pixmaps onto the background of some widgets. </para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title>Functions For rc Files </title>
+<sect1 id="sec-FunctionsForRCFiles">
+<title>Functions For rc Files</title>
<para>When your application starts, you should include a call to:</para>
@@ -13304,7 +13304,7 @@ imagination as to how best to take advantage of this.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GTKsRCFileFormat">
<title>GTK's rc File Format</title>
<para>The format of the GTK file is illustrated in the example below. This is
@@ -13408,7 +13408,7 @@ simple matter of common sense really. Anything that could apply, should.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ExampleRCFile">
<title>Example rc file</title>
<programlisting role="C">
@@ -13543,11 +13543,11 @@ widget "main window.*GtkButton*" style "main_button"
<!-- ***************************************************************** -->
<chapter id="ch-WritingYourOwnWidgets">
-<title>Writing Your Own Widgets </title>
+<title>Writing Your Own Widgets</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Overview</title>
+<sect1 id="sec-WidgetsOverview">
+<title>Overview</title>
<para>Although the GTK distribution comes with many types of widgets that
should cover most basic needs, there may come a time when you need to
@@ -13572,8 +13572,8 @@ got this tutorial, or from:</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> The Anatomy Of A Widget</title>
+<sect1 id="sec-TheAnatomyOfAWidget">
+<title>The Anatomy Of A Widget</title>
<para>In order to create a new widget, it is important to have an
understanding of how GTK objects work. This section is just meant as a
@@ -13634,12 +13634,12 @@ cast to the parent class' object structure as needed.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Creating a Composite widget</title>
+<sect1 id="sec-CreatingACompositeWidget">
+<title>Creating a Composite widget</title>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> Introduction</title>
+<title>Introduction</title>
<para>One type of widget that you may be interested in creating is a
widget that is merely an aggregate of other GTK widgets. This type of
@@ -13657,7 +13657,7 @@ depressed. </para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> Choosing a parent class</title>
+<title>Choosing a parent class</title>
<para>The parent class for a composite widget is typically the container
class that holds all of the elements of the composite widget. For
@@ -13681,7 +13681,7 @@ from VBox instead, and stick our table inside the VBox.</para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> The header file</title>
+<title>The header file</title>
<para>Each widget class has a header file which declares the object and
class structures for that widget, along with public functions.
@@ -14138,8 +14138,8 @@ main (int argc, char *argv[])
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title>Creating a widget from scratch.</title>
+<sect1 id="sec-CreatingAWidgetFromScratch">
+<title>Creating a widget from scratch</title>
<!-- ----------------------------------------------------------------- -->
<sect2>
@@ -14154,7 +14154,7 @@ set the value.</para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> Displaying a widget on the screen</title>
+<title>Displaying a widget on the screen</title>
<para>There are several steps that are involved in displaying on the screen.
After the widget is created with a call to <literal>WIDGETNAME_new()</literal>,
@@ -14212,7 +14212,7 @@ an <literal>expose()</literal> function.</para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> The origins of the Dial Widget</title>
+<title>The origins of the Dial Widget</title>
<para>Just as all land animals are just variants on the first amphibian that
crawled up out of the mud, GTK widgets tend to start off as variants
@@ -14231,7 +14231,7 @@ would be a good idea to look them over before continuing.</para>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> The Basics</title>
+<title>The Basics</title>
<para>Quite a bit of our widget should look pretty familiar from the
Tictactoe widget. First, we have a header file:</para>
@@ -15039,7 +15039,7 @@ entry widget to display the current value of the dial.</simpara>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-LearningMore">
<title>Learning More</title>
<para>Only a small part of the many details involved in creating widgets
@@ -15058,7 +15058,7 @@ Good luck!</para>
<title>Scribble, A Simple Example Drawing Program</title>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-ScribbleOverview">
<title>Overview</title>
<para>In this section, we will build a simple drawing program. In the
@@ -15072,7 +15072,7 @@ pressure and tilt, from such devices quite easy.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-EventHandling">
<title>Event Handling</title>
<para>The GTK signals we have already discussed are for high-level actions,
@@ -15284,7 +15284,7 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event)
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-TheDrawingAreaWidget">
<title>The DrawingArea Widget, And Drawing</title>
<para>We now turn to the process of drawing on the screen. The
@@ -15497,8 +15497,8 @@ mundane details like creating the main window.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Adding XInput support</title>
+<sect1 id="sec-AddingXInputSupport">
+<title>Adding XInput support</title>
<para>It is now possible to buy quite inexpensive input devices such
as drawing tablets, which allow drawing with a much greater
@@ -15966,7 +15966,7 @@ Notebook, Progress Bar, Dialogs, and File selection widgets. Thanks a
lot Mark! You've been a great help.</simpara>
</listitem>
-<listitem><simpara>Tim Janik <literal><ulink url="mailto:timj@gtk.org">timj@psynet.net</ulink></literal> for his great job on the Lists
+<listitem><simpara>Tim Janik <literal><ulink url="mailto:timj@gtk.org">timj@gtk.org</ulink></literal> for his great job on the Lists
Widget. His excellent work on automatically extracting the widget tree
and signal information from GTK. Thanks Tim :)</simpara>
</listitem>
@@ -16049,7 +16049,7 @@ signals. Therefore, you should refer to the widget hierarchy tree when
using the signals listed in this section.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkObject">
<title>GtkObject</title>
<programlisting role="C">
@@ -16060,7 +16060,7 @@ void GtkObject::destroy (GtkObject *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkWidget">
<title>GtkWidget</title>
<programlisting role="C">
@@ -16240,7 +16240,7 @@ void GtkWidget::debug-msg (GtkWidget *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkData">
<title>GtkData</title>
<programlisting role="C">
@@ -16251,7 +16251,7 @@ void GtkData::disconnect (GtkData *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkContainer">
<title>GtkContainer</title>
<programlisting role="C">
@@ -16274,7 +16274,7 @@ void GtkContainer::set-focus-child (GtkContainer *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkCalendar">
<title>GtkCalendar</title>
<programlisting role="C">
@@ -16297,7 +16297,7 @@ void GtkCalendar::next-year (GtkCalendar *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkEditable">
<title>GtkEditable</title>
<programlisting role="C">
@@ -16354,7 +16354,7 @@ void GtkEditable::paste-clipboard (GtkEditable *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkTipsQuery">
<title>GtkTipsQuery</title>
<programlisting role="C">
@@ -16378,7 +16378,7 @@ gboolean GtkTipsQuery::widget-selected (GtkTipsQuery *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkCList">
<title>GtkCList</title>
<programlisting role="C">
@@ -16437,7 +16437,7 @@ void GtkCList::abort-column-resize (GtkCList *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkNotebook">
<title>GtkNotebook</title>
<programlisting role="C">
@@ -16450,7 +16450,7 @@ void GtkNotebook::switch-page (GtkNotebook *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkList">
<title>GtkList</title>
<programlisting role="C">
@@ -16467,7 +16467,7 @@ void GtkList::unselect-child (GtkList *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkMenuShell">
<title>GtkMenuShell</title>
<programlisting role="C">
@@ -16488,7 +16488,7 @@ void GtkMenuShell::cancel (GtkMenuShell *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkToolbar">
<title>GtkToolbar</title>
<programlisting role="C">
@@ -16503,7 +16503,7 @@ void GtkToolbar::style-changed (GtkToolbar *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkTree">
<title>GtkTree</title>
<programlisting role="C">
@@ -16520,7 +16520,7 @@ void GtkTree::unselect-child (GtkTree *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkButton">
<title>GtkButton</title>
<programlisting role="C">
@@ -16539,7 +16539,7 @@ void GtkButton::leave (GtkButton *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkItem">
<title>GtkItem</title>
<programlisting role="C">
@@ -16554,7 +16554,7 @@ void GtkItem::toggle (GtkItem *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkWindow">
<title>GtkWindow</title>
<programlisting role="C">
@@ -16566,7 +16566,7 @@ void GtkWindow::set-focus (GtkWindow *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkHandleBox">
<title>GtkHandleBox</title>
<programlisting role="C">
@@ -16581,7 +16581,7 @@ void GtkHandleBox::child-detached (GtkHandleBox *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkToggleButton">
<title>GtkToggleButton</title>
<programlisting role="C">
@@ -16592,7 +16592,7 @@ void GtkToggleButton::toggled (GtkToggleButton *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkMenuItem">
<title>GtkMenuItem</title>
<programlisting role="C">
@@ -16605,7 +16605,7 @@ void GtkMenuItem::activate-item (GtkMenuItem *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkListItem">
<title>GtkListItem</title>
<programlisting role="C">
@@ -16641,7 +16641,7 @@ void GtkListItem::scroll-horizontal (GtkListItem *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkTreeItem">
<title>GtkTreeItem</title>
<programlisting role="C">
@@ -16654,7 +16654,7 @@ void GtkTreeItem::expand (GtkTreeItem *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkCheckMenuItem">
<title>GtkCheckMenuItem</title>
<programlisting role="C">
@@ -16665,7 +16665,7 @@ void GtkCheckMenuItem::toggled (GtkCheckMenuItem *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkInputDialog">
<title>GtkInputDialog</title>
<programlisting role="C">
@@ -16680,7 +16680,7 @@ void GtkInputDialog::disable-device (GtkInputDialog *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkColorSelection">
<title>GtkColorSelection</title>
<programlisting role="C">
@@ -16691,7 +16691,7 @@ void GtkColorSelection::color-changed (GtkColorSelection *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkStatusBar">
<title>GtkStatusBar</title>
<programlisting role="C">
@@ -16708,7 +16708,7 @@ void GtkStatusbar::text-popped (GtkStatusbar *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkCTree">
<title>GtkCTree</title>
<programlisting role="C">
@@ -16739,7 +16739,7 @@ void GtkCTree::change-focus-row-expansion (GtkCTree *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkCurve">
<title>GtkCurve</title>
<programlisting role="C">
@@ -16750,7 +16750,7 @@ void GtkCurve::curve-type-changed (GtkCurve *,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkAdjustment">
<title>GtkAdjustment</title>
<programlisting role="C">
@@ -17257,7 +17257,7 @@ struct _GdkEventOther
which are not included in complete form elsewhere.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-Tictactoe">
<title>Tictactoe</title>
<!-- ----------------------------------------------------------------- -->
<sect2>
@@ -17560,12 +17560,12 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> GtkDial</title>
+<sect1 id="sec-GtkDial">
+<title>GtkDial</title>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> gtkdial.h</title>
+<title>gtkdial.h</title>
<programlisting role="C">
/* example-start gtkdial gtkdial.h */
@@ -17667,7 +17667,7 @@ void gtk_dial_set_adjustment (GtkDial *dial,
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> gtkdial.c</title>
+<title>gtkdial.c</title>
<programlisting role="C">
/* example-start gtkdial gtkdial.c */
@@ -18331,7 +18331,7 @@ gtk_dial_adjustment_value_changed (GtkAdjustment *adjustment,
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> dial_test.c</title>
+<title>dial_test.c</title>
<programlisting role="C">
#include &lt;stdio.h&gt;
@@ -18405,12 +18405,12 @@ int main( int argc,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Scribble</title>
+<sect1 id="sec-Scribble">
+<title>Scribble</title>
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> scribble-simple.c</title>
+<title>scribble-simple.c</title>
<programlisting role="C">
/* example-start scribble-simple scribble-simple.c */
@@ -18599,7 +18599,7 @@ int main( int argc,
<!-- ----------------------------------------------------------------- -->
<sect2>
-<title> scribble-xinput.c</title>
+<title>scribble-xinput.c</title>
<programlisting role="C">
/* example-start scribble-xinput scribble-xinput.c */
@@ -18946,7 +18946,7 @@ field. The selection_mode may be one of the following:</para>
<para>The default is <literal>GTK_SELECTION_MULTIPLE</literal>.</para>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-SelectionSignals">
<title>Signals</title>
<programlisting role="C">
@@ -18982,8 +18982,8 @@ removed from the List.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Functions</title>
+<sect1 id="sec-GtkListFunctions">
+<title>Functions</title>
<programlisting role="C">
guint gtk_list_get_type( void );
@@ -19115,8 +19115,8 @@ gint GTK_IS_LIST( gpointer obj);
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Example</title>
+<sect1 id="sec-GtkListExample">
+<title>Example</title>
<para>Following is an example program that will print out the changes of the
selection of a List, and lets you "arrest" list items into a prison
@@ -19406,8 +19406,8 @@ void sigh_print_selection( GtkWidget *gtklist,
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> List Item Widget</title>
+<sect1 id="sec-ListItemWidget">
+<title>List Item Widget</title>
<para>The ListItem widget is designed to act as a container holding up to
one child, providing functions for selection/deselection just like the
@@ -19431,17 +19431,17 @@ also add a GtkVBox or a GtkArrow etc. to the GtkListItem.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkListItemSignals">
<title>Signals</title>
-<para>AkListItem does not create new signals on its own, but inherits
+<para>A GtkListItem does not create new signals on its own, but inherits
the signals of a Item.</para>
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
-<title> Functions</title>
+<sect1 id="sec-GtkListItemFunctions">
+<title>Functions</title>
<programlisting role="C">
guint gtk_list_item_get_type( void );
@@ -19503,7 +19503,7 @@ gint GTK_IS_LIST_ITEM( gpointer obj );
</sect1>
<!-- ----------------------------------------------------------------- -->
-<sect1>
+<sect1 id="sec-GtkListItemExample">
<title>Example</title>
<para>Please see the List example on this, which covers the usage of a
diff --git a/docs/tutorial/gtk_tut_packbox1.eps b/docs/tutorial/gtk_tut_packbox1.eps
new file mode 100644
index 0000000000..41ca28b63f
--- /dev/null
+++ b/docs/tutorial/gtk_tut_packbox1.eps
@@ -0,0 +1,1111 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (gtk_tut_packbox1.eps)
+%%CreationDate: (Mon Jul 17 16:57:42 2000)
+%%BoundingBox: 0 0 357.642 159
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 359 160
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+358.642 159.623
+12
+528 235
+1
+0
+0
+256
+000000
+000080
+707470
+909490
+c0c0c0
+d0d4d0
+f81440
+f8fcf8
+082c13
+30f500
+10ff00
+08bf00
+30a901
+3ed900
+100100
+085000
+e460d8
+363836
+101010
+080808
+50acd8
+37f4f3
+09ffff
+50bfbf
+da04b8
+e600f3
+0100ff
+5000bf
+5050cb
+0137dc
+000901
+005050
+580808
+373030
+300830
+3e303e
+d844dc
+f53e36
+ff1010
+bf0808
+b11b0a
+0db637
+030010
+500008
+560430
+37003e
+100010
+080008
+c80896
+3330e4
+081001
+080850
+025c40
+00f500
+00ff00
+00bf00
+a9040d
+c00000
+0d0000
+500000
+c8083d
+363000
+141000
+500800
+746820
+59f537
+0cff10
+08bf08
+73a914
+59d9f4
+0c01ff
+0c50bf
+24043e
+f60012
+ff0003
+bf0008
+700896
+3730e4
+101001
+580440
+370000
+100000
+080000
+50080d
+373000
+091000
+f4803d
+f5f500
+ffff00
+bfbf00
+38a928
+a6d937
+040110
+505008
+03f014
+0036f4
+0010ff
+0008bf
+280070
+36f512
+10ff03
+4c0408
+020030
+000010
+000008
+505083
+373700
+090900
+505003
+100830
+f6303e
+580840
+b03000
+041000
+b84410
+353e00
+101000
+080800
+281b3e
+36b600
+4c0412
+020000
+28b020
+36f5f4
+10ffff
+08bfbf
+5ca91e
+f6d91a
+ff0103
+bf5008
+ad2428
+f9375c
+03100f
+cc3001
+41f500
+08ff00
+0004a1
+0000aa
+00000c
+d05030
+f637f4
+ff09ff
+bf50bf
+080805
+40300d
+1f1003
+500808
+cc08e4
+f63059
+ff100f
+d0447c
+f63ef9
+ff10ff
+bf08bf
+080030
+4000f7
+1f00ff
+8c082f
+f63002
+ff1001
+90300d
+2c3e00
+031000
+085400
+403800
+1f1000
+00507c
+0037f9
+0009ff
+0050bf
+10da7c
+02e6f9
+0001ff
+eb52a0
+0001f6
+0000ff
+0000bf
+00d800
+003800
+001000
+000800
+003000
+013e00
+d48400
+f6f500
+d0b100
+f60d00
+ff0300
+bf5000
+8cce7c
+f638f9
+ccf450
+2cf537
+03ff09
+08bf50
+080a20
+400000
+1f0000
+10ec08
+eb6eda
+0000e6
+000001
+000350
+7c0a01
+f90037
+ff0010
+009804
+00cb08
+00dc30
+000110
+005008
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+04ff04ff040e0000040007ff07ff070c020000000400070004ff04ff040b020000000400
+070004ff04ff040b020000000400070004ff04ff040b0200000004000700040201ff01ff
+010504020200000004000700040201ff01ff010504020200000004000700040201ff01d1
+070e0000070e00000101070e0000010104020200000004000700040201ff01d10700040c
+020000000700040c0200000001010700040c020000000101040202000000040007000402
+0103060401060600010a0701011407010104070101ff01950700040c0200000007000401
+000804010200000001010700040c02000000010104020200000004000700040201040604
+01040600010b0701011407010104070101ff01950700040c020000000700040100080401
+020000000101070004020001040300010401020000000101040202000000040007000402
+0105060401020600010c0700010007010100070101020703010207030101070101010701
+010007010100070101020703010107010101070101ff01830700040c0200000007000401
+000004060000040102000000010107000403000104010001040202000000010104020200
+00000400070004020106060401000600010c070101000702010007010100070101010701
+010007010101070101000701010007010101070201000701010007010101070101000701
+0101070101ff01830700040c020000000700040100000406000004010200000001010700
+0404000304030200000001010402020000000400070004020107060201000600010d0701
+010007010101070101040701010007010104070301020701010107010100070101010701
+0101070301ff01840700040c020000000700040100000406000004010200000001010700
+0405000104040200000001010402020000000400070004020108060001000602010c0700
+010107010101070101010704010007010104070301020701010107010100070101010701
+0102070101ff01850700040c020000000700040100000406000004010200000001010700
+0404000304030200000001010402020000000400070004020107060001000604010b0700
+010107010101070101000701010107010100070101040701010007010101070101010701
+01000701010107010101070301ff01840700040c02000000070004010000040600000401
+020000000101070004030001040100010402020000000101040202000000040007000402
+010606000102060401060701010007010101070201000701010007010101070101000701
+010107010100070101010701010007020100070101000701010107010100070101010701
+01ff01830700040200050403020000000700040100000406000004010200000001010700
+040200010403000104010200000001010402020000000400070004020105060001040604
+010507010100070101010701010007010102070201000701010007030101070101020703
+0100070101020703010107010101070101ff018307000402000504030200000007000401
+000804010200000001010700040c02000000010104020200000004000700040201040600
+01060604010b070101ff01b10700040c020000000700040c0200000001010700040c0200
+00000101040202000000040007000402011d070101ff01b10700020d00000700020d0000
+01010700020d00000101040202000000040007000402011d070101ff01b1001f0101000f
+010104020200000004000700040201ff01ff010504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+050504020200000004000700040205ff05ff050504020200000004000700040205ff05ff
+05050402020000000400070004020511000005010000050b000005050000053600000500
+000505040000050400000506000305020005050a00020501000005ff056b040202000000
+0400070004020511000005010000050b0000050500000535000005010000050800000500
+000005030000050500000503000005010000050e0000050200000501000005ff056a0402
+02000000040007000402050b000105000000050000020500000005010000050800000500
+000105020000050000010503000205010000050300000507000005000001050300020501
+000005020000050200000505000005010000050800000500000005030000050500000506
+0000050e0000050200000501000005ff056a040202000000040007000402050a00000501
+000105010000050100000500000005090001050100000501000105010000050100000502
+000005010000050100000508000105010000050100000502000005000000050200000502
+000005040000050200000507000005020000050200000506000105040000050e00000502
+0000050200000501000005ff0566040202000000040007000402050a0000050200000501
+000005010001050a00000502000005010000050200000501000005020000050200010509
+000005020000050100000502000005010000050100000501000005050000050200040503
+00000502000005020000050800010502000505090000050200000502000005ff05690402
+02000000040007000402050a0000050200000501000005010001050a0000050200000501
+000005020000050100000502000005020001050900000502000005010004050100000501
+00000501000005050000050200000507000405020000050a000005010000050e00000502
+00000502000005ff0569040202000000040007000402050a000005020000050100000501
+000005000000050900000502000005010000050200000501000005020000050100000501
+000005080000050200000501000005050000050000000500000005000000050500000502
+0000050600000504000005010000050500000503000005010000050e0000050200000502
+000005ff0569040202000000040007000402050a00000501000105010000050100000501
+000005080000050200000501000105010000050100000502000005000000050300000507
+000005020000050100000502000005020000050200000506000005020000050600000504
+000005010000050500000503000005010000050e0000050200000502000005ff05690402
+02000000040007000402050b000105000000050100010500000005020000050700000502
+000005010000050000010503000205010000050300000507000005020000050200020503
+000005020000050600000502000005060000050400000501000405020003050200050502
+000005060002050300000501000005ff0566040202000000040007000402050e0000054f
+0000052a0000050c00000502000005ff0566040202000000040007000402050a00000502
+000005090006051a0006051c000005290000050d00000501000005ff0567040202000000
+040007000402050b0002055100000536000005ff056b04020200000004000700040205ff
+05ff050504020200000004000700040205090751000007200000072a0000073000000730
+00000712000005e204020200000004000700040205090700055000000700051f00000700
+052900000700052f00000700052f000007000511000005e2040202000000040007000402
+05090700054f030000000700051e0300000007000528030000000700052e030000000700
+052e03000000070005100300000005e204020200000004000700040205090700054f0300
+00000700051e0300000007000528030000000700052e030000000700052e030000000700
+05100300000005e204020200000004000700040205090700054f030000000700051e0300
+000007000528030000000700052e030000000700052e03000000070005100300000005e2
+04020200000004000700040205090700054f030000000700051e03000000070005280300
+00000700052e030000000700052e03000000070005100300000005e20402020000000400
+07000402050907000509000005010000050b0000052e0000050403000000070005040000
+05000000051603000000070005020000050c000005010000051303000000070005020005
+050400000504000005060003050200050505030000000700050200050504000005040000
+05060003050200050505030000000700050300020501000005060300000005e204020200
+0000040007000402050907000509000005010000050b0000052e00000504030000000700
+0503000005010000051603000000070005020000050c0000050100000513030000000700
+05020000050800000500000005030000050500000503000005010000050a030000000700
+05020000050800000500000005030000050500000503000005010000050a030000000700
+05020000050200000501000005050300000005e204020200000004000700040205090700
+050300010500000005000002050000000501000005080000050000010503000205010000
+050300000507000005000001050300020503000205020000050100000501030000000700
+050300000501000005000001050300020501000005030000050403000000070005020000
+050000010502000005020000050000050501000205020000050000010506030000000700
+050200000508000005000000050300000505000005060000050a03000000070005020000
+0508000005000000050300000505000005060000050a0300000007000502000005020000
+0501000005050300000005e2040202000000040007000402050907000502000005010001
+050100000501000005000000050900010501000005010000050200000501000005010000
+050800010501000005010000050200000501000005020000050100000500000005020300
+000007000502000005020001050100000501000005020000050100000501000005050300
+000007000502000105010000050100000502000005010000050100000501000005020000
+050100010501000005050300000007000502000005070000050200000502000005060001
+05040000050a030000000700050200000507000005020000050200000506000105040000
+050a0300000007000502000005020000050200000501000005010300000005e204020200
+00000400070004020509070005020000050200000501000005010001050a000005020000
+050100000502000005020001050900000502000005050000050100000505000105030300
+000007000502000005020000050200000501000005020000050200010506030000000700
+050200000502000005010000050200000501000005010000050100000502000005010000
+050200000505030000000700050200040503000005020000050200000508000105020005
+050503000000070005020004050300000502000005020000050800010502000505050300
+0000070005020000050200000502000005040300000005e2040202000000040007000402
+0509070005020000050200000501000005010001050a0000050200000501000005020000
+050200010509000005020000050200030501000005050001050303000000070005020000
+050200000502000005010000050200000502000105060300000007000502000005020000
+050100000502000005010000050100000501000005020000050100000502000005050300
+00000700050200000507000405020000050a000005010000050a03000000070005020000
+0507000405020000050a000005010000050a030000000700050200000502000005020000
+05040300000005e204020200000004000700040205090700050200000502000005010000
+050100000500000005090000050200000501000005020000050100000501000005080000
+050200000501000005020000050100000505000005000000050203000000070005020000
+050200000502000005010000050200000501000005010000050503000000070005020000
+050200000501000005020000050100000501000005010000050200000501000005020000
+050503000000070005020000050600000504000005010000050500000503000005010000
+050a03000000070005020000050600000504000005010000050500000503000005010000
+050a03000000070005020000050200000502000005040300000005e20402020000000400
+070004020509070005020000050100010501000005010000050100000508000105010000
+050100000502000005000000050300000507000105010000050100000502000005010000
+050200000501000005010000050103000000070005020000050200010501000005010000
+050200000500000005030000050403000000070005020001050100000501000005010001
+050100000501000005010000050200000501000005020000050503000000070005020000
+050600000504000005010000050500000503000005010000050a03000000070005020000
+050600000504000005010000050500000503000005010000050a03000000070005020000
+050200000502000005040300000005e20402020000000400070004020509070005030001
+050000000501000105000000050200000507000005000001050300020501000005030000
+050700000500000105030002050000000501000205020000050200000500030000000700
+050200000502000005000001050300020501000005030000050100000501030000000700
+050200000500000105030001050000000501000105000001050100020502000005020000
+050200000501030000000700050200000506000005040000050100040502000305020005
+050200000501030000000700050200000506000005040000050100040502000305020005
+05020000050103000000070005030002050300000501000005010300000005e204020200
+00000400070004020509070005060000052c000005190300000007000503000005160000
+0501030000000700052500000501030000000700052b00000501030000000700052b0000
+0501030000000700050900000502000005010300000005e2040202000000040007000402
+050907000502000005020000050900060513000605000000051903000000070005030000
+051500000502030000000700052400000502030000000700052a00000502030000000700
+052a00000502030000000700050900000501000005020300000005e20402020000000400
+070004020509070005030002052d00000519030000000700050400000518030000000700
+0528030000000700052e030000000700052e0300000007000508000005060300000005e2
+04020200000004000700040205090700054f030000000700051e03000000070005280300
+00000700052e030000000700052e03000000070005100300000005e20402020000000400
+0700040205090700054f030000000700051e0300000007000528030000000700052e0300
+00000700052e03000000070005100300000005e204020200000004000700040205090700
+0500034f000007000500031e0000070005000328000007000500032e000007000500032e
+0000070005000310000005e2040202000000040007000402050900ff001805e204020200
+0000040007000402051b075100000524072000000524072a000005240727000005240730
+0000052607120000051e040202000000040007000402051b07000550000005240700051f
+00000524070005290000052407000526000005240700052f00000526070005110000051e
+040202000000040007000402051b0700054f0300000005240700051e0300000005240700
+0528030000000524070005250300000005240700052e0300000005260700051003000000
+051e040202000000040007000402051b0700054f0300000005240700051e030000000524
+07000528030000000524070005250300000005240700052e030000000526070005100300
+0000051e040202000000040007000402051b0700054f0300000005240700051e03000000
+052407000528030000000524070005250300000005240700052e03000000052607000510
+03000000051e040202000000040007000402051b0700054f0300000005240700051e0300
+0000052407000528030000000524070005250300000005240700052e0300000005260700
+051003000000051e040202000000040007000402051b07000509000005010000050b0000
+052e00000504030000000524070005040000050000000516030000000524070005020000
+050c00000501000005130300000005240700050100060500000405020000050300000501
+000505050300000005240700050200050504000005040000050600030502000505050300
+0000052607000503000205010000050603000000051e040202000000040007000402051b
+07000509000005010000050b0000052e0000050403000000052407000503000005010000
+0516030000000524070005020000050c0000050100000513030000000524070005040000
+0503000005030000050100000503000005010000050a0300000005240700050200000508
+00000500000005030000050500000503000005010000050a030000000526070005020000
+0502000005010000050503000000051e040202000000040007000402051b070005030001
+050000000500000205000000050100000508000005000001050300020501000005030000
+050700000500000105030002050300020502000005010000050103000000052407000503
+000005010000050000010503000205010000050300000504030000000524070005020000
+050000010502000005020000050000050501000205020000050000010506030000000524
+0700050400000503000005030000050100000503000005010000050a0300000005240700
+050200000508000005000000050300000505000005060000050a03000000052607000502
+00000502000005010000050503000000051e040202000000040007000402051b07000502
+000005010001050100000501000005000000050900010501000005010000050200000501
+000005010000050800010501000005010000050200000501000005020000050100000500
+000005020300000005240700050200000502000105010000050100000502000005010000
+050100000505030000000524070005020001050100000501000005020000050100000501
+000005010000050200000501000105010000050503000000052407000504000005030000
+05030000050100000503000005010000050a030000000524070005020000050700000502
+0000050200000506000105040000050a0300000005260700050200000502000005020000
+05010000050103000000051e040202000000040007000402051b07000502000005020000
+0501000005010001050a0000050200000501000005020000050200010509000005020000
+050500000501000005050001050303000000052407000502000005020000050200000501
+000005020000050200010506030000000524070005020000050200000501000005020000
+050100000501000005010000050200000501000005020000050503000000052407000504
+000005030004050200000503000005010005050503000000052407000502000405030000
+050200000502000005080001050200050505030000000526070005020000050200000502
+0000050403000000051e040202000000040007000402051b070005020000050200000501
+000005010001050a00000502000005010000050200000502000105090000050200000502
+000305010000050500010503030000000524070005020000050200000502000005010000
+050200000502000105060300000005240700050200000502000005010000050200000501
+000005010000050100000502000005010000050200000505030000000524070005040000
+0503000005020000050200000503000005010000050a0300000005240700050200000507
+000405020000050a000005010000050a0300000005260700050200000502000005020000
+050403000000051e040202000000040007000402051b0700050200000502000005010000
+050100000500000005090000050200000501000005020000050100000501000005080000
+050200000501000005020000050100000505000005000000050203000000052407000502
+000005020000050200000501000005020000050100000501000005050300000005240700
+050200000502000005010000050200000501000005010000050100000502000005010000
+050200000505030000000524070005040000050300000503000005010000050300000501
+0000050a0300000005240700050200000506000005040000050100000505000005030000
+05010000050a0300000005260700050200000502000005020000050403000000051e0402
+02000000040007000402051b070005020000050100010501000005010000050100000508
+000105010000050100000502000005000000050300000507000105010000050100000502
+000005010000050200000501000005010000050103000000052407000502000005020001
+050100000501000005020000050000000503000005040300000005240700050200010501
+000005010000050100010501000005010000050100000502000005010000050200000505
+0300000005240700050400000503000005030000050100000503000005010000050a0300
+00000524070005020000050600000504000005010000050500000503000005010000050a
+0300000005260700050200000502000005020000050403000000051e0402020000000400
+07000402051b070005030001050000000501000105000000050200000507000005000001
+050300020501000005030000050700000500000105030002050000000501000205020000
+050200000500030000000524070005020000050200000500000105030002050100000503
+000005010000050103000000052407000502000005000001050300010500000005010001
+050000010501000205020000050200000502000005010300000005240700050400000503
+000005030000050200030502000505020000050103000000052407000502000005060000
+050400000501000405020003050200050502000005010300000005260700050300020503
+000005010000050103000000051e040202000000040007000402051b070005060000052c
+000005190300000005240700050300000516000005010300000005240700052500000501
+03000000052407000522000005010300000005240700052b000005010300000005260700
+0509000005020000050103000000051e040202000000040007000402051b070005020000
+050200000509000605130006050000000519030000000524070005030000051500000502
+030000000524070005240000050203000000052407000521000005020300000005240700
+052a0000050203000000052607000509000005010000050203000000051e040202000000
+040007000402051b070005030002052d0000051903000000052407000504000005180300
+0000052407000528030000000524070005250300000005240700052e0300000005260700
+05080000050603000000051e040202000000040007000402051b0700054f030000000524
+0700051e03000000052407000528030000000524070005250300000005240700052e0300
+000005260700051003000000051e040202000000040007000402051b0700054f03000000
+05240700051e03000000052407000528030000000524070005250300000005240700052e
+0300000005260700051003000000051e040202000000040007000402051b07000500034f
+0000052407000500031e0000052407000500032800000524070005000325000005240700
+0500032e000005260700050003100000051e040202000000040007000402051b00520524
+00210524002b052400280524003105260013051e04020200000004000700040205090778
+00000747000007510000074e0000074e0000073a00000509040202000000040007000402
+05090700057700000700054600000700055000000700054d00000700054d000007000539
+000005090402020000000400070004020509070005760300000007000545030000000700
+054f030000000700054c030000000700054c030000000700053803000000050904020200
+00000400070004020509070005760300000007000545030000000700054f030000000700
+054c030000000700054c0300000007000538030000000509040202000000040007000402
+0509070005760300000007000545030000000700054f030000000700054c030000000700
+054c03000000070005380300000005090402020000000400070004020509070005760300
+000007000545030000000700054f030000000700054c030000000700054c030000000700
+053803000000050904020200000004000700040205090700051d000005010000050b0000
+052e000005170300000007000518000005000000052903000000070005160000050c0000
+050100000526030000000700051500060500000405020000050300000501000505180300
+000007000515000605000004050200000503000005010005051803000000070005170002
+05010000051a03000000050904020200000004000700040205090700051d000005010000
+050b0000052e000005170300000007000517000005010000052903000000070005160000
+050c00000501000005260300000007000518000005030000050300000501000005030000
+05010000051d030000000700051800000503000005030000050100000503000005010000
+051d03000000070005160000050200000501000005190300000005090402020000000400
+070004020509070005170001050000000500000205000000050100000508000005000001
+050300020501000005030000050700000500000105030002050300020502000005010000
+051403000000070005170000050100000500000105030002050100000503000005170300
+000007000516000005000001050200000502000005000005050100020502000005000001
+0519030000000700051800000503000005030000050100000503000005010000051d0300
+00000700051800000503000005030000050100000503000005010000051d030000000700
+051600000502000005010000051903000000050904020200000004000700040205090700
+051600000501000105010000050100000500000005090001050100000501000005020000
+050100000501000005080001050100000501000005020000050100000502000005010000
+050000000515030000000700051600000502000105010000050100000502000005010000
+050100000518030000000700051600010501000005010000050200000501000005010000
+050100000502000005010001050100000518030000000700051800000503000005030000
+050100000503000005010000051d03000000070005180000050300000503000005010000
+0503000005010000051d0300000007000516000005020000050200000501000005150300
+000005090402020000000400070004020509070005160000050200000501000005010001
+050a00000502000005010000050200000502000105090000050200000505000005010000
+050500010516030000000700051600000502000005020000050100000502000005020001
+051903000000070005160000050200000501000005020000050100000501000005010000
+050200000501000005020000051803000000070005180000050300040502000005030000
+050100050518030000000700051800000503000405020000050300000501000505180300
+000007000516000005020000050200000518030000000509040202000000040007000402
+0509070005160000050200000501000005010001050a0000050200000501000005020000
+050200010509000005020000050200030501000005050001051603000000070005160000
+050200000502000005010000050200000502000105190300000007000516000005020000
+050100000502000005010000050100000501000005020000050100000502000005180300
+00000700051800000503000005020000050200000503000005010000051d030000000700
+051800000503000005020000050200000503000005010000051d03000000070005160000
+050200000502000005180300000005090402020000000400070004020509070005160000
+050200000501000005010000050000000509000005020000050100000502000005010000
+050100000508000005020000050100000502000005010000050500000500000005150300
+000007000516000005020000050200000501000005020000050100000501000005180300
+000007000516000005020000050100000502000005010000050100000501000005020000
+050100000502000005180300000007000518000005030000050300000501000005030000
+05010000051d030000000700051800000503000005030000050100000503000005010000
+051d03000000070005160000050200000502000005180300000005090402020000000400
+070004020509070005160000050100010501000005010000050100000508000105010000
+050100000502000005000000050300000507000105010000050100000502000005010000
+050200000501000005010000051403000000070005160000050200010501000005010000
+050200000500000005030000051703000000070005160001050100000501000005010001
+050100000501000005010000050200000501000005020000051803000000070005180000
+0503000005030000050100000503000005010000051d0300000007000518000005030000
+05030000050100000503000005010000051d030000000700051600000502000005020000
+051803000000050904020200000004000700040205090700051700010500000005010001
+050000000502000005070000050000010503000205010000050300000507000005000001
+050300020500000005010002050200000502000005130300000007000516000005020000
+050000010503000205010000050300000501000005140300000007000516000005000001
+050300010500000005010001050000010501000205020000050200000502000005140300
+000007000518000005030000050300000502000305020005050200000514030000000700
+051800000503000005030000050200030502000505020000051403000000070005170002
+0503000005010000051503000000050904020200000004000700040205090700051a0000
+052c0000052c030000000700051700000516000005140300000007000539000005140300
+00000700053600000514030000000700053600000514030000000700051d000005020000
+051503000000050904020200000004000700040205090700051600000502000005090006
+0513000605000000052c0300000007000517000005150000051503000000070005380000
+0515030000000700053500000515030000000700053500000515030000000700051d0000
+0501000005160300000005090402020000000400070004020509070005170002052d0000
+052c03000000070005180000052b030000000700054f030000000700054c030000000700
+054c030000000700051c0000051a03000000050904020200000004000700040205090700
+05760300000007000545030000000700054f030000000700054c030000000700054c0300
+000007000538030000000509040202000000040007000402050907000576030000000700
+0545030000000700054f030000000700054c030000000700054c03000000070005380300
+000005090402020000000400070004020509070005000376000007000500034500000700
+0500034f000007000500034c000007000500034c00000700050003380000050904020200
+0000040007000402050900ff00f1050904020200000004000700040205ff05ff05050402
+0200000004000700040205ff05ff050504020200000004000700040205ff05ff05050402
+0200000004000700040205ff05ff050504020200000004000700040205ff05ff05050402
+02000000040007000402050903ff03f107000508040202000000040007000402050907ff
+07f2050804020200000004000700040205ff05ff050504020200000004000700040205ff
+05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff
+05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff
+05ff050504020200000004000700040205ff05ff050504020200000004000700040205ff
+05ff05050402020000000400070004020511000005010000050b00000505000005360007
+05000004050200000503000005010005050a00020501000005ff05740402020000000400
+070004020511000005010000050b00000505000005350000050300000503000005030000
+050100000503000005010000050e0000050200000501000005ff05730402020000000400
+07000402050b000105000000050000020500000005010000050800000500000105020000
+050000010503000205010000050300000507000005000001050300020501000005020000
+0502000005050000050300000503000005030000050100000503000005010000050e0000
+050200000501000005ff0573040202000000040007000402050a00000501000105010000
+050100000500000005090001050100000501000105010000050100000502000005010000
+050100000508000105010000050100000502000005000000050200000502000005040000
+050400000503000005030000050100000503000005010000050e00000502000005020000
+0501000005ff056f040202000000040007000402050a0000050200000501000005010001
+050a00000502000005010000050200000501000005020000050200010509000005020000
+050100000502000005010000050100000501000005050000050400000503000405020000
+050300000501000505090000050200000502000005ff0572040202000000040007000402
+050a0000050200000501000005010001050a000005020000050100000502000005010000
+050200000502000105090000050200000501000405010000050100000501000005050000
+050400000503000005020000050200000503000005010000050e00000502000005020000
+05ff0572040202000000040007000402050a000005020000050100000501000005000000
+050900000502000005010000050200000501000005020000050100000501000005080000
+050200000501000005050000050000000500000005000000050500000504000005030000
+05030000050100000503000005010000050e0000050200000502000005ff057204020200
+0000040007000402050a0000050100010501000005010000050100000508000005020000
+050100010501000005010000050200000500000005030000050700000502000005010000
+050200000502000005020000050600000504000005030000050300000501000005030000
+05010000050e0000050200000502000005ff0572040202000000040007000402050b0001
+050000000501000105000000050200000507000005020000050100000500000105030002
+050100000503000005070000050200000502000205030000050200000506000005040000
+050300000503000005020003050200050502000005060002050300000501000005ff056f
+040202000000040007000402050e0000054f000005210000050c00000502000005ff056f
+040202000000040007000402050a00000502000005090006051a0006051c000005200000
+050d00000501000005ff0570040202000000040007000402050b000205510000052d0000
+05ff057404020200000004000700040205ff05ff05050402020000000400070004020509
+07510000051707200000052b072a0000052807270000052407300000052f071200000529
+040202000000040007000402050907000550000005170700051f0000052b070005290000
+052807000526000005240700052f0000052f070005110000052904020200000004000700
+040205090700054f0300000005170700051e03000000052b070005280300000005280700
+05250300000005240700052e03000000052f070005100300000005290402020000000400
+0700040205090700054f0300000005170700051e03000000052b07000528030000000528
+070005250300000005240700052e03000000052f07000510030000000529040202000000
+04000700040205090700054f0300000005170700051e03000000052b0700052803000000
+0528070005250300000005240700052e03000000052f0700051003000000052904020200
+000004000700040205090700054f0300000005170700051e03000000052b070005280300
+00000528070005250300000005240700052e03000000052f070005100300000005290402
+02000000040007000402050907000509000005010000050b0000052e0000050403000000
+051707000504000005000000051603000000052b070005020000050c0000050100000513
+030000000528070005010006050000040502000005030000050100050505030000000524
+07000502000505040000050400000506000305020005050503000000052f070005030002
+050100000506030000000529040202000000040007000402050907000509000005010000
+050b0000052e0000050403000000051707000503000005010000051603000000052b0700
+05020000050c000005010000051303000000052807000504000005030000050300000501
+00000503000005010000050a030000000524070005020000050800000500000005030000
+050500000503000005010000050a03000000052f07000502000005020000050100000505
+030000000529040202000000040007000402050907000503000105000000050000020500
+000005010000050800000500000105030002050100000503000005070000050000010503
+000205030002050200000501000005010300000005170700050300000501000005000001
+050300020501000005030000050403000000052b07000502000005000001050200000502
+000005000005050100020502000005000001050603000000052807000504000005030000
+05030000050100000503000005010000050a030000000524070005020000050800000500
+0000050300000505000005060000050a03000000052f0700050200000502000005010000
+050503000000052904020200000004000700040205090700050200000501000105010000
+050100000500000005090001050100000501000005020000050100000501000005080001
+050100000501000005020000050100000502000005010000050000000502030000000517
+070005020000050200010501000005010000050200000501000005010000050503000000
+052b07000502000105010000050100000502000005010000050100000501000005020000
+050100010501000005050300000005280700050400000503000005030000050100000503
+000005010000050a03000000052407000502000005070000050200000502000005060001
+05040000050a03000000052f070005020000050200000502000005010000050103000000
+05290402020000000400070004020509070005020000050200000501000005010001050a
+000005020000050100000502000005020001050900000502000005050000050100000505
+000105030300000005170700050200000502000005020000050100000502000005020001
+050603000000052b07000502000005020000050100000502000005010000050100000501
+000005020000050100000502000005050300000005280700050400000503000405020000
+050300000501000505050300000005240700050200040503000005020000050200000508
+000105020005050503000000052f07000502000005020000050200000504030000000529
+0402020000000400070004020509070005020000050200000501000005010001050a0000
+050200000501000005020000050200010509000005020000050200030501000005050001
+050303000000051707000502000005020000050200000501000005020000050200010506
+03000000052b070005020000050200000501000005020000050100000501000005010000
+050200000501000005020000050503000000052807000504000005030000050200000502
+00000503000005010000050a0300000005240700050200000507000405020000050a0000
+05010000050a03000000052f070005020000050200000502000005040300000005290402
+020000000400070004020509070005020000050200000501000005010000050000000509
+000005020000050100000502000005010000050100000508000005020000050100000502
+000005010000050500000500000005020300000005170700050200000502000005020000
+05010000050200000501000005010000050503000000052b070005020000050200000501
+000005020000050100000501000005010000050200000501000005020000050503000000
+05280700050400000503000005030000050100000503000005010000050a030000000524
+070005020000050600000504000005010000050500000503000005010000050a03000000
+052f07000502000005020000050200000504030000000529040202000000040007000402
+050907000502000005010001050100000501000005010000050800010501000005010000
+050200000500000005030000050700010501000005010000050200000501000005020000
+050100000501000005010300000005170700050200000502000105010000050100000502
+00000500000005030000050403000000052b070005020001050100000501000005010001
+050100000501000005010000050200000501000005020000050503000000052807000504
+00000503000005030000050100000503000005010000050a030000000524070005020000
+050600000504000005010000050500000503000005010000050a03000000052f07000502
+000005020000050200000504030000000529040202000000040007000402050907000503
+000105000000050100010500000005020000050700000500000105030002050100000503
+000005070000050000010503000205000000050100020502000005020000050003000000
+051707000502000005020000050000010503000205010000050300000501000005010300
+0000052b0700050200000500000105030001050000000501000105000001050100020502
+000005020000050200000501030000000528070005040000050300000503000005020003
+050200050502000005010300000005240700050200000506000005040000050100040502
+00030502000505020000050103000000052f070005030002050300000501000005010300
+000005290402020000000400070004020509070005060000052c00000519030000000517
+07000503000005160000050103000000052b070005250000050103000000052807000522
+000005010300000005240700052b0000050103000000052f070005090000050200000501
+030000000529040202000000040007000402050907000502000005020000050900060513
+000605000000051903000000051707000503000005150000050203000000052b07000524
+0000050203000000052807000521000005020300000005240700052a0000050203000000
+052f07000509000005010000050203000000052904020200000004000700040205090700
+05030002052d00000519030000000517070005040000051803000000052b070005280300
+00000528070005250300000005240700052e03000000052f070005080000050603000000
+052904020200000004000700040205090700054f0300000005170700051e03000000052b
+07000528030000000528070005250300000005240700052e03000000052f070005100300
+0000052904020200000004000700040205090700054f0300000005170700051e03000000
+052b07000528030000000528070005250300000005240700052e03000000052f07000510
+030000000529040202000000040007000402050907000500034f0000051707000500031e
+0000052b070005000328000005280700050003250000052407000500032e0000052f0700
+05000310000005290402020000000400070004020509005205170021052b002b05280028
+05240031052f001305290402020000000400070004020509075100000751000007510000
+075100000751000007510000050904020200000004000700040205090700055000000700
+055000000700055000000700055000000700055000000700055000000509040202000000
+04000700040205090700054f030000000700054f030000000700054f030000000700054f
+030000000700054f030000000700054f0300000005090402020000000400070004020509
+0700054f030000000700054f030000000700054f030000000700054f030000000700054f
+030000000700054f03000000050904020200000004000700040205090700054f03000000
+0700054f030000000700054f030000000700054f030000000700054f030000000700054f
+03000000050904020200000004000700040205090700054f030000000700054f03000000
+0700054f030000000700054f030000000700054f030000000700054f0300000005090402
+02000000040007000402050907000509000005010000050b0000052e0000050403000000
+0700051d000005000000052e03000000070005160000050c000005010000052603000000
+07000516000605000004050200000503000005010005051a030000000700051600060500
+0004050200000503000005010005051a0300000007000523000205010000052503000000
+0509040202000000040007000402050907000509000005010000050b0000052e00000504
+030000000700051c000005010000052e03000000070005160000050c0000050100000526
+030000000700051900000503000005030000050100000503000005010000051f03000000
+0700051900000503000005030000050100000503000005010000051f0300000007000522
+000005020000050100000524030000000509040202000000040007000402050907000503
+000105000000050000020500000005010000050800000500000105030002050100000503
+00000507000005000001050300020503000205020000050100000501030000000700051c
+00000501000005000001050300020501000005030000051c030000000700051600000500
+000105020000050200000500000505010002050200000500000105190300000007000519
+00000503000005030000050100000503000005010000051f030000000700051900000503
+000005030000050100000503000005010000051f03000000070005220000050200000501
+000005240300000005090402020000000400070004020509070005020000050100010501
+000005010000050000000509000105010000050100000502000005010000050100000508
+000105010000050100000502000005010000050200000501000005000000050203000000
+0700051b0000050200010501000005010000050200000501000005010000051d03000000
+070005160001050100000501000005020000050100000501000005010000050200000501
+000105010000051803000000070005190000050300000503000005010000050300000501
+0000051f030000000700051900000503000005030000050100000503000005010000051f
+030000000700052200000502000005020000050100000520030000000509040202000000
+0400070004020509070005020000050200000501000005010001050a0000050200000501
+000005020000050200010509000005020000050500000501000005050001050303000000
+0700051b00000502000005020000050100000502000005020001051e0300000007000516
+000005020000050100000502000005010000050100000501000005020000050100000502
+000005180300000007000519000005030004050200000503000005010005051a03000000
+07000519000005030004050200000503000005010005051a030000000700052200000502
+000005020000052303000000050904020200000004000700040205090700050200000502
+00000501000005010001050a000005020000050100000502000005020001050900000502
+00000502000305010000050500010503030000000700051b000005020000050200000501
+00000502000005020001051e030000000700051600000502000005010000050200000501
+000005010000050100000502000005010000050200000518030000000700051900000503
+000005020000050200000503000005010000051f03000000070005190000050300000502
+0000050200000503000005010000051f0300000007000522000005020000050200000523
+030000000509040202000000040007000402050907000502000005020000050100000501
+000005000000050900000502000005010000050200000501000005010000050800000502
+000005010000050200000501000005050000050000000502030000000700051b00000502
+00000502000005010000050200000501000005010000051d030000000700051600000502
+000005010000050200000501000005010000050100000502000005010000050200000518
+030000000700051900000503000005030000050100000503000005010000051f03000000
+0700051900000503000005030000050100000503000005010000051f0300000007000522
+000005020000050200000523030000000509040202000000040007000402050907000502
+000005010001050100000501000005010000050800010501000005010000050200000500
+000005030000050700010501000005010000050200000501000005020000050100000501
+00000501030000000700051b000005020001050100000501000005020000050000000503
+0000051c0300000007000516000105010000050100000501000105010000050100000501
+000005020000050100000502000005180300000007000519000005030000050300000501
+00000503000005010000051f030000000700051900000503000005030000050100000503
+000005010000051f03000000070005220000050200000502000005230300000005090402
+020000000400070004020509070005030001050000000501000105000000050200000507
+000005000001050300020501000005030000050700000500000105030002050000000501
+000205020000050200000500030000000700051b00000502000005000001050300020501
+000005030000050100000519030000000700051600000500000105030001050000000501
+000105000001050100020502000005020000050200000514030000000700051900000503
+000005030000050200030502000505020000051603000000070005190000050300000503
+000005020003050200050502000005160300000007000523000205030000050100000520
+0300000005090402020000000400070004020509070005060000052c0000051903000000
+0700051c0000051600000519030000000700053900000514030000000700053700000516
+030000000700053700000516030000000700052900000502000005200300000005090402
+020000000400070004020509070005020000050200000509000605130006050000000519
+030000000700051c000005150000051a0300000007000538000005150300000007000536
+000005170300000007000536000005170300000007000529000005010000052103000000
+05090402020000000400070004020509070005030002052d00000519030000000700051d
+00000530030000000700054f030000000700054f030000000700054f0300000007000528
+0000052503000000050904020200000004000700040205090700054f030000000700054f
+030000000700054f030000000700054f030000000700054f030000000700054f03000000
+050904020200000004000700040205090700054f030000000700054f030000000700054f
+030000000700054f030000000700054f030000000700054f030000000509040202000000
+040007000402050907000500034f000007000500034f000007000500034f000007000500
+034f000007000500034f000007000500034f000005090402020000000400070004020509
+00ff00f1050904020200000004000700040205ff05ff0505040202000000040007000402
+05ff05ff050504020200000004000700040205ff05ff0505040202000000040007000402
+05ff05ff050504020200000004000700040205ff05ff0505040202000000040007000402
+050903ff03f107000508040202000000040007000402050907ff07f20508040202000000
+04000700040205ff05ff050504020200000004000700040205ff05ff0505040202000000
+04000700040205ff05ff050504020200000004000700040205ff05ff0505040202000000
+04000700040205ff05ff050504020200000004000700040205f3071b000005f404020200
+000004000700040205f30700051a000005f404020200000004000700040205f307000519
+0300000005f404020200000004000700040205f3070005190300000005f4040202000000
+04000700040205f3070005190300000005f404020200000004000700040205f307000519
+0300000005f404020200000004000700040205f3070005040003050a0000050100000501
+0300000005f404020200000004000700040205f307000503000005030000050c00000501
+0300000005f404020200000004000700040205f307000502000005050000050100000502
+0000050100000500000205000300000005f404020200000004000700040205f307000502
+0000050500000501000005020000050100000501000005010300000005f4040202000000
+04000700040205f307000502000005050000050100000502000005010000050100000501
+0300000005f404020200000004000700040205f307000502000005020000050100000501
+000005020000050100000501000005010300000005f404020200000004000700040205f3
+070005020000050300000500000005010000050200000501000005010000050103000000
+05f404020200000004000700040205f30700050300000503000005020000050100010501
+00000501000005010300000005f404020200000004000700040205f30700050400030500
+00000502000105000000050100000501000105000300000005f404020200000004000700
+040205f3070005190300000005f404020200000004000700040205f30700051903000000
+05f404020200000004000700040205f3070005190300000005f404020200000004000700
+040205f3070005190300000005f404020200000004000700040205f30700051903000000
+05f404020200000004000700040205f3070005000319000005f404020200000004000700
+040205f3001c05f404020200000004000700040205ff05ff050504020200000004000700
+040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700
+040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700
+040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700
+040205ff05ff050504020200000004000700040205ff05ff050504020200000004000700
+040205ff05ff05050402020000000400070004ff04ff040b020000000400070004ff04ff
+040b020000000400070004ff04ff040b02000000040002ff02ff020d00ff00ff0010
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 358 159
+%%EOF
diff --git a/docs/tutorial/gtk_tut_packbox1.jpg b/docs/tutorial/gtk_tut_packbox1.jpg
new file mode 100644
index 0000000000..b7b4ce383a
--- /dev/null
+++ b/docs/tutorial/gtk_tut_packbox1.jpg
Binary files differ
diff --git a/docs/tutorial/gtk_tut_packbox2.eps b/docs/tutorial/gtk_tut_packbox2.eps
new file mode 100644
index 0000000000..c98df71f37
--- /dev/null
+++ b/docs/tutorial/gtk_tut_packbox2.eps
@@ -0,0 +1,1042 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (gtk_tut_packbox2.eps)
+%%CreationDate: (Mon Jul 17 17:01:37 2000)
+%%BoundingBox: 0 0 344.736 144
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 346 145
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+345.736 144.679
+12
+509 213
+1
+0
+0
+256
+000000
+000080
+707470
+909490
+c0c0c0
+d0d4d0
+f81440
+f8fcf8
+086100
+307000
+106800
+082f00
+306c00
+3e6500
+107600
+086900
+e46500
+366e00
+102e00
+086300
+506f00
+376d00
+092f00
+506700
+da6900
+e66d00
+017000
+502f00
+507000
+016100
+006300
+006b00
+586204
+376f00
+107800
+083200
+302e08
+3e6730
+106910
+086608
+e02704
+f53f00
+ff0000
+bf0800
+b11b08
+0db630
+030010
+500008
+56045c
+3700f4
+1000ff
+0800bf
+c804a9
+3300d9
+080001
+080050
+0208fc
+003036
+001010
+000808
+a904dc
+c000f3
+0d00ff
+5000bf
+c80804
+363000
+141000
+500800
+740450
+590037
+0c0009
+730808
+593030
+0c1010
+0c0808
+2c0408
+f60030
+ff0010
+bf0008
+700844
+37303e
+101010
+080808
+58041b
+3700b6
+100000
+080000
+500804
+373000
+091000
+fc8808
+f5f530
+ffff10
+bfbf08
+38a98c
+a6d9f4
+0401ff
+5050bf
+03f004
+003600
+001000
+000800
+280808
+36f530
+10ff10
+08bf08
+4c0498
+0200f4
+0000ff
+0000bf
+5050a9
+3737d9
+090901
+505050
+180828
+f63037
+ff1010
+bf0808
+580818
+b030f4
+0410ff
+5008bf
+b84404
+353e00
+101000
+080800
+281b50
+36b637
+100009
+4c0408
+020030
+000010
+000008
+500808
+373030
+091010
+28b844
+36f53e
+64a900
+f6d900
+ff0100
+bf5000
+ad2400
+f93700
+031000
+cc3800
+41f500
+08ff00
+08bf00
+000404
+d85008
+f63730
+ff0910
+bf5008
+0808d0
+d030f4
+1e10ff
+d40850
+ff1009
+bf0850
+d8444c
+f63ef4
+ff10ff
+bf08bf
+080038
+d000a6
+1e0004
+500050
+940003
+f60000
+bf0000
+900028
+2c0036
+080008
+d00008
+1e0000
+500000
+0000c8
+000036
+000014
+000050
+fd0050
+010037
+000009
+d50028
+00002c
+000003
+000004
+000094
+0100f4
+dc0000
+d80000
+940000
+cc0050
+2c0037
+030009
+080020
+d00000
+45004f
+030076
+000065
+000072
+b00077
+ce0072
+000069
+000074
+a45065
+813720
+010965
+005078
+0d9469
+1df573
+64ff74
+00bf69
+00a06e
+00f567
+00ff20
+00bf66
+e0cb69
+17dc6c
+000165
+005020
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+000000
+04ff04fb0000040007ff07f9020000000400070004ff04f8020000000400070004ff04f8
+020000000400070004ff04f80200000004000700040201ff01f204020200000004000700
+040201ff01f204020200000004000700040201ff01be070e0000070e00000101070e0000
+010104020200000004000700040201ff01be0700040c020000000700040c020000000101
+0700040c0200000001010402020000000400070004020103060401060600010a07010114
+07010104070101ff01820700040c0200000007000401000804010200000001010700040c
+0200000001010402020000000400070004020104060401040600010b0701011407010104
+070101ff01820700040c0200000007000401000804010200000001010700040200010403
+000104010200000001010402020000000400070004020105060401020600010c07000100
+070101000701010207030102070301010701010107010100070101000701010207030101
+07010101070101ff01700700040c02000000070004010000040600000401020000000101
+070004030001040100010402020000000101040202000000040007000402010606040100
+0600010c0701010007020100070101000701010107010100070101010701010007010100
+070101010702010007010100070101010701010007010101070101ff01700700040c0200
+000007000401000004060000040102000000010107000404000304030200000001010402
+020000000400070004020107060201000600010d07010100070101010701010407010100
+070101040703010207010101070101000701010107010101070301ff01710700040c0200
+000007000401000004060000040102000000010107000405000104040200000001010402
+020000000400070004020108060001000602010c07000101070101010701010107040100
+070101040703010207010101070101000701010107010102070101ff01720700040c0200
+000007000401000004060000040102000000010107000404000304030200000001010402
+020000000400070004020107060001000604010b07000101070101010701010007010101
+0701010007010104070101000701010107010101070101000701010107010101070301ff
+01710700040c020000000700040100000406000004010200000001010700040300010401
+000104020200000001010402020000000400070004020106060001020604010607010100
+070101010702010007010100070101010701010007010101070101000701010107010100
+0702010007010100070101010701010007010101070101ff017007000402000504030200
+000007000401000004060000040102000000010107000402000104030001040102000000
+010104020200000004000700040201050600010406040105070101000701010107010100
+070101020702010007010100070301010701010207030100070101020703010107010101
+070101ff017007000402000504030200000007000401000804010200000001010700040c
+0200000001010402020000000400070004020104060001060604010b070101ff019e0700
+040c020000000700040c0200000001010700040c02000000010104020200000004000700
+0402011d070101ff019e0700020d00000700020d000001010700020d0000010104020200
+0000040007000402011d070101ff019e001f0101000f0101040202000000040007000402
+01ff01f204020200000004000700040205ff05f204020200000004000700040205ff05f2
+04020200000004000700040205ff05f204020200000004000700040205ff05f204020200
+000004000700040205ff05f204020200000004000700040205ff05f20402020000000400
+0700040205ff05f204020200000004000700040205ff05f2040202000000040007000402
+05ff05f204020200000004000700040205ff05f204020200000004000700040205ff05f2
+04020200000004000700040205ff05f204020200000004000700040205ff05f204020200
+00000400070004020511000005010000050b000005050000053600000500000505040000
+050400000506000305020005050b0000050400020501000005ff05510402020000000400
+070004020511000005010000050b00000505000005350000050100000508000005000000
+05030000050500000503000005010000050e000205030000050200000501000005ff0550
+040202000000040007000402050b00010500000005000002050000000501000005080000
+050000010502000005000001050300020501000005030000050700000500000105030002
+050100000502000005020000050500000501000005080000050000000503000005050000
+050600000510000005030000050200000501000005ff0550040202000000040007000402
+050a00000501000105010000050100000500000005090001050100000501000105010000
+050100000502000005010000050100000508000105010000050100000502000005000000
+050200000502000005040000050200000507000005020000050200000506000105040000
+051000000503000005020000050200000501000005ff054c040202000000040007000402
+050a0000050200000501000005010001050a000005020000050100000502000005010000
+050200000502000105090000050200000501000005020000050100000501000005010000
+05050000050200040503000005020000050200000508000105020005050b000005030000
+050200000502000005ff054f040202000000040007000402050a00000502000005010000
+05010001050a000005020000050100000502000005010000050200000502000105090000
+050200000501000405010000050100000501000005050000050200000507000405020000
+050a0000050100000510000005030000050200000502000005ff054f0402020000000400
+07000402050a000005020000050100000501000005000000050900000502000005010000
+050200000501000005020000050100000501000005080000050200000501000005050000
+050000000500000005000000050500000502000005060000050400000501000005050000
+05030000050100000510000005030000050200000502000005ff054f0402020000000400
+07000402050a000005010001050100000501000005010000050800000502000005010001
+050100000501000005020000050000000503000005070000050200000501000005020000
+050200000502000005060000050200000506000005040000050100000505000005030000
+050100000510000005030000050200000502000005ff054f040202000000040007000402
+050b00010500000005010001050000000502000005070000050200000501000005000001
+050300020501000005030000050700000502000005020002050300000502000005060000
+050200000506000005040000050100040502000305020005050200000507000005040002
+050300000501000005ff054c040202000000040007000402050e0000054f0000052a0000
+051300000502000005ff054c040202000000040007000402050a00000502000005090006
+051a0006051c000005290000051400000501000005ff054d040202000000040007000402
+050b000205510000053d000005ff055104020200000004000700040205ff05f204020200
+00000400070004020516075100000523072000000523072a000005230727000005230730
+00000523071200000517040202000000040007000402051607000550000005230700051f
+00000523070005290000052307000526000005230700052f000005230700051100000517
+04020200000004000700040205160700054f0300000005230700051e0300000005230700
+0528030000000523070005250300000005230700052e0300000005230700051003000000
+051704020200000004000700040205160700054f0300000005230700051e030000000523
+07000528030000000523070005250300000005230700052e030000000523070005100300
+0000051704020200000004000700040205160700054f0300000005230700051e03000000
+052307000528030000000523070005250300000005230700052e03000000052307000510
+03000000051704020200000004000700040205160700054f0300000005230700051e0300
+0000052307000528030000000523070005250300000005230700052e0300000005230700
+0510030000000517040202000000040007000402051607000509000005010000050b0000
+052e00000504030000000523070005040000050000000516030000000523070005020000
+050c00000501000005130300000005230700050100060500000405020000050300000501
+000505050300000005230700050200050504000005040000050600030502000505050300
+000005230700050300020501000005060300000005170402020000000400070004020516
+07000509000005010000050b0000052e0000050403000000052307000503000005010000
+0516030000000523070005020000050c0000050100000513030000000523070005040000
+0503000005030000050100000503000005010000050a0300000005230700050200000508
+00000500000005030000050500000503000005010000050a030000000523070005020000
+050200000501000005050300000005170402020000000400070004020516070005030001
+050000000500000205000000050100000508000005000001050300020501000005030000
+050700000500000105030002050300020502000005010000050103000000052307000503
+000005010000050000010503000205010000050300000504030000000523070005020000
+050000010502000005020000050000050501000205020000050000010506030000000523
+0700050400000503000005030000050100000503000005010000050a0300000005230700
+050200000508000005000000050300000505000005060000050a03000000052307000502
+000005020000050100000505030000000517040202000000040007000402051607000502
+000005010001050100000501000005000000050900010501000005010000050200000501
+000005010000050800010501000005010000050200000501000005020000050100000500
+000005020300000005230700050200000502000105010000050100000502000005010000
+050100000505030000000523070005020001050100000501000005020000050100000501
+000005010000050200000501000105010000050503000000052307000504000005030000
+05030000050100000503000005010000050a030000000523070005020000050700000502
+0000050200000506000105040000050a0300000005230700050200000502000005020000
+050100000501030000000517040202000000040007000402051607000502000005020000
+0501000005010001050a0000050200000501000005020000050200010509000005020000
+050500000501000005050001050303000000052307000502000005020000050200000501
+000005020000050200010506030000000523070005020000050200000501000005020000
+050100000501000005010000050200000501000005020000050503000000052307000504
+000005030004050200000503000005010005050503000000052307000502000405030000
+050200000502000005080001050200050505030000000523070005020000050200000502
+000005040300000005170402020000000400070004020516070005020000050200000501
+000005010001050a00000502000005010000050200000502000105090000050200000502
+000305010000050500010503030000000523070005020000050200000502000005010000
+050200000502000105060300000005230700050200000502000005010000050200000501
+000005010000050100000502000005010000050200000505030000000523070005040000
+0503000005020000050200000503000005010000050a0300000005230700050200000507
+000405020000050a000005010000050a0300000005230700050200000502000005020000
+050403000000051704020200000004000700040205160700050200000502000005010000
+050100000500000005090000050200000501000005020000050100000501000005080000
+050200000501000005020000050100000505000005000000050203000000052307000502
+000005020000050200000501000005020000050100000501000005050300000005230700
+050200000502000005010000050200000501000005010000050100000502000005010000
+050200000505030000000523070005040000050300000503000005010000050300000501
+0000050a0300000005230700050200000506000005040000050100000505000005030000
+05010000050a030000000523070005020000050200000502000005040300000005170402
+020000000400070004020516070005020000050100010501000005010000050100000508
+000105010000050100000502000005000000050300000507000105010000050100000502
+000005010000050200000501000005010000050103000000052307000502000005020001
+050100000501000005020000050000000503000005040300000005230700050200010501
+000005010000050100010501000005010000050100000502000005010000050200000505
+0300000005230700050400000503000005030000050100000503000005010000050a0300
+00000523070005020000050600000504000005010000050500000503000005010000050a
+030000000523070005020000050200000502000005040300000005170402020000000400
+070004020516070005030001050000000501000105000000050200000507000005000001
+050300020501000005030000050700000500000105030002050000000501000205020000
+050200000500030000000523070005020000050200000500000105030002050100000503
+000005010000050103000000052307000502000005000001050300010500000005010001
+050000010501000205020000050200000502000005010300000005230700050400000503
+000005030000050200030502000505020000050103000000052307000502000005060000
+050400000501000405020003050200050502000005010300000005230700050300020503
+00000501000005010300000005170402020000000400070004020516070005060000052c
+000005190300000005230700050300000516000005010300000005230700052500000501
+03000000052307000522000005010300000005230700052b000005010300000005230700
+050900000502000005010300000005170402020000000400070004020516070005020000
+050200000509000605130006050000000519030000000523070005030000051500000502
+030000000523070005240000050203000000052307000521000005020300000005230700
+052a00000502030000000523070005090000050100000502030000000517040202000000
+0400070004020516070005030002052d0000051903000000052307000504000005180300
+0000052307000528030000000523070005250300000005230700052e0300000005230700
+05080000050603000000051704020200000004000700040205160700054f030000000523
+0700051e03000000052307000528030000000523070005250300000005230700052e0300
+000005230700051003000000051704020200000004000700040205160700054f03000000
+05230700051e03000000052307000528030000000523070005250300000005230700052e
+03000000052307000510030000000517040202000000040007000402051607000500034f
+0000052307000500031e0000052307000500032800000523070005000325000005230700
+0500032e0000052307000500031000000517040202000000040007000402051600520523
+00210523002b05230028052300310523001305170402020000000400070004020509076c
+00000509073b000005090745000005090742000005090742000005090731000005090402
+0200000004000700040205090700056b000005090700053a000005090700054400000509
+070005410000050907000541000005090700053000000509040202000000040007000402
+05090700056a030000000509070005390300000005090700054303000000050907000540
+030000000509070005400300000005090700052f03000000050904020200000004000700
+040205090700056a03000000050907000539030000000509070005430300000005090700
+0540030000000509070005400300000005090700052f0300000005090402020000000400
+0700040205090700056a0300000005090700053903000000050907000543030000000509
+07000540030000000509070005400300000005090700052f030000000509040202000000
+04000700040205090700056a030000000509070005390300000005090700054303000000
+050907000540030000000509070005400300000005090700052f03000000050904020200
+0000040007000402050907000517000005010000050b0000052e00000511030000000509
+070005120000050000000523030000000509070005100000050c00000501000005200300
+000005090700050f00060500000405020000050300000501000505120300000005090700
+050f00060500000405020000050300000501000505120300000005090700051300020501
+00000515030000000509040202000000040007000402050907000517000005010000050b
+0000052e0000051103000000050907000511000005010000052303000000050907000510
+0000050c0000050100000520030000000509070005120000050300000503000005010000
+050300000501000005170300000005090700051200000503000005030000050100000503
+000005010000051703000000050907000512000005020000050100000514030000000509
+040202000000040007000402050907000511000105000000050000020500000005010000
+050800000500000105030002050100000503000005070000050000010503000205030002
+0502000005010000050e0300000005090700051100000501000005000001050300020501
+000005030000051103000000050907000510000005000001050200000502000005000005
+050100020502000005000001051303000000050907000512000005030000050300000501
+000005030000050100000517030000000509070005120000050300000503000005010000
+050300000501000005170300000005090700051200000502000005010000051403000000
+050904020200000004000700040205090700051000000501000105010000050100000500
+000005090001050100000501000005020000050100000501000005080001050100000501
+00000502000005010000050200000501000005000000050f030000000509070005100000
+050200010501000005010000050200000501000005010000051203000000050907000510
+000105010000050100000502000005010000050100000501000005020000050100010501
+000005120300000005090700051200000503000005030000050100000503000005010000
+051703000000050907000512000005030000050300000501000005030000050100000517
+030000000509070005120000050200000502000005010000051003000000050904020200
+00000400070004020509070005100000050200000501000005010001050a000005020000
+050100000502000005020001050900000502000005050000050100000505000105100300
+000005090700051000000502000005020000050100000502000005020001051303000000
+050907000510000005020000050100000502000005010000050100000501000005020000
+050100000502000005120300000005090700051200000503000405020000050300000501
+000505120300000005090700051200000503000405020000050300000501000505120300
+000005090700051200000502000005020000051303000000050904020200000004000700
+04020509070005100000050200000501000005010001050a000005020000050100000502
+000005020001050900000502000005020003050100000505000105100300000005090700
+051000000502000005020000050100000502000005020001051303000000050907000510
+000005020000050100000502000005010000050100000501000005020000050100000502
+000005120300000005090700051200000503000005020000050200000503000005010000
+051703000000050907000512000005030000050200000502000005030000050100000517
+030000000509070005120000050200000502000005130300000005090402020000000400
+070004020509070005100000050200000501000005010000050000000509000005020000
+050100000502000005010000050100000508000005020000050100000502000005010000
+0505000005000000050f0300000005090700051000000502000005020000050100000502
+000005010000050100000512030000000509070005100000050200000501000005020000
+050100000501000005010000050200000501000005020000051203000000050907000512
+000005030000050300000501000005030000050100000517030000000509070005120000
+050300000503000005010000050300000501000005170300000005090700051200000502
+000005020000051303000000050904020200000004000700040205090700051000000501
+000105010000050100000501000005080001050100000501000005020000050000000503
+00000507000105010000050100000502000005010000050200000501000005010000050e
+030000000509070005100000050200010501000005010000050200000500000005030000
+051103000000050907000510000105010000050100000501000105010000050100000501
+000005020000050100000502000005120300000005090700051200000503000005030000
+050100000503000005010000051703000000050907000512000005030000050300000501
+000005030000050100000517030000000509070005120000050200000502000005130300
+000005090402020000000400070004020509070005110001050000000501000105000000
+050200000507000005000001050300020501000005030000050700000500000105030002
+05000000050100020502000005020000050d030000000509070005100000050200000500
+000105030002050100000503000005010000050e03000000050907000510000005000001
+0503000105000000050100010500000105010002050200000502000005020000050e0300
+000005090700051200000503000005030000050200030502000505020000050e03000000
+05090700051200000503000005030000050200030502000505020000050e030000000509
+070005130002050300000501000005100300000005090402020000000400070004020509
+070005140000052c0000052603000000050907000511000005160000050e030000000509
+070005330000050e030000000509070005300000050e030000000509070005300000050e
+030000000509070005190000050200000510030000000509040202000000040007000402
+050907000510000005020000050900060513000605000000052603000000050907000511
+000005150000050f030000000509070005320000050f0300000005090700052f0000050f
+0300000005090700052f0000050f03000000050907000519000005010000051103000000
+05090402020000000400070004020509070005110002052d000005260300000005090700
+051200000525030000000509070005430300000005090700054003000000050907000540
+030000000509070005180000051503000000050904020200000004000700040205090700
+056a03000000050907000539030000000509070005430300000005090700054003000000
+0509070005400300000005090700052f0300000005090402020000000400070004020509
+0700056a0300000005090700053903000000050907000543030000000509070005400300
+00000509070005400300000005090700052f030000000509040202000000040007000402
+050907000500036a00000509070005000339000005090700050003430000050907000500
+0340000005090700050003400000050907000500032f0000050904020200000004000700
+04020509006d0509003c0509004605090043050900430509003205090402020000000400
+0700040205ff05f204020200000004000700040205ff05f2040202000000040007000402
+05ff05f204020200000004000700040205ff05f204020200000004000700040205ff05f2
+040202000000040007000402050903ff03de070005080402020000000400070004020509
+07ff07df050804020200000004000700040205ff05f204020200000004000700040205ff
+05f204020200000004000700040205ff05f204020200000004000700040205ff05f20402
+0200000004000700040205ff05f204020200000004000700040205ff05f2040202000000
+04000700040205ff05f204020200000004000700040205ff05f204020200000004000700
+04020511000005010000050b000005050000053600000500000505040000050400000506
+000305020005050a00020501000005ff0558040202000000040007000402051100000501
+0000050b0000050500000535000005010000050800000500000005030000050500000503
+000005010000050e0000050200000501000005ff0557040202000000040007000402050b
+000105000000050000020500000005010000050800000500000105020000050000010503
+000205010000050300000507000005000001050300020501000005020000050200000505
+0000050100000508000005000000050300000505000005060000050e0000050200000501
+000005ff0557040202000000040007000402050a00000501000105010000050100000500
+000005090001050100000501000105010000050100000502000005010000050100000508
+000105010000050100000502000005000000050200000502000005040000050200000507
+000005020000050200000506000105040000050e000005020000050200000501000005ff
+0553040202000000040007000402050a0000050200000501000005010001050a00000502
+000005010000050200000501000005020000050200010509000005020000050100000502
+000005010000050100000501000005050000050200040503000005020000050200000508
+00010502000505090000050200000502000005ff0556040202000000040007000402050a
+0000050200000501000005010001050a0000050200000501000005020000050100000502
+000005020001050900000502000005010004050100000501000005010000050500000502
+00000507000405020000050a000005010000050e0000050200000502000005ff05560402
+02000000040007000402050a000005020000050100000501000005000000050900000502
+000005010000050200000501000005020000050100000501000005080000050200000501
+000005050000050000000500000005000000050500000502000005060000050400000501
+0000050500000503000005010000050e0000050200000502000005ff0556040202000000
+040007000402050a00000501000105010000050100000501000005080000050200000501
+000105010000050100000502000005000000050300000507000005020000050100000502
+000005020000050200000506000005020000050600000504000005010000050500000503
+000005010000050e0000050200000502000005ff0556040202000000040007000402050b
+000105000000050100010500000005020000050700000502000005010000050000010503
+000205010000050300000507000005020000050200020503000005020000050600000502
+000005060000050400000501000405020003050200050502000005060002050300000501
+000005ff0553040202000000040007000402050e0000054f0000052a0000050c00000502
+000005ff0553040202000000040007000402050a00000502000005090006051a0006051c
+000005290000050d00000501000005ff0554040202000000040007000402050b00020551
+00000536000005ff055804020200000004000700040205ff05f204020200000004000700
+04020519075100000520072000000520072a000005200727000005200730000005210719
+0000051b040202000000040007000402051907000550000005200700051f000005200700
+05290000052007000526000005200700052f00000521070005180000051b040202000000
+04000700040205190700054f0300000005200700051e0300000005200700052803000000
+0520070005250300000005200700052e0300000005210700051703000000051b04020200
+000004000700040205190700054f0300000005200700051e030000000520070005280300
+00000520070005250300000005200700052e0300000005210700051703000000051b0402
+0200000004000700040205190700054f0300000005200700051e03000000052007000528
+030000000520070005250300000005200700052e0300000005210700051703000000051b
+04020200000004000700040205190700054f0300000005200700051e0300000005200700
+0528030000000520070005250300000005200700052e0300000005210700051703000000
+051b040202000000040007000402051907000509000005010000050b0000052e00000504
+030000000520070005040000050000000516030000000520070005020000050c00000501
+000005130300000005200700050100060500000405020000050300000501000505050300
+000005200700050200050504000005040000050600030502000505050300000005210700
+050400000504000205010000050603000000051b04020200000004000700040205190700
+0509000005010000050b0000052e00000504030000000520070005030000050100000516
+030000000520070005020000050c00000501000005130300000005200700050400000503
+000005030000050100000503000005010000050a03000000052007000502000005080000
+0500000005030000050500000503000005010000050a0300000005210700050200020503
+00000502000005010000050503000000051b040202000000040007000402051907000503
+000105000000050000020500000005010000050800000500000105030002050100000503
+000005070000050000010503000205030002050200000501000005010300000005200700
+050300000501000005000001050300020501000005030000050403000000052007000502
+000005000001050200000502000005000005050100020502000005000001050603000000
+05200700050400000503000005030000050100000503000005010000050a030000000520
+0700050200000508000005000000050300000505000005060000050a0300000005210700
+05040000050300000502000005010000050503000000051b040202000000040007000402
+051907000502000005010001050100000501000005000000050900010501000005010000
+050200000501000005010000050800010501000005010000050200000501000005020000
+050100000500000005020300000005200700050200000502000105010000050100000502
+000005010000050100000505030000000520070005020001050100000501000005020000
+050100000501000005010000050200000501000105010000050503000000052007000504
+00000503000005030000050100000503000005010000050a030000000520070005020000
+0507000005020000050200000506000105040000050a0300000005210700050400000503
+0000050200000502000005010000050103000000051b0402020000000400070004020519
+070005020000050200000501000005010001050a00000502000005010000050200000502
+000105090000050200000505000005010000050500010503030000000520070005020000
+050200000502000005010000050200000502000105060300000005200700050200000502
+000005010000050200000501000005010000050100000502000005010000050200000505
+030000000520070005040000050300040502000005030000050100050505030000000520
+070005020004050300000502000005020000050800010502000505050300000005210700
+05040000050300000502000005020000050403000000051b040202000000040007000402
+0519070005020000050200000501000005010001050a0000050200000501000005020000
+050200010509000005020000050200030501000005050001050303000000052007000502
+000005020000050200000501000005020000050200010506030000000520070005020000
+050200000501000005020000050100000501000005010000050200000501000005020000
+05050300000005200700050400000503000005020000050200000503000005010000050a
+0300000005200700050200000507000405020000050a000005010000050a030000000521
+070005040000050300000502000005020000050403000000051b04020200000004000700
+040205190700050200000502000005010000050100000500000005090000050200000501
+000005020000050100000501000005080000050200000501000005020000050100000505
+000005000000050203000000052007000502000005020000050200000501000005020000
+050100000501000005050300000005200700050200000502000005010000050200000501
+000005010000050100000502000005010000050200000505030000000520070005040000
+0503000005030000050100000503000005010000050a0300000005200700050200000506
+00000504000005010000050500000503000005010000050a030000000521070005040000
+050300000502000005020000050403000000051b04020200000004000700040205190700
+050200000501000105010000050100000501000005080001050100000501000005020000
+050000000503000005070001050100000501000005020000050100000502000005010000
+050100000501030000000520070005020000050200010501000005010000050200000500
+000005030000050403000000052007000502000105010000050100000501000105010000
+050100000501000005020000050100000502000005050300000005200700050400000503
+000005030000050100000503000005010000050a03000000052007000502000005060000
+0504000005010000050500000503000005010000050a0300000005210700050400000503
+00000502000005020000050403000000051b040202000000040007000402051907000503
+000105000000050100010500000005020000050700000500000105030002050100000503
+000005070000050000010503000205000000050100020502000005020000050003000000
+052007000502000005020000050000010503000205010000050300000501000005010300
+000005200700050200000500000105030001050000000501000105000001050100020502
+000005020000050200000501030000000520070005040000050300000503000005020003
+050200050502000005010300000005200700050200000506000005040000050100040502
+000305020005050200000501030000000521070005040000050400020503000005010000
+050103000000051b0402020000000400070004020519070005060000052c000005190300
+000005200700050300000516000005010300000005200700052500000501030000000520
+07000522000005010300000005200700052b000005010300000005210700051000000502
+0000050103000000051b0402020000000400070004020519070005020000050200000509
+000605130006050000000519030000000520070005030000051500000502030000000520
+070005240000050203000000052007000521000005020300000005200700052a00000502
+03000000052107000510000005010000050203000000051b040202000000040007000402
+0519070005030002052d0000051903000000052007000504000005180300000005200700
+0528030000000520070005250300000005200700052e0300000005210700050f00000506
+03000000051b04020200000004000700040205190700054f0300000005200700051e0300
+0000052007000528030000000520070005250300000005200700052e0300000005210700
+051703000000051b04020200000004000700040205190700054f0300000005200700051e
+03000000052007000528030000000520070005250300000005200700052e030000000521
+0700051703000000051b040202000000040007000402051907000500034f000005200700
+0500031e00000520070005000328000005200700050003250000052007000500032e0000
+05210700050003170000051b04020200000004000700040205190052052000210520002b
+05200028052000310521001a051b0402020000000400070004020513075f00000513072e
+00000513073800000513073500000513073500000513072c000005130402020000000400
+0700040205130700055e000005130700052d000005130700053700000513070005340000
+051307000534000005130700052b0000051304020200000004000700040205130700055d
+0300000005130700052c0300000005130700053603000000051307000533030000000513
+070005330300000005130700052a03000000051304020200000004000700040205130700
+055d0300000005130700052c030000000513070005360300000005130700053303000000
+0513070005330300000005130700052a0300000005130402020000000400070004020513
+0700055d0300000005130700052c03000000051307000536030000000513070005330300
+00000513070005330300000005130700052a030000000513040202000000040007000402
+05130700055d0300000005130700052c0300000005130700053603000000051307000533
+030000000513070005330300000005130700052a03000000051304020200000004000700
+0402051307000510000005010000050b0000052e0000050b0300000005130700050b0000
+05000000051d030000000513070005090000050c000005010000051a0300000005130700
+0508000605000004050200000503000005010005050c0300000005130700050800060500
+0004050200000503000005010005050c0300000005130700050e00000504000205010000
+050f030000000513040202000000040007000402051307000510000005010000050b0000
+052e0000050b0300000005130700050a000005010000051d030000000513070005090000
+050c000005010000051a0300000005130700050b00000503000005030000050100000503
+00000501000005110300000005130700050b000005030000050300000501000005030000
+0501000005110300000005130700050c0002050300000502000005010000050e03000000
+051304020200000004000700040205130700050a00010500000005000002050000000501
+000005080000050000010503000205010000050300000507000005000001050300020503
+0002050200000501000005080300000005130700050a0000050100000500000105030002
+0501000005030000050b0300000005130700050900000500000105020000050200000500
+0005050100020502000005000001050d0300000005130700050b00000503000005030000
+05010000050300000501000005110300000005130700050b000005030000050300000501
+0000050300000501000005110300000005130700050e0000050300000502000005010000
+050e03000000051304020200000004000700040205130700050900000501000105010000
+050100000500000005090001050100000501000005020000050100000501000005080001
+050100000501000005020000050100000502000005010000050000000509030000000513
+070005090000050200010501000005010000050200000501000005010000050c03000000
+051307000509000105010000050100000502000005010000050100000501000005020000
+0501000105010000050c0300000005130700050b00000503000005030000050100000503
+00000501000005110300000005130700050b000005030000050300000501000005030000
+0501000005110300000005130700050e000005030000050200000502000005010000050a
+030000000513040202000000040007000402051307000509000005020000050100000501
+0001050a0000050200000501000005020000050200010509000005020000050500000501
+000005050001050a03000000051307000509000005020000050200000501000005020000
+05020001050d030000000513070005090000050200000501000005020000050100000501
+000005010000050200000501000005020000050c0300000005130700050b000005030004
+050200000503000005010005050c0300000005130700050b000005030004050200000503
+000005010005050c0300000005130700050e0000050300000502000005020000050d0300
+000005130402020000000400070004020513070005090000050200000501000005010001
+050a00000502000005010000050200000502000105090000050200000502000305010000
+05050001050a030000000513070005090000050200000502000005010000050200000502
+0001050d0300000005130700050900000502000005010000050200000501000005010000
+05010000050200000501000005020000050c0300000005130700050b0000050300000502
+000005020000050300000501000005110300000005130700050b00000503000005020000
+05020000050300000501000005110300000005130700050e000005030000050200000502
+0000050d0300000005130402020000000400070004020513070005090000050200000501
+000005010000050000000509000005020000050100000502000005010000050100000508
+000005020000050100000502000005010000050500000500000005090300000005130700
+05090000050200000502000005010000050200000501000005010000050c030000000513
+070005090000050200000501000005020000050100000501000005010000050200000501
+000005020000050c0300000005130700050b000005030000050300000501000005030000
+0501000005110300000005130700050b0000050300000503000005010000050300000501
+000005110300000005130700050e0000050300000502000005020000050d030000000513
+040202000000040007000402051307000509000005010001050100000501000005010000
+050800010501000005010000050200000500000005030000050700010501000005010000
+050200000501000005020000050100000501000005080300000005130700050900000502
+00010501000005010000050200000500000005030000050b030000000513070005090001
+050100000501000005010001050100000501000005010000050200000501000005020000
+050c0300000005130700050b000005030000050300000501000005030000050100000511
+0300000005130700050b0000050300000503000005010000050300000501000005110300
+000005130700050e0000050300000502000005020000050d030000000513040202000000
+04000700040205130700050a000105000000050100010500000005020000050700000500
+000105030002050100000503000005070000050000010503000205000000050100020502
+000005020000050703000000051307000509000005020000050000010503000205010000
+050300000501000005080300000005130700050900000500000105030001050000000501
+0001050000010501000205020000050200000502000005080300000005130700050b0000
+050300000503000005020003050200050502000005080300000005130700050b00000503
+00000503000005020003050200050502000005080300000005130700050e000005040002
+0503000005010000050a03000000051304020200000004000700040205130700050d0000
+052c000005200300000005130700050a00000516000005080300000005130700052c0000
+050803000000051307000529000005080300000005130700052900000508030000000513
+0700051a000005020000050a030000000513040202000000040007000402051307000509
+00000502000005090006051300060500000005200300000005130700050a000005150000
+05090300000005130700052b000005090300000005130700052800000509030000000513
+07000528000005090300000005130700051a000005010000050b03000000051304020200
+000004000700040205130700050a0002052d000005200300000005130700050b0000051f
+030000000513070005360300000005130700053303000000051307000533030000000513
+070005190000050f03000000051304020200000004000700040205130700055d03000000
+05130700052c030000000513070005360300000005130700053303000000051307000533
+0300000005130700052a03000000051304020200000004000700040205130700055d0300
+000005130700052c03000000051307000536030000000513070005330300000005130700
+05330300000005130700052a030000000513040202000000040007000402051307000500
+035d0000051307000500032c000005130700050003360000051307000500033300000513
+0700050003330000051307000500032a0000051304020200000004000700040205130060
+0513002f0513003905130036051300360513002d051304020200000004000700040205ff
+05f204020200000004000700040205ff05f204020200000004000700040205ff05f20402
+0200000004000700040205ff05f204020200000004000700040205ff05f2040202000000
+040007000402050903ff03de07000508040202000000040007000402050907ff07df0508
+04020200000004000700040205ff05f204020200000004000700040205ff05f204020200
+000004000700040205ff05f204020200000004000700040205ff05f20402020000000400
+0700040205ff05f204020200000004000700040205ea071b000005ea0402020000000400
+0700040205ea0700051a000005ea04020200000004000700040205ea0700051903000000
+05ea04020200000004000700040205ea070005190300000005ea04020200000004000700
+040205ea070005190300000005ea04020200000004000700040205ea0700051903000000
+05ea04020200000004000700040205ea070005040003050a000005010000050103000000
+05ea04020200000004000700040205ea07000503000005030000050c0000050103000000
+05ea04020200000004000700040205ea0700050200000505000005010000050200000501
+00000500000205000300000005ea04020200000004000700040205ea0700050200000505
+00000501000005020000050100000501000005010300000005ea04020200000004000700
+040205ea0700050200000505000005010000050200000501000005010000050103000000
+05ea04020200000004000700040205ea0700050200000502000005010000050100000502
+0000050100000501000005010300000005ea04020200000004000700040205ea07000502
+000005030000050000000501000005020000050100000501000005010300000005ea0402
+0200000004000700040205ea070005030000050300000502000005010001050100000501
+000005010300000005ea04020200000004000700040205ea070005040003050000000502
+000105000000050100000501000105000300000005ea04020200000004000700040205ea
+070005190300000005ea04020200000004000700040205ea070005190300000005ea0402
+0200000004000700040205ea070005190300000005ea04020200000004000700040205ea
+070005190300000005ea04020200000004000700040205ea070005190300000005ea0402
+0200000004000700040205ea070005000319000005ea04020200000004000700040205ea
+001c05ea04020200000004000700040205ff05f204020200000004000700040205ff05f2
+04020200000004000700040205ff05f204020200000004000700040205ff05f204020200
+000004000700040205ff05f204020200000004000700040205ff05f20402020000000400
+0700040205ff05f204020200000004000700040205ff05f2040202000000040007000402
+05ff05f204020200000004000700040205ff05f20402020000000400070004ff04f80200
+00000400070004ff04f8020000000400070004ff04f802000000040002ff02fa00ff00fd
+
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 345 144
+%%EOF
diff --git a/docs/tutorial/gtk_tut_packbox2.jpg b/docs/tutorial/gtk_tut_packbox2.jpg
new file mode 100644
index 0000000000..b514b40077
--- /dev/null
+++ b/docs/tutorial/gtk_tut_packbox2.jpg
Binary files differ
diff --git a/docs/tutorial/gtk_tut_table.eps b/docs/tutorial/gtk_tut_table.eps
new file mode 100644
index 0000000000..aff827dbd8
--- /dev/null
+++ b/docs/tutorial/gtk_tut_table.eps
@@ -0,0 +1,654 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: (ImageMagick)
+%%Title: (gtk_tut_table.eps)
+%%CreationDate: (Thu Jul 20 15:31:49 2000)
+%%BoundingBox: 0 0 121.264 81
+%%DocumentData: Clean7Bit
+%%LanguageLevel: 1
+%%Pages: 0
+%%EndComments
+
+%%BeginDefaults
+%%PageOrientation: Portrait
+%%EndDefaults
+
+%%BeginProlog
+%
+% Display a color image. The image is displayed in color on
+% Postscript viewers or printers that support color, otherwise
+% it is displayed as grayscale.
+%
+/buffer 512 string def
+/byte 1 string def
+/color_packet 3 string def
+/pixels 768 string def
+
+/DirectClassPacket
+{
+ %
+ % Get a DirectClass packet.
+ %
+ % Parameters:
+ % red.
+ % green.
+ % blue.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/DirectClassImage
+{
+ %
+ % Display a DirectClass image.
+ %
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { DirectClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayDirectClassPacket } image
+ } ifelse
+} bind def
+
+/GrayDirectClassPacket
+{
+ %
+ % Get a DirectClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % red
+ % green
+ % blue
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile color_packet readhexstring pop pop
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/GrayPseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet; convert to grayscale.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ color_packet 0 get 0.299 mul
+ color_packet 1 get 0.587 mul add
+ color_packet 2 get 0.114 mul add
+ cvi
+ /gray_packet exch def
+ compression 0 gt
+ {
+ /number_pixels 1 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add def
+ } ifelse
+ 0 1 number_pixels 1 sub
+ {
+ pixels exch gray_packet put
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassPacket
+{
+ %
+ % Get a PseudoClass packet.
+ %
+ % Parameters:
+ % index: index into the colormap.
+ % length: number of pixels minus one of this color (optional).
+ %
+ currentfile byte readhexstring pop 0 get
+ /offset exch 3 mul def
+ /color_packet colormap offset 3 getinterval def
+ compression 0 gt
+ {
+ /number_pixels 3 def
+ }
+ {
+ currentfile byte readhexstring pop 0 get
+ /number_pixels exch 1 add 3 mul def
+ } ifelse
+ 0 3 number_pixels 1 sub
+ {
+ pixels exch color_packet putinterval
+ } for
+ pixels 0 number_pixels getinterval
+} bind def
+
+/PseudoClassImage
+{
+ %
+ % Display a PseudoClass image.
+ %
+ % Parameters:
+ % class: 0-PseudoClass or 1-Grayscale.
+ %
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ class 0 gt
+ {
+ currentfile buffer readline pop
+ token pop /depth exch def pop
+ /grays columns 8 add depth sub depth mul 8 idiv string def
+ columns rows depth
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { currentfile grays readhexstring pop } image
+ }
+ {
+ %
+ % Parameters:
+ % colors: number of colors in the colormap.
+ % colormap: red, green, blue color packets.
+ %
+ currentfile buffer readline pop
+ token pop /colors exch def pop
+ /colors colors 3 mul def
+ /colormap colors string def
+ currentfile colormap readhexstring pop pop
+ systemdict /colorimage known
+ {
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { PseudoClassPacket } false 3 colorimage
+ }
+ {
+ %
+ % No colorimage operator; convert to grayscale.
+ %
+ columns rows 8
+ [
+ columns 0 0
+ rows neg 0 rows
+ ]
+ { GrayPseudoClassPacket } image
+ } ifelse
+ } ifelse
+} bind def
+
+/DisplayImage
+{
+ %
+ % Display a DirectClass or PseudoClass image.
+ %
+ % Parameters:
+ % x & y translation.
+ % x & y scale.
+ % label pointsize.
+ % image label.
+ % image columns & rows.
+ % class: 0-DirectClass or 1-PseudoClass.
+ % compression: 0-RunlengthEncodedCompression or 1-NoCompression.
+ % hex color packets.
+ %
+ gsave
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ x y translate
+ currentfile buffer readline pop
+ token pop /x exch def
+ token pop /y exch def pop
+ currentfile buffer readline pop
+ token pop /pointsize exch def pop
+ /Helvetica findfont pointsize scalefont setfont
+ x y scale
+ currentfile buffer readline pop
+ token pop /columns exch def
+ token pop /rows exch def pop
+ currentfile buffer readline pop
+ token pop /class exch def pop
+ currentfile buffer readline pop
+ token pop /compression exch def pop
+ class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
+ grestore
+} bind def
+%%EndProlog
+%%Page: 1 1
+%%PageBoundingBox: 0 0 122 82
+userdict begin
+%%BeginData:
+DisplayImage
+0 0
+122.264 81.5094
+12
+180 120
+1
+0
+0
+256
+000000
+ffffff
+c0c0c0
+c8c8c8
+0000c0
+0000ff
+000080
+ffa85a
+00ff00
+be5800
+ff8000
+ffdca8
+beffbe
+ffffbe
+008000
+ffffdc
+827d7d
+828282
+606060
+585858
+404000
+ff0000
+808080
+ffff00
+000040
+a0a0a4
+c0c000
+c00000
+008080
+beffff
+004040
+400040
+bebeff
+004000
+dcdcdc
+a0a0a0
+aeffa6
+808000
+707070
+7f7f7f
+00c0c0
+d4d400
+400000
+595959
+303030
+c3c3c3
+dfaa69
+4145e7
+960400
+000096
+e74541
+c78ac7
+411c20
+080808
+00c000
+800000
+ffbebe
+fefefe
+fe3f4b
+3f3f3f
+c6c6c8
+fe7f87
+fe0010
+e1dfe7
+545454
+fafaf8
+d8d7cf
+fbfbfa
+efefea
+fcfcfb
+cccbdb
+c9c9d9
+000010
+f9f9f7
+d7d5e0
+cfcedc
+e0dfd9
+f8f8f5
+d0cfc7
+fbfbf9
+e8e7e2
+f7f7f3
+e8e7ed
+d6d5e0
+f1f0f4
+cdccdb
+c4c4d0
+f9f9f6
+dcdbd4
+d1d0dd
+dcdbe3
+fafaf9
+f5f3ec
+e0dfe7
+d4d3cb
+eae9ee
+e4e3de
+d2d1de
+ebebe6
+fdfdfc
+e4e3ea
+e7e6ec
+c8c7d3
+d0cfdc
+efeee5
+f8f8f6
+f4f3f1
+dfdee6
+f1f1ee
+f8f7f4
+f4f3f6
+f7f6f2
+cccbd6
+f7f7f4
+edeced
+d3d2de
+d9d8e2
+ecebf0
+eeeef2
+f7f7f5
+cfced8
+d4d3df
+dad9d2
+faf9f7
+cecdc5
+cecddb
+e6e5e0
+cbcada
+d2d1c9
+f6f6f3
+edede8
+cbcbda
+f2f2eb
+cacada
+f6f6f8
+f6f6f4
+eae9e4
+dbdae3
+e1e1db
+fcfcfc
+ddddd6
+f5f5f1
+cac9d5
+e3e2e9
+f1f0e8
+d6d6ce
+dedce5
+d5d4df
+e3e2dc
+f7f6f3
+f8f8f9
+faf9f8
+f2f2f4
+f9f8f5
+f5f4ef
+d8d7e1
+f1f0eb
+f3f2f0
+f3f3ed
+eeeeea
+d2d0db
+f1f1ed
+d5d4cc
+dedde5
+fafafb
+cecddc
+cfcec6
+fdfdfd
+d3d2ca
+d7d6e1
+e5e4df
+f8f8f4
+e5e4eb
+dad9e3
+e9e8e3
+fafaf7
+d9d8d0
+ebeae6
+e2e1e8
+c7c6d2
+d0cfd9
+f5f5f2
+dfded8
+f0efec
+dad9e1
+dddce4
+f9f9fa
+fbfaf9
+d4d3dd
+d4d2de
+cdccd7
+ecece6
+d1d0c8
+dcdbe4
+d6d5de
+f0f0f3
+e7e6e1
+f9f8f6
+f6f6f1
+f8f7f3
+f7f7f8
+d3d1de
+e1e0e8
+d2d1dd
+f4f4f0
+d1d0c7
+f3f3ef
+f8f7f5
+f2f2ef
+edece8
+d7d6cf
+dad9e2
+f3f3f4
+f5f4f2
+e3e3dd
+d5d3df
+f6f5f0
+f9f8f7
+e6e5eb
+cccbda
+d7d6df
+efeee6
+ebebef
+f9f9f8
+dbdad2
+f6f5f2
+efeff2
+d9d8e1
+cecdd8
+ccccdb
+deded7
+fefefd
+c9c9d4
+e1e0e7
+d5d4e0
+f2f1eb
+e8e8ed
+d9d8d1
+fcfcfa
+d8d7e0
+d6d4df
+f5f5f0
+e7e6eb
+f3f2ed
+dedde6
+d2d0dd
+d1d0de
+f6f6f2
+dbdae4
+e4e3e9
+dddce5
+dad8e2
+d7d6e0
+d2d1dc
+f4f3f0
+d5d4de
+22b20000220001b0120000002200010002af120000002200010002af1200000022000100
+022b214102411200000022000100022b214102411200000022000100022b214102411200
+000022000100022b21410219010a020a0100260002070100260002051200000022000100
+021d2601020426000205210416092109160121071601211c021901002609020a01002601
+02050100260102051200000022000100021d260001002600020226010205210416092109
+160121071601211c021901002600020601002600020b0100260102030100260102061200
+000022000100021d26000101260201002600020521081601210d160121071601211c0219
+01002600020601002600020c01002601020101002601020712000000220001000205010b
+020501052600230001002300010023000100260002052108160121051604210216012100
+160221031601210316032114020a0102020b01002600020601002600020d010026010100
+260102081200000022000100020501000209260002052305260023000100230001002300
+01002600020521081601210416062101160621021601210216052113020a010002002600
+020b01002600020601002600020e010026020209120000002200010002050100260a0205
+260623012600230026002300260002052108160121041601210216012101160221011602
+2101160121011601210316012112020a01002601020b01002600020601002600020e0100
+260202091200000022000100021d26002300260502050e0816010e0816020e0116010e03
+16010e0116010e0116070e12021901002600020601002600020d01002601010026010208
+1200000022000100021d26020202260102050e0816010e0516050e0116010e0316010e01
+16010e0116070e12021901002600020601002600020c0100260102010100260102071200
+000022000100021d26010204260002050e0816010e0416020e0116010e0116010e031601
+0e0116010e0116010e1802190100260001072600020b0100260102030100260102061200
+000022000100022b0e0816010e0416010e0216010e0116020e0116020e0116010e011602
+0e0116020e12021901002609020a0100260102050100260102051200000022000100022b
+0e0816010e0416060e0116060e0216010e0216050e13022f010026000207010026000205
+1200000022000100022b0e0816010e0516020e0016020e0016010e0016020e0316010e03
+16030e1402411200000022000100022b0e4102411200000022000100022b0e4102411200
+00002200010002af120000002200010002af1200000022000100020191ab020112000000
+22000100020191ab02011200000022000100020191ab02011200000022000100020191ab
+02011200000022000100020191ab02011200000022000100020191ab0201120000002200
+0100020191ab02011200000022000100020191ab02011200000022000100020191ab0201
+1200000022000100020191ab02011200000022000100020191ab02011200000022000100
+020191ab02011200000022000100020191ab02011200000022000100020191ab02011200
+000022000100020191ab02011200000022000100020191ab020112000000220001000201
+91ab02011200000022000100020191ab02011200000022000100020191ab020112000000
+22000100020191ab02011200000022000100020191130140000001400000911302011200
+000022000100020191130100913f00000100913f00009113020112000000220001000201
+91130100913e230000000100913e23000000911302011200000022000100020191130100
+913e230000000100913e23000000911302011200000022000100020191130100913e2300
+00000100913e23000000911302011200000022000100020191130100913e230000000100
+913e23000000911302011200000022000100020191130100910200009135000091032300
+000001009102000091330002910323000000911302011200000022000100020191130100
+910200009111000091030000911d00009103230000000100910200009111000091030000
+911a00009102000091022300000091130201120000002200010002019113010091020000
+9111000091030000911c0001910323000000010091020000911100009103000091190000
+910400009101230000009113020112000000220001000201911301009102000091000002
+910300009104000091010003910000039102000291030000910000039109000091000000
+910323000000010091020000910000029103000091040000910100039100000391020002
+910300009100000391070000910400009101230000009113020112000000220001000201
+911301009102000191020000910200009104000091020000910300009103000091020000
+9102000191030000910a0000910323000000010091020001910200009102000091040000
+910200009103000091030000910200009102000191030000910c00009101230000009113
+020112000000220001000201911301009102000091040000910100009104000091020000
+9103000091020000910400009101000091040000910a0000910323000000010091020000
+910400009101000091040000910200009103000091020000910400009101000091040000
+910b00009102230000009113020112000000220001000201911301009102000091040000
+9101000091040000910200009103000091020000910400009101000091040000910a0000
+910323000000010091020000910400009101000091040000910200009103000091020000
+910400009101000091040000910a00009103230000009113020112000000220001000201
+911301009102000091040000910100009104000091020000910300009102000091040000
+9101000091040000910a0000910323000000010091020000910400009101000091040000
+910200009103000091020000910400009101000091040000910800019104230000009113
+020112000000220001000201911301009102000091040000910100009104000091020000
+9103000091020000910400009101000091040000910a0000910323000000010091020000
+910400009101000091040000910200009103000091020000910400009101000091040000
+910700009106230000009113020112000000220001000201911301009102000091040000
+9101000091040000910200009103000091020000910400009101000091040000910a0000
+910323000000010091020000910400009101000091040000910200009103000091020000
+910400009101000091040000910600009107230000009113020112000000220001000201
+911301009102000191020000910200009103000191020000910300009103000091020000
+9102000091040000910a0000910323000000010091020001910200009102000091030001
+910200009103000091030000910200009102000091040000910600009107230000009113
+020112000000220001000201911301009102000091000002910400039100000091030001
+91020001910200029103000091040000910a000091032300000001009102000091000002
+910400039100000091030001910200019102000291030000910400009106000691012300
+0000911302011200000022000100020191130100913e230000000100913e230000009113
+02011200000022000100020191130100913e230000000100913e23000000911302011200
+000022000100020191130100913e230000000100913e2300000091130201120000002200
+0100020191130100913e230000000100913e230000009113020112000000220001000201
+91130100913e230000000100913e23000000911302011200000022000100020191130100
+913e230000000100913e230000009113020112000000220001000201911301009100233e
+000001009100233e00009113020112000000220001000201911300839113020112000000
+220001000201911301820000911302011200000022000100020191130100918100009113
+020112000000220001000201911301009180230000009113020112000000220001000201
+911301009180230000009113020112000000220001000201911301009180230000009113
+020112000000220001000201911301009180230000009113020112000000220001000201
+9113010091360002910e0000913623000000911302011200000022000100020191130100
+9134000191020001910c0000910200009132230000009113020112000000220001000201
+911301009133000091060000910f00009132230000009113020112000000220001000201
+911301009133000091060000910200009104000091010000910100039130230000009113
+020112000000220001000201911301009132000091080000910100009104000091010000
+910200009132230000009113020112000000220001000201911301009132000091080000
+910100009104000091010000910200009132230000009113020112000000220001000201
+911301009132000091080000910100009104000091010000910200009132230000009113
+020112000000220001000201911301009132000091080000910100009104000091010000
+910200009132230000009113020112000000220001000201911301009133000091060000
+910200009104000091010000910200009132230000009113020112000000220001000201
+911301009133000091030000910100009102000091040000910100009102000091322300
+000091130201120000002200010002019113010091340001910200019103000091030001
+910100009102000091322300000091130201120000002200010002019113010091360002
+910000009104000391000000910100009103000191302300000091130201120000002200
+0100020191130100913b0000914323000000911302011200000022000100020191130100
+918023000000911302011200000022000100020191130100918023000000911302011200
+000022000100020191130100918023000000911302011200000022000100020191130100
+918023000000911302011200000022000100020191130100918023000000911302011200
+000022000100020191130100910023800000911302011200000022000100020191130083
+911302011200000022000100020191ab02011200000022000100020191ab020112000000
+22000100020191ab02011200000022000100020191ab02011200000022000100020191ab
+010322000100020191ab120322000100020191ab02010100120022000100020191ab0201
+0100120022000100020191ab02010100120022000100020191ab02010100120022000100
+020191ab02010100120022000100020191ab02010100120022000100020191ab02010100
+120022000100020191ab02010100120022000100020191ab020101001200220001000201
+91ab02010100120022000100020191ab02010100120022000100020191ab020101001200
+22000100020191ab02010100120022000100020191ab02010100120022000100029d0100
+1200020f0100120022000100029d01001200020f010012002200129e0100120001101200
+009f01001212
+%%EndData
+end
+%%PageTrailer
+%%Trailer
+%%BoundingBox: 0 0 121.264 81
+%%EOF
diff --git a/docs/tutorial/gtk_tut_table.jpg b/docs/tutorial/gtk_tut_table.jpg
new file mode 100644
index 0000000000..d769daab6e
--- /dev/null
+++ b/docs/tutorial/gtk_tut_table.jpg
Binary files differ