A Journey through GTK
Table of Contents
AuthorsAuthors
PrefacePreface
CopyrightsCopyrights,Licenses and Legal B.S [FDL'ed]
AcknowledgementsAcknowledgements
Chapter1       Introducing GTK+, GDK & GLib
SECTION: 1.1
Things you need for gtk programming. necessary libraries and toolkits, compilers OS and all.
SECTION: 1.2
A note about Free Software, Gimp,Gtk and Gnome and their history.
SECTION: 1.3
What is gtk. What can it do for you? Why learn Gtk.
SECTION: 1.4
How is it different from Qt, Wxwindows, MFC [in windows] etc.
SECTION: 1.5
Examples of gtk applications: Gimp, gNumeric, Dia , /* GNOME */ et-al. Show the power of Gtk. {cross-platform portability, language bindings, la carte.
Chapter2       Beginning on the GTK+ journey
SECTION: 2.1
Introduction to Gtk. Creating your first window based programs follow the tutorial approach. Hello WOrld 1[dumbest]
SECTION: 2.2
Explaining Packaging, Signals, events and callbacks
SECTION: 2.3
Explaing message passing and how the main loop works.
SECTION: 2.4
Hello World 2[destroy on click].
SECTION: 2.5
Building confidence. Hello World 3[user interact. dialogs.].
SECTION: 2.6
Events Signals in Gtk.
Chapter3       The Basic Widgets
SECTION: 3.1
Buttons, Labels, Boxes, Dialogs. Adding Arrow widget
SECTION: 3.2
[rulers]Sliders, Using the GtkRuler and adjustment widgets.example: A simple time slider, using progress bar.
SECTION: 3.3
Dialogs. Create them and use them all.
SECTION: 3.4
Toolbar and Tooltips.
SECTION: 3.5
More Gtk. Menus,Menuitems, Itemfactory. Create them and use them all.
SECTION: 3.6
Images Pixmap widgets.
SECTION: 3.7
Special Dialog Boxes. Input dialog message dialog. File selection Dialog. Making custom dialog.
Chapter4       MVC based Widgets
SECTION: 4.1
Write about text components. TextView, TextBuffer, TextTag, TagTable. Model View Controller [MVC] architecture??
SECTION: 4.2
Tree View, TreeStore, ListStore. Cellrenderer, Cellrenderer Text, Cellrenderer Pixbuf. Events and Signals from a tree view.
Chapter5       Pango, Fonts & i18n , l10n : The pango library
SECTION: 5.1
Setting Fonts. GtkFontSel. GtkFont dialog,
SECTION: 5.2
Internationalization localisation. i18n, l10n. PO files.
SECTION: 5.3
The Bi-Di [bidirectional] algorithm of PANGO.
SECTION: 5.4
Gettext of GNU.
Chapter6       GTK+ & GDK: Color & Graphics
SECTION: 6.1
Very brief intro about how the widgets are painted, the various signals involved. realize, expose, map, unmap, hide etc etc. Descripbing the GDK system. Intro to pixbuf,pixmap, window drrawables of the GDK widget. Intro to Visual, GC, colormap, colors of the RGB plane.
SECTION: 6.2
Colors color planes. GtkCOlor dialog, Color selection Dialog BOx.
SECTION: 6.3
Setting colours of widgets [fg bg]. Setting background picture. Non standard[ circular, oval etc..] window shapes. Bitmap masks, and shaped widgets.
SECTION: 6.4
GTK+ widgets. curve, gamma, colorselect, Drawing area, GTK+ preview. Also GtkGraph etc..
SECTION: 6.5
GDK: Simple Graphics on SCREEN GDKpixbuf GDKrgb. How GDK can be used to redraw, screen, and \"Screen Shot\" programs, window \"kill\" programs. X Concepts. Pixmaps, Pixbufs, Setting Icons to the application on the desktop/panel, when a window is minimized.
SECTION: 6.6
Pixbuf Animation, and example paint program. Small image processing code, and image file loading saving. Usage of custom cursors,and backgrounds. Changing cursors, making your own cursors from XPM files. Progressive loading, Asynchronous loading, Marshalling etc.
Chapter7        The object model of Gtk: GObject,Glib subs systems
SECTION: 7.1
Advanced GLib functionality. GLib type mechanisms. Construtors, Destructors Explained.
SECTION: 7.2
GObject, signal, events, notifications. Construtors, Destructors Explained. Finalizing and reference counting.
SECTION: 7.3
GTKObject. Construtors, Destructors Explained. Finalizing and reference counting.
SECTION: 7.4
Example.Creating a custom object, with inheritance,Polymorphism and showing extensibility of theGTYPE architecture.
Chapter8       Accesibility in Style, with GTK+: Accelerators, Stock, Style
SECTION: 8.1
Shortcuts, Mnemonics, Accesibility. Talk about the ATK.
SECTION: 8.2
Explain STOCK THEME is GTK. Registering stocks.
SECTION: 8.3
Customisation and RC files and theme's. Run time theme changing. Give example of editing an RC file to users wish.
SECTION: 8.4
Drag Drop. In general. Example.
SECTION: 8.5
GtkPlug GtkSocket. Review in GNOME /Bonobo section.
Chapter9       Introduction to Glade & LibGlade
SECTION: 9.1
GLADE Intro. RAD Concepts. Show a way of developing some nice program in GLADE.
SECTION: 9.2
Glade - A GTK+ interface builder: Introducing LibGlade Introducing LibGlade: Dynamic GUI creation and fast access. Using the applicationname.glade file.
SECTION: 9.3
Language Bindings of GLADE. Other RAD tools ? [DO they exist?]
Chapter10       Making custom widgets
SECTION: 10.1
Outline the procedure. Creation of the G Type system, and registering types. Guts of the OO system.
SECTION: 10.2
Drawing using GTK GDK. Using STYLE's of the GTK+ for drawing. Compositing and handling the expose and realize events.
SECTION: 10.3
Walk through, the code of some custom widget that we have written.
Chapter11       A peek into GNOME progamming.
SECTION: 11.1
Getting started. Simple GNOME Application. HOw to start a gnome-app, and compiling, library intricacies of GNOME.
SECTION: 11.2
The MDI [Multiple Document Interface] idea. Using the GNOME session manager, GConf and also the GNOME.
SECTION: 11.3
LibGNOME Print UI, and example. Using the custom dialogs and menus of GNOME. eg: Gnome Calculator, GnomePrint dialogs, etc.
Chapter12       Components:Extra GNOME programming
SECTION: 12.1
GNOME components. Introduction to BONOBO, ORB and CORBA.
SECTION: 12.2
BONOBO, BONOBO-UI, and how they relateto GNOME programming.
SECTION: 12.3
Simple Nautilus extension. A Component,for font viewer. [Like seeing photo's in a text editor, spreadsheets in an word processor] etc. eg: Fontilus, implementing Gnome VFS.
SECTION: 12.4
Case study of Gnumeric's implementation of components; GEdit implementation of components.
Chapter13       Paradigms of event driven programming.
SECTION: 13.1
An example of a simple text editor.
SECTION: 13.2
An example of a board game program.
SECTION: 13.3
An example of XML programming using LibXML.
SECTION: 13.4
An example paint program.
SECTION: 13.5
A Networked GTK Application. with an example of timers.
SECTION: 13.6
A LibXML example using GTK+: An address book example
SECTION: 13.7
Simple Database interface: An example displaying MySQL connectivity
SECTION: 13.8
Creating our own widgets: The use of GWF
SECTION: 13.9
A brief look at GNOME widgets and the Anjuta (/Scaffold) IDE
SECTION: 13.10
GtkExtra and some other 3rd party widgets
Chapter14       Platforms and Language Bindings.
SECTION: 14.1
Platform specific GUI behaviour.
SECTION: 14.2
Language bindings for GTK. Overview of C++ Python.
SECTION: 14.3
A look at GTK-- for C++
Appendix A
Support for Gtk, mailing lists, URL, useful websites.: Setting up GTK+ on GNU Linux Win32. Compiling from the source.
Appendix B
Limited, GTK+ API Reference for used functions in example code.and explanations.
Appendix C
Using vi and emacs: pointers to tutorials, and docs.A simple 2 page Vi 2 page Emacs tutorials.
Appendix D
GNU command-line programs at a glance. [patch, diff, cvs, gdb etc..]
Appendix E
The gcc compiler and other GNU tools libtool,automake, autoconf etc.
Appendix F
Source code of these progams and associated Makefiles on CD!
Appendix G
Online resources and websites
GlossaryGlossary of Terms:
CreditsCredits
IndexIndex