var thetext=new Array()
thetext[0]="<ul><li>A Brief History of GTK+<li>The X Window System<li>GTK+ and Supporting Libraries<ul><li>GLib<li>GObject<li>GDK<li>GdkPixbuf<li>Pango<li>ATK</ul><li>Language Bindings<li>Installing GTK+</ul>"
thetext[1]="<ul><li>Hello World<ul><li>Initializing GTK+<li>Widget Hierarchy<li>GTK+ Windows<li>The Main Loop Function</ul><li>Using GCC and pkg-config to Compile<li>Extending \"Hello World\"<ul><li>The GtkLabel Widget<li>Container Widgets and Layout</ul><li>Signals and Callbacks<ul><li>Connecting the Signal<li>Callback Functions<li>Emitting and Stopping Signals</ul><li>Events<ul><li>Event Types<li>Using Specific Event Structures</ul><li>Further GTK+ Functions<ul><li>GtkWidget Functions<li>GtkWindow Functions<li>Process Pending Events</ul><li>Buttons<li>Widget Properties</ul>"
thetext[2]="<ul><li>GtkContainer<ul><li>Decorator Containers<li>Layout Containers<li>Resizing Children<li>Container Signals</ul><li>Horizontal and Vertical Boxes<li>Horizontal and Vertical Panes<li>Tables<ul><li>Table Packing<li>Table Spacing</ul><li>Fixed Containers<li>Expanders<li>Handle Boxes</ul>"
thetext[3]="<ul><li>Using Stock Items<li>Toggle Buttons<ul><li>Managing Widget Flags<li>Check Buttons<li>Radio Buttons</ul><li>Text Entries<ul><li>Entry Properties<li>Inserting Text into a GtkEntry Widget<li>Manipulating GtkEntry Text</ul><li>Spin Buttons<ul><li>Adjustments<li>A Spin Button Example</ul><li>Horizontal and Vertical Scales<li>Widget Styles<ul><li>The GtkStyle Structure<li>Resource Files</ul><li>Additional Buttons<ul><li>Color Buttons<ul><li>A GtkColorButton Example<li>Storing Colors in GdkColor<li>Using the Color Button</ul><li>File Chooser Buttons<ul><li>A GtkFileChooserButton Example<li>GtkFileChooser<li>File Filters</ul><li>Font Buttons<ul><li>A GtkFontButton Example<li>Using Font Selection Buttons</ul></ul></ul>"
thetext[4]="<ul><li>Creating Your Own Dialogs<ul><li>Creating a Message Dialog<ul><li>Creating the Dialog<li>Response Identifiers<li>The GtkImage Widget</ul><li>Nonmodal Message Dialog<li>Another Dialog Example</ul><li>Built-in Dialogs<ul><li>Message Dialogs<li>The About Dialog<ul><li>GdkPixbuf<li>GError</ul><li>File Chooser Dialogs<ul><li>Saving Files<li>Creating a Folder<li>Selecting Multiple Files</ul><li>Color Selection Dialogs<li>Font Selection Dialogs</ul><li>Dialogs With Multiple Pages<ul><li>Creating GtkAssistant Pages<li>GtkProgressBar<li>Page Forward Functions</ul></ul>"
thetext[5]="<ul><li>GLib Basics<ul><li>Basic Data Types<li>Standard Macros</ul><li>Message Logging<li>Memory Management<ul><li>Memory Slices<li>Memory Allocation<li>Memory Profiling</ul><li>Utility Functions<ul><li>Environment Variables<li>Timers<li>File Manipulation<li>Directories<li>File System</ul><li>The Main Loop<ul><li>Contexts and Sources<li>Timeouts<li>Idle Functions</ul><li>Data Types<ul><li>Strings<li>Linked Lists<li>Balanced Binary Trees<li>N-ary Trees<li>Arrays<ul><li>GArray<li>Pointer Arrays<li>Byte Arrays</ul><li>Hash Tables<li>Quarks<li>Keyed Data Lists</ul><li>Input-Output Channels<ul><li>GIOChannels and Files<li>GIOChannels and Pipes<li>Spawning Processes</ul><li>Dynamic Modules</ul>"
thetext[6]="<ul><li>Scrolled Windows<li>Text Views<ul><li>Text Buffers<li>Text View Properties<li>Pango Tab Arrays</ul><li>Text Iterators and Marks<ul><li>Editing the Text Buffer<ul><li>Retrieving Text Iterators and Marks<li>Changing Text Buffer Contents</ul><li>Cutting, Copying, and Pasting Text<li>Searching the Text Buffer<li>Scrolling Text Buffers</ul><li>Text Tags<li>Inserting Images<li>Inserting Child Widgets<li>GtkSourceView</ul>"
thetext[7]="<ul><li>Parts of a Tree View<ul><li>GtkTreeModel<li>GtkTreeViewColumn and GtkCellRenderer</ul><li>Using GtkListStore<ul><li>Creating the Tree View<li>Renderers and Columns<li>Creating the GtkListStore</ul><li>Using GtkTreeStore<li>Referencing Rows<ul><li>Tree Paths<li>Tree Row References<li>Tree Iterators</ul><li>Adding Rows and Handling Selections<ul><li>Single Selections<li>Multiple Selections<li>Adding New Rows<ul><li>Retrieving Row Data<li>Adding a New Row<li>Combo Boxes</ul><li>Removing Multiple Rows<li>Handling Double-clicks</ul><li>Editable Text Renderers<li>Cell Data Functions<li>Cell Renderers<ul><li>Toggle Button Renderers<li>Pixbuf Renderers<li>Spin Button Renderers<li>Combo Box Renderers<li>Progress Bar Renderers<li>Keyboard Accelerator Renderers</ul></ul>"
thetext[8]="<ul><li>Pop-up Menus<ul><li>Creating a Pop-up Menu<li>Pop-up Menu Callback Functions</ul><li>Keyboard Accelerators<li>Status Bar Hints<ul><li>The Status Bar Widget<li>Menu Item Information</ul><li>Menu Items<ul><li>Submenus<li>Image Menu Items<li>Check Menu Items<li>Radio Menu Items</ul><li>Menu Bars<li>Toolbars<li>Toolbar Items<ul><li>Toggle Tool Buttons<li>Radio Tool Buttons<li>Menu Tool Buttons</ul><li>Dynamic Menu Creation<ul><li>Creating UI Files<li>Loading UI Files<li>Additional Action Types<li>Placeholders</ul><li>Custom Stock Items</ul>"
thetext[9]="<ul><li>User Interface Design<ul><li>Know Your Users<li>Keep the Design Simple<li>Always Be Consistent<li>Keep the User in the Loop<li>We All Make Mistakes</ul><li>The Glade User Interface Builder<ul><li>The Glade Interface<li>Creating the Window<li>Adding a Toolbar<li>Completing the File Browser<li>Making Changes<li>Widget Signals<li>Creating a Menu</ul><li>Using Libglade<ul><li>Loading a User Interface<li>Connecting Signals</ul></ul>"
thetext[10]="<ul><li>Deriving New Widgets<ul><li>Creating the MyIPAddress Header File<li>Creating the Source File<ul><li>Registering a New GType<li>Initialize the Widget Class<ul><li>Installing Signals<li>Installing Properties<li>Parameter and Value Definitions</ul><li>Setting and Retrieving Object Properties<li>Instantiating the Widget<li>Implementing Public MyIPAddress Functions</ul><li>Testing the Widget</ul><li>Creating a Widget from Scratch<ul><li>Creating the MyMarquee Header File<li>Creating the MyMarquee Widget<li>Realizing the Widget<li>Specifying Size Requests and Allocations<li>Exposing the Widget<li>Drawing Functions<li>Implementing Public Functions<li>Testing the Widget</ul><li>Implementing Interfaces<ul><li>Implementing the Interface<li>Using the Interface</ul></ul>"
thetext[11]="<ul><li>Drawing Widgets<ul><li>A Drawing Area Example<li>The Layout Widget</ul><li>Calendars<li>Status Icons<li>Printing Support<ul><li>Print Operations<li>Beginning the Print Operation<li>Rendering Pages<li>Finalizing the Print Operation</ul><li>Cairo Drawing Context<ul><li>Drawing Paths<li>Rendering Options</ul><li>Recent Files<ul><li>Recent Chooser Menu<li>Adding Recent Files<li>Recent Chooser Dialog</ul><li>Automatic Completion</ul>"
thetext[12]="<ul><li>File Browser<li>Ping Utility<li>Hangman<li>Calculator<li>Calendar<ul><li>Markup Parser Functions<li>Parsing the XML File</ul><li>Final Comments</ul>"
thetext[13]="<ol type=A><li>GTK+ Properties<ul><li>GTK+ Properties<li>Child Widget Properties</ul><li>GTK+ Signals<ul><li>Events<li>Widget Signals</ul><li>GTK+ Styles<ul><li>Default RC File Styles<li>Pango Text Markup Language<li>GtkTextTag Styles<li>Widget Style Properties</ul><li>GTK+ Stock Items<li>GError Types<li>Exercise Solutions and Hints</ol>"

function displaychapter ()
{
  if (document.getElementById)
    document.getElementById('content').innerHTML=thetext[document.formchapters.chapter.selectedIndex]
}