diff --git a/ChangeLog b/ChangeLog index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 5ce13a710e..ce6fc76628 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,9 @@ +Fri Jul 21 14:23:51 BST 2000 Tony Gale + + * docs/tutorial/gtk-tut.sgml: Minor updates + + * docs/tutorial/*.jpg *.eps: Screenshots for tutorial + 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. 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 @@ - July 18th 2000 + July 21st 2000 GTK+ 1.2 Tutorial @@ -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. - + Hello World in GTK Now for a program with a widget (a button). It's the classic @@ -402,7 +402,7 @@ purposes. - + Theory of Signals and Callbacks Before we look in detail at helloworld, we'll discuss signals @@ -486,7 +486,7 @@ data supplied to the callbacks. - + Events In addition to the signal mechanism described above, there is a set @@ -646,7 +646,7 @@ propagation process. - + Stepping Through Hello World Now that we know the theory behind this, let's clarify by walking @@ -869,7 +869,7 @@ callback, exiting GTK. Moving On - + Data Types There are a few things you probably noticed in the previous examples @@ -890,7 +890,7 @@ is an object. - + More on Signal Handlers Lets take another look at the gtk_signal_connect declaration. @@ -947,7 +947,7 @@ void gtk_signal_handler_unblock_by_data( GtkObject *object, - + An Upgraded Hello World Let's take a look at a slightly improved helloworld with @@ -1081,7 +1081,7 @@ into a window, how do you control where that widget is positioned? This is where packing comes in. - + Theory of Packing Boxes Most packing is done by creating boxes as in the example above. These @@ -1115,7 +1115,7 @@ placing and creating widgets. - + Details of Boxes Because of this flexibility, packing boxes in GTK can be confusing at @@ -1126,7 +1126,7 @@ different styles. - + @@ -1188,7 +1188,7 @@ following figure should make it clearer: - + @@ -1203,7 +1203,7 @@ it. Compile it yourself and play with it. - + Packing Demonstration Program @@ -1505,7 +1505,7 @@ int main( int argc, - + Packing Using Tables Let's take a look at another way of packing - Tables. These can be @@ -1655,7 +1655,7 @@ any spacing. - + Table Packing Example Here we make a window with three buttons in a 2x2 table. @@ -1666,7 +1666,7 @@ Which means it should look something like this: - + @@ -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. - - Casting + +Casting 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. - + Widget Hierarchy For your reference, here is the class hierarchy tree used to implement widgets. @@ -1969,7 +1969,7 @@ learn how a widget works just by looking at the function declarations. - + Widgets Without Windows The following widgets do not have an associated window. If you want to @@ -2009,7 +2009,7 @@ gtk/testgtk.c. The Button Widget - + Normal Buttons We've almost seen all there is to see of the button widget. It's @@ -2178,8 +2178,8 @@ released within Button widget - - Toggle Buttons + +Toggle Buttons 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); - - Check Buttons + +Check Buttons 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: Scrolled Windows, and others. - + Creating an Adjustment Many of the widgets which use adjustment objects do so automatically, @@ -2506,8 +2506,8 @@ usually non-zero. - - Using Adjustments the Easy Way + +Using Adjustments the Easy Way 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: - - Adjustment Internals + +Adjustment Internals 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. - + Scrollbar Widgets These are your standard, run-of-the-mill scrollbars. These should be @@ -2706,8 +2706,8 @@ widget. - - Scale Widgets + +Scale Widgets 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, - + Common Range Functions The Range widget class is fairly complicated internally, but, like @@ -2895,7 +2895,7 @@ gtk_signal_emit_by_name (GTK_OBJECT (adjustment), "changed"); - + Key and Mouse bindings All of the GTK range widgets react to mouse clicks in more or less @@ -2943,7 +2943,7 @@ and Control-Page Down. - Horizontal Range Widgets +Horizontal Range Widgets The left and right arrow keys work as you might expect in these widgets, moving the slider back and forth by step_increment. The @@ -2957,7 +2957,7 @@ while for HScrollbar, it's done with Control-Home and - + Example This example is a somewhat modified version of the "range controls" @@ -3275,7 +3275,7 @@ window. Miscellaneous Widgets - + Labels Labels are used a lot in GTK, and are relatively simple. Labels emit @@ -3465,7 +3465,7 @@ int main( int argc, - + Arrows The Arrow widget draws an arrowhead, facing in a number of possible @@ -3588,7 +3588,7 @@ int main( int argc, - + The Tooltips Object These are the little text strings that pop up when you leave your @@ -4122,8 +4122,8 @@ int main( int argc, - - Dialogs + +Dialogs 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: @@ -4649,7 +4649,7 @@ makes the application terminate. - + Rulers Ruler widgets are used to indicate the location of the mouse pointer @@ -4821,7 +4821,7 @@ int main( int argc, - + Statusbars Statusbars are simple widgets used to display a text message. They @@ -4959,7 +4959,7 @@ int main( int argc, - + Text Entries The Entry widget allows text to be typed and displayed in a single line @@ -5152,7 +5152,7 @@ int main( int argc, - + Spin Buttons The Spin Button widget is generally used to allow the user to select a @@ -5623,7 +5623,7 @@ int main( int argc, - + Combo Box 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. - + Calendar The Calendar widget is an effective way to display and retrieve @@ -6383,8 +6383,8 @@ int main(int argc, - - Color Selection + +Color Selection 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, - + File Selections The file selection widget is a quick and simple way to display a File @@ -6846,7 +6846,7 @@ int main( int argc, - + The Alignment widget The alignment widget allows you to place a widget within its window at @@ -6891,7 +6891,7 @@ the Progress Bar widget. - + Fixed Container The Fixed container allows you to place widgets at a fixed position @@ -7005,8 +7005,8 @@ int main( int argc, - - Layout Container + +Layout Container 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, - - Aspect Frames + +Aspect Frames 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, - + Paned Window Widgets 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. - + Button Boxes Button Boxes are a convenient way to quickly layout a group of @@ -7897,7 +7897,7 @@ int main( int argc, - + Toolbar Toolbars are usually used to group some number of widgets in order to @@ -8338,8 +8338,8 @@ static char * gtk_xpm[] = { - - Notebooks + +Notebooks 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. - + Creating a CList widget 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. - + Modes of operation 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, - + Working with titles 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, - + Manipulating the list itself It is possible to change the justification for a column, and it is @@ -8966,7 +8966,7 @@ void gtk_clist_set_background( GtkCList *clist, - + Adding rows to the list We can add rows in three ways. They can be prepended or appended to @@ -9029,7 +9029,7 @@ void gtk_clist_thaw( GtkCList * clist ); - + Setting text and pixmaps in the cells 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, - + Storing data pointers 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, - + Working with selections There are also functions available that let us force the (un)selection @@ -9199,7 +9199,7 @@ Luckily, there is a simpler way... - + The signals that bring it together 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), - + A CList example @@ -9438,8 +9438,8 @@ required by the user. This section of the tutorial is under development. - - Creating a CTree + +Creating a CTree 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. - + Adding and Removing nodes The items in a CTree are termed nodes. Nodes are inserted @@ -9575,8 +9575,8 @@ remove. - - Setting CTree Attributes + +Setting CTree Attributes 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: - + Utilizing row data 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. - - Creating a Tree + +Creating a Tree A Tree is created in the usual way, using: @@ -9740,7 +9740,7 @@ equivalent to gtk_list_*_items(). - + Adding a Subtree A subtree is created like any other Tree widget. A subtree is added @@ -9768,8 +9768,8 @@ expects. - - Handling the Selection List + +Handling the Selection List As with CList, the Tree type has a selection 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. - + Tree Widget Internals The Tree's struct definition looks like this: @@ -10321,7 +10321,7 @@ GtkWidget GTK_TREE_ITEM_SUBTREE (gpointer obj) - + Tree Example 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. - + Manual Menu Creation 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. - + Manual Menu Example That should about do it. Let's take a look at an example to help clarify. @@ -10905,7 +10905,7 @@ table, bind keys to menu functions. - + Using ItemFactory 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. - + Item Factory Example Here is an example using the GTK item factory. @@ -11056,7 +11056,7 @@ use of double- and triple-click to select a word and a whole line, respectively. - + Creating and Configuring a Text box There is only one function for creating a new Text widget. @@ -11133,7 +11133,7 @@ TRUE or FALSE value. - + Text Manipulation The current insertion point of a Text widget can be set using @@ -11236,7 +11236,7 @@ with it. - + Keyboard Shortcuts The text widget has a number of pre-installed keyboard shortcuts for @@ -11311,7 +11311,7 @@ extend the selection. - + A GtkText Example @@ -11524,7 +11524,7 @@ widget, please consider writing a tutorial on it so others may benefit from your time. - + CTree @@ -11532,64 +11532,64 @@ from your time. - - Curves + +Curves - - Drawing Area + +Drawing Area - - Font Selection Dialog + +Font Selection Dialog - - Gamma Curve + +Gamma Curve - - Image + +Image - - Packer + +Packer - - Plugs and Sockets + +Plugs and Sockets - - Preview + +Preview @@ -12100,7 +12100,7 @@ void gtk_widget_hide( GtkWidget *widget ); Timeouts, IO and Idle Functions - + Timeouts You may be wondering how you make GTK do useful work when in gtk_main. @@ -12138,7 +12138,7 @@ gint timeout_callback( gpointer data ); - + Monitoring IO A nifty feature of GDK (the library that underlies GTK), is the @@ -12191,7 +12191,7 @@ void input_callback( gpointer data, - + Idle Functions @@ -12224,7 +12224,7 @@ called. Advanced Event and Signal Handling - + Signal Functions @@ -12355,7 +12355,7 @@ void gtk_signal_emit_stop_by_name( GtkObject *object, - + Signal Emission and Propagation Signal emission is the process whereby GTK runs all handlers for a @@ -12411,7 +12411,7 @@ the signal is propagated, not the current emission. Managing Selections - + Overview One type of interprocess communication supported by X and GTK is @@ -12449,8 +12449,8 @@ selections and targets are identified by atoms. - - Retrieving the selection + +Retrieving the selection Retrieving the selection is an asynchronous process. To start the process, you call: @@ -12609,8 +12609,8 @@ int main( int argc, - -Supplying the selection + +Supplying the selection 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. - + Definitions Definitions for the extremes of many of the standard types are: @@ -12873,7 +12873,7 @@ guint32 - + Doubly Linked Lists The following functions are used to create, manage, and destroy @@ -12969,7 +12969,7 @@ void g_list_foreach( GList *list, - + Singly Linked Lists Many of the above functions for singly linked lists are identical to the @@ -13013,7 +13013,7 @@ void g_slist_foreach( GSList *list, - + Memory Management @@ -13061,7 +13061,7 @@ MEM_CHECK to the top of gmem.c and re-make and make install. - + Timers Timer functions can be used to time operations (e.g., to see how much @@ -13088,7 +13088,7 @@ gdouble g_timer_elapsed( GTimer *timer, - + String Handling GLib defines a new type called a GString, which is similar to a @@ -13166,7 +13166,7 @@ void g_string_sprintfa ( GString *string, - + Utility and Error Functions @@ -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. - -Functions For rc Files + +Functions For rc Files When your application starts, you should include a call to: @@ -13304,7 +13304,7 @@ imagination as to how best to take advantage of this. - + GTK's rc File Format 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. - + Example rc file @@ -13543,11 +13543,11 @@ widget "main window.*GtkButton*" style "main_button" -Writing Your Own Widgets +Writing Your Own Widgets - - Overview + +Overview 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: - - The Anatomy Of A Widget + +The Anatomy Of A Widget 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. - - Creating a Composite widget + +Creating a Composite widget - Introduction +Introduction 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. - Choosing a parent class +Choosing a parent class 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. - The header file +The header file 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[]) - -Creating a widget from scratch. + +Creating a widget from scratch @@ -14154,7 +14154,7 @@ set the value. - Displaying a widget on the screen +Displaying a widget on the screen There are several steps that are involved in displaying on the screen. After the widget is created with a call to WIDGETNAME_new(), @@ -14212,7 +14212,7 @@ an expose() function. - The origins of the Dial Widget +The origins of the Dial Widget 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. - The Basics +The Basics Quite a bit of our widget should look pretty familiar from the Tictactoe widget. First, we have a header file: @@ -15039,7 +15039,7 @@ entry widget to display the current value of the dial. - + Learning More Only a small part of the many details involved in creating widgets @@ -15058,7 +15058,7 @@ Good luck! Scribble, A Simple Example Drawing Program - + Overview In this section, we will build a simple drawing program. In the @@ -15072,7 +15072,7 @@ pressure and tilt, from such devices quite easy. - + Event Handling The GTK signals we have already discussed are for high-level actions, @@ -15284,7 +15284,7 @@ motion_notify_event (GtkWidget *widget, GdkEventMotion *event) - + The DrawingArea Widget, And Drawing We now turn to the process of drawing on the screen. The @@ -15497,8 +15497,8 @@ mundane details like creating the main window. - - Adding XInput support + +Adding XInput support 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. -Tim Janik timj@psynet.net for his great job on the Lists +Tim Janik timj@gtk.org for his great job on the Lists Widget. His excellent work on automatically extracting the widget tree and signal information from GTK. Thanks Tim :) @@ -16049,7 +16049,7 @@ signals. Therefore, you should refer to the widget hierarchy tree when using the signals listed in this section. - + GtkObject @@ -16060,7 +16060,7 @@ void GtkObject::destroy (GtkObject *, - + GtkWidget @@ -16240,7 +16240,7 @@ void GtkWidget::debug-msg (GtkWidget *, - + GtkData @@ -16251,7 +16251,7 @@ void GtkData::disconnect (GtkData *, - + GtkContainer @@ -16274,7 +16274,7 @@ void GtkContainer::set-focus-child (GtkContainer *, - + GtkCalendar @@ -16297,7 +16297,7 @@ void GtkCalendar::next-year (GtkCalendar *, - + GtkEditable @@ -16354,7 +16354,7 @@ void GtkEditable::paste-clipboard (GtkEditable *, - + GtkTipsQuery @@ -16378,7 +16378,7 @@ gboolean GtkTipsQuery::widget-selected (GtkTipsQuery *, - + GtkCList @@ -16437,7 +16437,7 @@ void GtkCList::abort-column-resize (GtkCList *, - + GtkNotebook @@ -16450,7 +16450,7 @@ void GtkNotebook::switch-page (GtkNotebook *, - + GtkList @@ -16467,7 +16467,7 @@ void GtkList::unselect-child (GtkList *, - + GtkMenuShell @@ -16488,7 +16488,7 @@ void GtkMenuShell::cancel (GtkMenuShell *, - + GtkToolbar @@ -16503,7 +16503,7 @@ void GtkToolbar::style-changed (GtkToolbar *, - + GtkTree @@ -16520,7 +16520,7 @@ void GtkTree::unselect-child (GtkTree *, - + GtkButton @@ -16539,7 +16539,7 @@ void GtkButton::leave (GtkButton *, - + GtkItem @@ -16554,7 +16554,7 @@ void GtkItem::toggle (GtkItem *, - + GtkWindow @@ -16566,7 +16566,7 @@ void GtkWindow::set-focus (GtkWindow *, - + GtkHandleBox @@ -16581,7 +16581,7 @@ void GtkHandleBox::child-detached (GtkHandleBox *, - + GtkToggleButton @@ -16592,7 +16592,7 @@ void GtkToggleButton::toggled (GtkToggleButton *, - + GtkMenuItem @@ -16605,7 +16605,7 @@ void GtkMenuItem::activate-item (GtkMenuItem *, - + GtkListItem @@ -16641,7 +16641,7 @@ void GtkListItem::scroll-horizontal (GtkListItem *, - + GtkTreeItem @@ -16654,7 +16654,7 @@ void GtkTreeItem::expand (GtkTreeItem *, - + GtkCheckMenuItem @@ -16665,7 +16665,7 @@ void GtkCheckMenuItem::toggled (GtkCheckMenuItem *, - + GtkInputDialog @@ -16680,7 +16680,7 @@ void GtkInputDialog::disable-device (GtkInputDialog *, - + GtkColorSelection @@ -16691,7 +16691,7 @@ void GtkColorSelection::color-changed (GtkColorSelection *, - + GtkStatusBar @@ -16708,7 +16708,7 @@ void GtkStatusbar::text-popped (GtkStatusbar *, - + GtkCTree @@ -16739,7 +16739,7 @@ void GtkCTree::change-focus-row-expansion (GtkCTree *, - + GtkCurve @@ -16750,7 +16750,7 @@ void GtkCurve::curve-type-changed (GtkCurve *, - + GtkAdjustment @@ -17257,7 +17257,7 @@ struct _GdkEventOther which are not included in complete form elsewhere. - + Tictactoe @@ -17560,12 +17560,12 @@ int main( int argc, - - GtkDial + +GtkDial - gtkdial.h +gtkdial.h /* example-start gtkdial gtkdial.h */ @@ -17667,7 +17667,7 @@ void gtk_dial_set_adjustment (GtkDial *dial, - gtkdial.c +gtkdial.c /* example-start gtkdial gtkdial.c */ @@ -18331,7 +18331,7 @@ gtk_dial_adjustment_value_changed (GtkAdjustment *adjustment, - dial_test.c +dial_test.c #include <stdio.h> @@ -18405,12 +18405,12 @@ int main( int argc, - - Scribble + +Scribble - scribble-simple.c +scribble-simple.c /* example-start scribble-simple scribble-simple.c */ @@ -18599,7 +18599,7 @@ int main( int argc, - scribble-xinput.c +scribble-xinput.c /* example-start scribble-xinput scribble-xinput.c */ @@ -18946,7 +18946,7 @@ field. The selection_mode may be one of the following: The default is GTK_SELECTION_MULTIPLE. - + Signals @@ -18982,8 +18982,8 @@ removed from the List. - - Functions + +Functions guint gtk_list_get_type( void ); @@ -19115,8 +19115,8 @@ gint GTK_IS_LIST( gpointer obj); - - Example + +Example 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, - - List Item Widget + +List Item Widget 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. - + Signals -AkListItem does not create new signals on its own, but inherits +A GtkListItem does not create new signals on its own, but inherits the signals of a Item. - - Functions + +Functions guint gtk_list_item_get_type( void ); @@ -19503,7 +19503,7 @@ gint GTK_IS_LIST_ITEM( gpointer obj ); - + Example 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 Binary files /dev/null and b/docs/tutorial/gtk_tut_packbox1.jpg 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 Binary files /dev/null and b/docs/tutorial/gtk_tut_packbox2.jpg 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 Binary files /dev/null and b/docs/tutorial/gtk_tut_table.jpg differ