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 |