GTK+ Forums Forum Index GTK+ Forums
Discussion forum for GTK+ and Programming. Ask questions, troubleshoot problems, view and post example code, or express your opinions.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Gtk+ Tutorials & Resources
Goto page 1, 2  Next
 
Post new topic   Reply to topic    GTK+ Forums Forum Index -> General GTK+ Discussion
Author Message
caracal
GTK+ Guru


Joined: 21 Jun 2007
Posts: 205
Location: Wilkes Barre Pa

PostPosted: Tue Jan 15, 2008 7:14 am    Post subject: Gtk+ Tutorials & Resources Reply with quote

Welcome to Gtk+ Tutorials & Resources.
This page is a collection of information (Documentation, Tutorials, Examples) for Gtk+ programmers. Not everything is Gtk specific but everything here can be utilized to develop different types of Gtk programs.

Note: All of these books/tutorials focus on the c programming language.

Note: What needs to be done this week.
1. List needs to be reorganized, updated, redesigned "Starting to look like a mess" also
all tutorials and references need to be backed-up. Since i started this list we have lost a
total of 5 tutorials due to sites being taken down. Thank god for the internet time machine.

1. Needed tutorials & documentation. It's hard to believe that after 10 years we still have next to nothing in terms of documentation, tutorials, example code.
GObject
Gstreamer
Gtk+ Themes and Theme Engines
Gtk+ Default Icon Themes


C Programming 2nd Edition
This is the classic c book read this if you want to learn c.
[PDF] http://madison-project.wikidot.com/local--files/tutorials/The_C_Programming_Language.pdf

Another Good C Programming Site/Tutorial
[Html] http://www.exforsys.com/tutorials/c-language/c-programming-an-overview.html

More Good C Tutorials
[Html] http://irc.essex.ac.uk/www.iota-six.co.uk/c/

All the C you need to know for GTK+
[Html] http://www.freesoftwaremagazine.com/articles/all_the_c_you_need_for_gtk_development
[Pdf] http://www.freesoftwaremagazine.com/node/2543/pdf

Small C Tutorial from randu.org
[HTML] http://randu.org/tutorials/c/index.php

C Reference Card (ANSI) "Note: Needs to be replaced with one that is easyer to read"
[Pdf] http://users.ece.utexas.edu/~adnan/c-refcard.pdf

A Tutorial on Pointers and Arrays in C.
[Html] http://pweb.netcom.com/~tjensen/ptr/pointers.htm
[Pdf] http://pweb.netcom.com/~tjensen/ptr/pointers.pdf

A Tutorial on Pointers and Memory
[Pdf] http://cslibrary.stanford.edu/102/PointersAndMemory.pdf

If you need small straight to the point examples on how to use differant C lang features & functions.
[Html] http://www.java2s.com/Tutorial/C/CatalogC.htm
[Html] http://www.java2s.com/Code/C/CatalogC.htm

ISO/IEC 9989 Committee Draft "See Annex A (Language syntax summary) this is usefull if you want to build a C syntax parser that can do (Symbol name auto-completion & Symbol lists ) for a Gtk+ code editor."
[HTML] http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pdf

Glibc Tutorials
Multi-Threaded Programming With POSIX Threads
[Html] http://users.actcom.co.il/~choo/lupg/tutorials/multi-thread/multi-thread.html

Embedded Scripting
How to create C/Lua module with swig.
[pdf] http://madison-project.wikidot.com/local--files/tutorials/C_Lua_Swig.pdf

Lua Swig Tutorial
[Html] http://www.swig.org/Doc1.3/Lua.html

How to use Lua with C.
[Html] http://www.gtkforums.com/viewtopic.php?t=1995

How to use Python with C
[HTML] http://www.gtkforums.com/viewtopic.php?p=9055#9055

How to use Spidermonkey embedded javascript engine with C
[HTML] https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder%27s_Guide

Gtk+ Programming Tutorials "GUI Toolkit"

GTK+ 2.x Tutorial for Beginners
This tutorial is for beginners describing some of the most common widgets.
[HTML] http://zetcode.com/tutorials/gtktutorial/

How to set the color of a widget
[HTML] http://ometer.com/gtk-colors.html

Gnome2 Developers Guide "Gtk+ 2.0"
[PDF] http://home.cs.tum.edu/~siegel/files/tog2dg.pdf

Gtk+ 2.0 Tutorial
[HTML] http://library.gnome.org/devel/gtk-tutorial/stable/

Gtk+ 2.0 Tree View tutorial
[HTML] http://scentric.net/tutorial/treeview-tutorial.html
[PDF] http://scentric.net/tutorial/treeview-tutorial.pdf
Sources link for the treeview tutorial: http://scentric.net/tutorial/treeview-tutorial.tar.gz

Gtk+ 2.0 Text View tutorial
[HTML] http://www.bravegnu.org/gtktext/
[PDF] http://www.bravegnu.org/gtktext/gtktext-0.4.pdf

Gtk+ 2.0 GtkComboBox Widget Tutorial
[HTML]Part1 http://tadeboro.blogspot.com/2009/04/gtkcombobox-widget-part-1.html
[HTML]Part 2 http://tadeboro.blogspot.com/2009/04/as-promised-im-back-with-second-part-of.html
[HTML]Part 3 http://tadeboro.blogspot.com/2009/04/gtkcombobox-widget-part-3.html

GtkDialog tutorial
[HTML] Part 1: http://tadeboro.blogspot.com/2009/04/gtkdialog-tutorial-part-1.html
[HTML] Part 2: http://tadeboro.blogspot.com/2009/04/gtkdialog-tutorial-part-2.html

Wrapping and resizing GtkLabel dynamically
[HTML] http://tadeboro.blogspot.com/2009/05/wrapping-adn-resizing-gtklabel.html

Using pop-up windows
[HTML] http://tadeboro.blogspot.com/2009/05/using-pop-up-windows.html

Gtk memory management in a nutshell
[HTML] http://www.gtkforums.com/viewtopic.php?t=2412

Gtk Menu Tutorial
[HTML] http://samuelpauls.com/posts/126

Glade & Gtk+ Tutorials "Gtk+ Gui Designer"
GTK+ and Glade3 GUI Programming Tutorial
[HTML] http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html

Creating GtkTreeView with Glade-3
[HTML] Part 1: http://tadeboro.blogspot.com/2009/04/creatin-gtktreeview-with-glade-3.html
[HTML] Part 2: http://tadeboro.blogspot.com/2009/04/creating-gtktreeview-with-glade-3-part.html

Speeding up libglade by precompiling xml-files into shared objects
[PDF] http://syslog.movial.fi/uploads/compiled-libglade.pdf

Glib Tutorials "Gtk+ Utility Library"
Using GLib's GKeyFile Parser
[HTML] http://www.gtkbook.com/tutorial.php?page=keyfile

GNOMEnclature: The wonders of GLib
[HTML] Part 1: http://www.ibm.com/developerworks/linux/library/l-glib.html
[HTML] Part 2: http://www.ibm.com/developerworks/linux/library/l-glib2.html

Writing Unit Tests with GLib
[Html] http://blogs.gnome.org/timj/2008/06/24/23062008-writing-unit-tests-with-glib/

Looks like the start of a glib tutorial "Dated 2008"
[Html] http://w00d5t0ck.info/gnome_tutorial/gnome_tutorial.html

The Missing GObject Tutorial Sample
[HTML] http://arbingersys.blogspot.com/2009/07/missing-gobject-tutorial-sample.html

GObject tutorial
[HTML] http://madison-project.wikidot.com/local--files/tutorials/gobject-0.10.0-html.tar.gz

Hildon "Hildon is a user interface toolkit based in GTK that targets mobile devices."
Hildon Tutorial
[HTML] http://maemo.org/api_refs/5.0/beta/tutorial/html/

Pango Tutorials "Gtk+ Text Formating & Rendering Library"
The Pango connection:
[HTML] Part1: http://www.ibm.com/developerworks/library/l-u-pango1/
[HTML] Part 2: http://www.ibm.com/developerworks/library/l-u-pango2/

Cairo "2D Vector Graphics Library"
Cairo graphics tutorial.
It is done in the C programming language.
This tutorial is for beginners and intermediate developers 100+ pages.
[HTML] http://zetcode.com/tutorials/cairographicstutorial/

Cairo Concepts
A one-of-a-kind introduction to cairo concepts and models.
[HTML] http://cairographics.org/tutorial/

Writing a Widget Using Cairo and GTK+ 2.0
[HTML] Part1: http://www.gnomejournal.org/article/34/writing-a-widget-using-cairo-and-gtk28
[HTML] Part2: http://www.gnomejournal.org/article/36/writing-a-widget-using-cairo-and-gtk28-part-2

Clutter "2D/3D Multimedia Toolkit" - "Gtk+, Cairo, Gstreamer, Libvlc, Webkit, MD2, Mozembed plugins available."
Programming with Clutter 0.8
[Html] http://www.openismus.com/documents/clutter_tutorial/0.8/docs/tutorial/html/
[Pdf] http://www.openismus.com/documents/clutter_tutorial/0.8/docs/tutorial/pdf/programming-with-clutter.pdf
Programming with Clutter 0.9
[HTML] http://www.openismus.com/documents/clutter_tutorial/0.9/docs/tutorial/html/index.html
Programming with Clutter 1.0
[HTML] http://www.openismus.com/documents/clutter_tutorial/1.0/docs/tutorial/html/index.html

Clutter Plugins

Gtk+, Cairo, Gstreamer Plugins
http://www.clutter-project.org/sources/

Webkit Plugin
git clone git://git.o-hand.com/webkit

VLC Plugin
http://github.com/rno/clutter-vlc/tree/master

MD2 Plugin
http://github.com/bpeel/clutter-md2/tree/master

Mozembed Plugin
http://git.clutter-project.org/cgit.cgi?url=clutter-mozembed/tree/tests

Gstreamer Tutorials "Audio, Video Multimedia Toolkit"
GStreamer is a multimedia framework written in the C programming
language with the type system based on GObject."
Application Development Manual:
[HTML] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
[PDF] http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/manual/manual.pdf
Plugin Writer's Guide :
[HTML] http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html
[PDF] http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/pwg/pwg.pdf

GStreamer Quick Hello World type Tutorial
[HTML] Part1: http://bluwiki.com/go/GStreamer
[HTML] Part2: http://bluwiki.com/go/GStreamer/C_Hello_World

GStreamer Plugin Development Video
* An introduction to GStreamer terms, usage and the GStreamer pipeline model.
* Construction of simple pipelines using available GStreamer elements, building a video decoding pipeline
* Look at the requirements for various types of processing elements: Data sources, sinks, filters, converters.
* Development of a simple custom plugin for processing raw video frames
* Extending the custom element in various ways, to render video effects, provide custom communication with the application.
Participants should be familiar with GObject/GLib, as GStreamer code relies heavily on both.
[HTML] http://lca2007.linux.org.au/talk/272.html
[VIDEO] http://mirror.linux.org.au/pub/linux.conf.au/2007/video/talks/272.ogg

Opengl Tutorials "3D Graphics Library"
OpenGL Programming Guide "RedBook"
[PDF] http://madison-project.wikidot.com/local--files/tutorials/OpenGL_Programming_Guide.pdf

OpenGL Reference Manual "BlueBook"
[Pdf] http://madison-project.wikidot.com/local--files/tutorials/OpenGl_Reference_Manual.pdf

GtkGLExt is an OpenGL extension to GTK+ 2.0 or later
[HTML] http://www.k-3d.org/gtkglext/Main_Page <-- Download source for lots of C/Gtk+ example code.

osgGtk is a library of C based Gtk+ and C++ based Gtk-- widgets to support OpenSceneGraph (OSG) applications.
The library also includes several example applications such as osgviewerGtk and osgviewerGtkmm.
[HTML] http://osggtk.wiki.sourceforge.net/main <--Download source for C/Gtk+ example code.

Lexical Analyzer & Parser Generator
Lex & Yacc / Flex & Bison Primer
[Html] http://ds9a.nl/lex-yacc/cvs/output/lexyacc.html#toc1

A little manual for Lex and Yacc
[Html] http://pltplp.net/lex-yacc/

Flex Manual "Lex"
[Html] http://flex.sourceforge.net/manual/

Bison Manual "Yacc"
[Html] http://www.gnu.org/software/bison/manual/html_mono/bison.html
[Pdf] http://www.gnu.org/software/bison/manual/pdf/bison.pdf

Markup language Note: You will find API References and example usage on the provided links.
LibYAML is a YAML 1.1 parser and emitter written in C.
[Html] http://pyyaml.org/wiki/LibYAML

MJSON M's JSON parser is a small library completely written in plain ISO C which handles documents described by the JavaScript Object Notation (JSON) data interchange format.
[Html] http://mjson.sourceforge.net/index.html

LibAxl (or just Axl) is an implementation of the XML 1.0 standard specification written in C
[Html] http://www.aspl.es/axl/

Libxml2 is the XML C parser and toolkit developed for the Gnome project
[Html] http://www.xmlsoft.org/

Libcroco is a general CSS parsing and manipulation library written in C for the GNOME project. It provides a CSS2 parser (SAC and CSSOM API), and a CSS2 selection engine. It uses Libxml2 as underlying XML platform and the GLib as a portability layer.
[Html] https://launchpad.net/libcroco

Portable Document Format (PDF)
Poppler "Poppler is a PDF rendering library and is used with cairo to render PDF's"
[HTML] http://poppler.freedesktop.org/
[Example Viewer] http://www.gtkforums.com/viewtopic.php?p=9086#9086

libharu "libHaru is a free, cross platform, open source library for generating PDF files."
[HTML] http://libharu.org/wiki/Main_Page
[HTML] http://libharu.org/wiki/Documentation
[NOTE] Cairo can also produce PDF's but libharu does a way better job and has tons more features.

Programming & Hardware
The Linux Kernel Module Programming Guide
[Html] http://tldp.org/LDP/lkmpg/2.6/html/index.html

Bluetooth for Programmers "Describes Basic Bluetooth Concepts"
[PDF] http://people.csail.mit.edu/rudolph/Teaching/Articles/PartOfBTBook.pdf
An Introduction to Bluetooth Programming
[Html] http://people.csail.mit.edu/albert/bluez-intro/


Note: Site was deleted i have a backup copy that i need to make available.
LibParted Handbook "Note: LibParted is a library used to create, destroy, resize and copy PC disk partitions"
[Html] http://www.ilug-cal.org/wiki/index.php/Libparted_Handbook


HAL Tutorial "Hardware abstract layer"
[HTML] http://www.share-linux.com/hal1.php
[HTML] http://www.share-linux.com/hal2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Hal_Tutorial.pdf

LIRC Programming Guide "LIRC is a package that allows you to decode and send infra-red signals of many (but not all) commonly used remote controls."
[HTML] http://www.lirc.org/html/technical.html#applications

Libusb Programming Tutorial "libusb is a suite of user-mode routines for controlling data transfer to and from USB devices on Unix-like systems without the need for kernel-mode drivers."
[HTML] http://www.linuxforums.org/forum/linux-tutorials-howtos-reference-material/10865-developing-usb-device-drivers-userspace-using-libusb.html

Libburnia Api Referance and Code Examples "libburnia is a project for reading, mastering and writing optical discs. Currently it is comprised of libraries named libisofs, libburn, libisoburn, a cdrecord emulator named cdrskin, and an integrated multi-session tool named xorriso. The software runs on Linux and FreeBSD."
[HTML] http://api.libburnia-project.org/libburn/
[HTML] http://api.libburnia-project.org/libisofs/index.html
[HTML] http://api.libburnia-project.org/libisoburn/

Libmtp "libmtp is a LGPL library implementation of the Media Transfer Protocol (MTP), a superset of the Picture Transfer Protocol (PTP). "
[HTML] http://libmtp.sourceforge.net/index.php <--Download for API Reference and Examples

Libgpod "libgpod is a shared library to access the contents of an iPod. It supports playlists, smart playlists, playcounts, skipcounts, ratings, podcasts, and cover art. Audio and video are supported, as well as the photo database."
[HTML] http://www.gtkpod.org/libgpod/docs/ <--Download for Examples

Libgphoto2 "libgphoto2 is the core library designed to allow access to digital camera by external programs."
[HTML] http://www.gphoto.org/proj/libgphoto2/ <-- Download for API Reference and Examples

V4L2 "Video4Linux2 or V4L2 is a video capture application programming interface for Linux. Several USB webcams, TV tuners, and other devices are supported. Video4Linux2 is closely integrated with the Linux kernel. Video4Linux2 was named after Video for Windows (which is sometimes abbreviated "V4W"), but is not technically related to it."
[HTML] http://v4l2spec.bytesex.org/spec-single/v4l2.html#AEN163

DBus Tutorial "Message bus system"
[HTML] http://www.share-linux.com/dbus1.php
[HTML] http://www.share-linux.com/dbus2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Dbus_Tutorial.pdf

Database Programming
MySQL Database C API proramming tutorial
[Html] http://zetcode.com/tutorials/mysqlcapitutorial/

PostgreSQL
-------------
PostgreSQL Database libpq C API tutorial
[HTML] http://www.postgresql.org/docs/8.4/static/libpq.html

Accessing PostgreSQL From Code (Beginners C)
[HTML] http://tutorials.freeskills.com/professional-linux-programming-part-1-accessing-postgresql-from-code.htm

Berkley DB C API
-----------------
Getting Started with Data Storage:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/BerkeleyDB-Core-C-GSG.pdf
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/index.html
Getting Started with Transaction Processing:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_txn/C/BerkeleyDB-Core-C-Txn.pdf
[Html] Getting Started with Transaction Processing
Getting Started with Replication:
[Pdf] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_db_rep/C/Replication-C-GSG.pdf
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/gsg_db_rep/C/index.html
Referance Guide:
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/ref/toc.html
Programmatic API:
[Html] http://www.oracle.com/technology/documentation/berkeley-db/db/api_c/frame.html

Hamster DB
--------------
[Site] http://hamsterdb.com/index
[PDF] http://hamsterdb.com/public/dl/tutorial.pdf
[Examples] http://hamsterdb.com/documentation/samples

Sqlite embedded database.
[HTML] http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html

Archiving Libraries
SCZ
[HTML] http://scz-compress.sourceforge.net/
[API] http://scz-compress.sourceforge.net/api.html

QuickLZ
[HTML] http://www.quicklz.com/manual.html
[Examples] http://www.quicklz.com/download.html

Zlib
[HTML] http://www.zlib.net/zlib_docs.html
[Examples] http://www.zlib.net/zlib_how.html

Libarchive "C library and command-line tools for reading and writing tar, cpio, zip, bzip , gzip, ISO, and other archive formats"
[HTML] http://code.google.com/p/libarchive/

Network Libraries
Licurl "libcurl is a free and easy-to-use client-side URL transfer library, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. libcurl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos4), file transfer resume, http proxy tunneling and more! "
[HTML] http://curl.haxx.se/libcurl/c/libcurl-tutorial.html
[API] http://curl.haxx.se/libcurl/c/
[Examples] http://curl.haxx.se/libcurl/c/example.html


Link will be removed because wrapper is old and not developed anymore.
glibcurl "glibcurl consists of a small amount of C code which you can include in your program. It integrates the event loops of libcurl and glib. This means that a GTK+ program is able to wait for clicks, button presses etc. at the same time as waiting for data to arrive on the network sockets maintained by libcurl."
[HTML] http://atterer.net/glibcurl/
[API] http://atterer.net/jigdo/api/glibcurl_8h.html


Libpcap "libpcap is a system-independent interface for user-level packet capture. libpcap provides a portable framework for low-level network monitoring. Applications include network statistics collection, security monitoring, network debugging, etc."
[HTML] http://yuba.stanford.edu/~casado/pcap/section1.html

Libdnet "libdnet provides a simplified, portable interface to several low-level networking routines, including

* network address manipulation
* kernel arp(4) cache and route(4) table lookup and manipulation
* network firewalling (IP filter, ipfw, ipchains, pf, PktFilter, ...)
* network interface lookup and manipulation
* IP tunnelling (BSD/Linux tun, Universal TUN/TAP device)
* raw IP packet and Ethernet frame transmission "

Libnids "Libnids is an implementation of an E-component of Network Intrusion Detection System. It emulates the IP stack of Linux 2.0.x. Libnids offers IP defragmentation, TCP stream assembly and TCP port scan detection."
[HTML] http://libnids.sourceforge.net/
[EXAMPLE] http://libnids.sourceforge.net/printall.c

Libsoup "libsoup is an HTTP client/server library for GNOME. It uses GObjects and the glib main loop, to integrate well with GNOME applications."
[HTML] http://library.gnome.org/devel/libsoup/stable/

libEtPan "libEtPan is a mail purpose library. It will be used for low-level mail handling : network protocols (IMAP/NNTP/POP3/SMTP over TCP/IP and SSL/TCP/IP, already implemented), local storage (mbox/MH/maildir), message / MIME parser."
[HTML] http://www.etpan.org/libetpan/
[HTML] http://dinh.viet.hoa.free.fr/wiki/index.php?title=LibEtPan

GeoClue "GeoClue is a software framework which can be used to enable geospatial awareness in applications. GeoClue utilizes the D-Bus inter-process communication mechanism to provide location information. Through this it aims to simplify development of location aware applications and promote code reuse within the free software and open source communities by defining a logical boundary between the applications and underlying location providers. GeoClue is licensed under the GNU Lesser General Public License and is currently available for Linux."

GeoClue provides access to multiple position providers:

* GPS: Position information from a Global Positioning System receiver
* Plazes: Position information from the Plazes Wi-Fi location service
* Hostip: Position information based on IP address
* Manual: User-provided position information

[HTML] http://en.wikipedia.org/wiki/GeoClue
[HTML] http://www.freedesktop.org/wiki/Software/GeoClue
[HTML] http://folks.o-hand.com/jku/geoclue-docs/

Source Code Build Tools
Automating Program Compilation - Writing Makefiles
[Html] http://users.actcom.co.il/~choo/lupg/tutorials/writing-makefiles/writing-makefiles.html

GNU Autoconf, Automake, And Libtool "Goat Book"
[Html] http://sources.redhat.com/autobook/autobook/autobook_toc.html#SEC_Contents

Legal Resources
Open Source Licensing
Software Freedom and Intellectual Property Law
[Html] http://www.rosenlaw.com/oslbook.htm

Software Freedom Law Center:
We provide legal representation and other law-related services to protect and advance Free and Open Source Software (FOSS). Founded in 2005, the Center now represents many of the most important and well-established free software and open source projects.
[Html] http://www.softwarefreedom.org/

"Note: Remember never openly research software patents. Or inquire about patents with the us patent office if
you intend to use they patent in question. Because if you ever find your self being sued the fact that you inquired about they patent in question is enough to prove that you deliberately committed patent infringement.
"

Patent Commons Project:
The Patent Commons Project is dedicated to documenting the boundaries of The Commons -- a preserve where developers and users of software can innovate, collaborate, and access patent resources in an environment of enhanced safety, protected by pledges of support made by holders of software patents.
[Html] http://www.patent-commons.org/

Example Code
GtkGLExt:
http://oracle.bridgewayconsulting.com.au/~davyd/misc/gtkglext-example.c

Creating and writing to an OpenGL window "GtkGLExt":
http://www.gtkforums.com/viewtopic.php?t=3568

Glib Utility Functions:
http://www.gtkforums.com/viewtopic.php?t=2809

Glib GChecksumType Examples
http://www.gtkforums.com/viewtopic.php?p=9125#9125

WebkitGtk & GtkBuilder:
http://www.gtkforums.com/viewtopic.php?t=3057

GtkIconView:
http://www.gtkforums.com/viewtopic.php?t=3103

GtkSourceView Syntax Highlighting Text Widget:
http://www.gtkforums.com/viewtopic.php?t=3105

Clutter and Clutter-box2d:
http://www.gtkforums.com/viewtopic.php?t=3128

GtkComboBox sample code:
http://www.gtkforums.com/viewtopic.php?t=3375

GTK+, Cairo & Poppler PDF Viewer example:
http://www.gtkforums.com/viewtopic.php?p=9086#9086

Terminal emulator widget VTE example
http://www.gtkforums.com/viewtopic.php?p=9087#9087

Gtk windows with alpha channels and Cairo
http://mikehearn.wordpress.com/2006/03/26/gtk-windows-with-alpha-channels/
[EXAMPLE] http://plan99.net/~mike/files/alphademo.c

A shaped input example with Gtk+, Cairo and XShape 1.1
http://macslow.thepimp.net/?p=26
[EXAMPLE] http://macslow.thepimp.net/projects/input_shape_test.c

Gtk System Tray Example
[HTML] http://yettocome.blogspot.com/2007/08/gtk-system-tray-icon-example.html

Gtk System Tray with Animated Icon Example
[HTML] http://www.gtkforums.com/viewtopic.php?t=3423

Reference Manuals
The following is a list of the most current stable documentation available for GTK+ and its
supporting libraries. These are the standard libaries that you will be using to develop your
own GTK+ applications. Remember that, while GTK+ depends on GLib, that is only a one way
dependency!

lNote: There are other api references that need to be added.
ATK: http://library.gnome.org/devel/atk/stable/
GDK: http://library.gnome.org/devel/gdk/stable/
GdkPixbuf: http://library.gnome.org/devel/gdk-pixbuf/stable/
GLib: http://library.gnome.org/devel/glib/stable/
GObject: http://library.gnome.org/devel/gobject/stable/
GTK+: http://library.gnome.org/devel/gtk/stable/
Pango: http://library.gnome.org/devel/pango/stable/
Cairo: http://www.cairographics.org/manual/
Gstreamer: http://gstreamer.freedesktop.org/documentation/
Libglade: http://library.gnome.org/devel/libglade/unstable/
GtkGLExt: http://gtkglext.sourceforge.net/reference/gtkglext/
Clutter 0.8: http://clutter-project.org/docs/clutter/0.8/
Clutter 0.9: http://clutter-project.org/docs/clutter/0.9/
Webkit: http://oe.linuxtogo.org/~zecke/webkit-gtk-api/index.html

Please report any broken links so i can fix them.
Thanks Caraca


Last edited by caracal on Thu Oct 29, 2009 4:59 pm; edited 186 times in total
Back to top
ZuLuuuuuu
GTK+ Geek


Joined: 20 Dec 2007
Posts: 55
Location: Turkey

PostPosted: Tue Jan 15, 2008 7:30 am    Post subject: Reply with quote

Thanks!
Back to top
caracal
GTK+ Guru


Joined: 21 Jun 2007
Posts: 205
Location: Wilkes Barre Pa

PostPosted: Mon Jun 23, 2008 3:58 am    Post subject: Reply with quote

Updated!
Back to top
Vadi
GTK+ Geek


Joined: 28 May 2008
Posts: 67

PostPosted: Mon Jun 23, 2008 12:59 pm    Post subject: Reply with quote

Sources link for the treeview tutorial: http://scentric.net/tutorial/treeview-tutorial.tar.gz
Back to top
Ossi
GTK+ Geek


Joined: 09 Sep 2008
Posts: 67
Location: Denmark

PostPosted: Thu Sep 11, 2008 7:53 pm    Post subject: Reply with quote

nice list! thanks.
Back to top
Micah Carrick
Never Seen the Sunlight


Joined: 21 Sep 2005
Posts: 538
Location: Portland, OR USA

PostPosted: Fri Sep 12, 2008 4:11 pm    Post subject: Reply with quote

Thanks for putting this list together! Gotta plug my own tutorial in there...

Focuses on using Glade 3 to create a GTK Text Editor in C or Python.

GTK+ and Glade3 GUI Programming Tutorial
Back to top
caracal
GTK+ Guru


Joined: 21 Jun 2007
Posts: 205
Location: Wilkes Barre Pa

PostPosted: Fri Oct 10, 2008 7:14 am    Post subject: Update! Reply with quote

Added some new tutorials
1. Programming with Clutter
2. GTK+ and Glade3 GUI Programming Tutorial. Thanks Micah :)
3. An Introduction to Bluetooth Programming
4. LibParted Handbook "Note: LibParted is a library used to create, destroy, resize and copy PC disk partitions"
5. Automating Program Compilation - Writing Makefiles
6. GNU Autoconf, Automake, And Libtool "Goat Book"
7. Multi-Threaded Programming With POSIX Threads

Fixed some links.
C Programming 2nd Edition
OpenGL Programming Guide "RedBook"
OpenGL Reference Manual "BlueBook"

Note: They OpenGL Programming Guide & Reference Manual are meant to be used with GtkGLExt.


Last edited by caracal on Mon Mar 02, 2009 6:53 pm; edited 2 times in total
Back to top
Delmore
Familiar Face


Joined: 28 Sep 2008
Posts: 19

PostPosted: Fri Oct 10, 2008 8:19 am    Post subject: Re: Update! Reply with quote

good list
Back to top
updx



Joined: 15 Oct 2008
Posts: 2

PostPosted: Sun Oct 19, 2008 10:11 am    Post subject: Reply with quote

thanks!
Back to top
caracal
GTK+ Guru


Joined: 21 Jun 2007
Posts: 205
Location: Wilkes Barre Pa

PostPosted: Sun Feb 22, 2009 9:41 am    Post subject: Update! Reply with quote

New content!!!

DBus Tutorials "Message bus system"
[HTML] http://www.share-linux.com/dbus1.php
[HTML] http://www.share-linux.com/dbus2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Dbus_Tutorial.pdf

Old Freedesktop DBus Tutorial
[HTML] http://dbus.freedesktop.org/doc/dbus-tutorial.html

HAL Tutorial "Hardware abstract layer"
[HTML] http://www.share-linux.com/hal1.php
[HTML] http://www.share-linux.com/hal2.php
[PDF] http://madison-project.wikidot.com/local--files/tutorials/Hal_Tutorial.pdf

SpiderMonkey
JS Embedder's Guide "A guide to embedding the JavaScript C engine in applications. "
[HTML] https://developer.mozilla.org/en/JavaScript_C_Engine_Embedder%27s_Guide

Markup language Note: You will find API References and example usage on the provided links.

LibYAML is a YAML 1.1 parser and emitter written in C.
[HTML] http://pyyaml.org/wiki/LibYAML

MJSON M's JSON parser is a small library completely written in plain ISO C which handles documents described by the JavaScript Object Notation (JSON) data interchange format.
[HTML] http://mjson.sourceforge.net/index.html

LibAxl (or just Axl) is an implementation of the XML 1.0 standard specification written in C
[HTML] http://www.aspl.es/axl/

Libcroco is a general CSS parsing and manipulation library written in C for the GNOME project. It provides a CSS2 parser (SAC and CSSOM API), and a CSS2 selection engine. It uses Libxml2 as underlying XML platform and the GLib as a portability layer.
[HTML] https://launchpad.net/libcroco


Gtk+ and OpenGL
GtkGLExt is an OpenGL extension to GTK+ 2.0 or later
[HTML] http://www.k-3d.org/gtkglext/Main_Page <-- Download source for lots of C/Gtk+ example code.

osgGtk is a library of C based Gtk+ and C++ based Gtk-- widgets to support OpenSceneGraph (OSG) applications. The library also includes several example applications such as osgviewerGtk and osgviewerGtkmm.
[HTML] http://osggtk.wiki.sourceforge.net/main <--Download source for C/Gtk+ example code.
We also lost most of our glib tutorials :( so i have started to make backups in odf and pdf.
Back to top
Rui



Joined: 01 Mar 2009
Posts: 1

PostPosted: Sun Apr 05, 2009 7:34 pm    Post subject: Reply with quote

Is it my impression or there are too few tutorials explaining the process of creating GTK apps using visual tools like Glade?
Back to top
tadeboro
Never Seen the Sunlight


Joined: 23 Jul 2008
Posts: 1805
Location: Slovenia

PostPosted: Mon Apr 13, 2009 7:15 pm    Post subject: Reply with quote

Hello.

I started writing a blog with short Gtk tutorials. I'll be dealing mostly with undocumented widgets and widgets users from this forum find most difficult to use (that is, if I know how to use it;).

You can find my blog at http://tadeboro.blogspot.com/. Any comments and constructive critics are welcome.
Back to top
caracal
GTK+ Guru


Joined: 21 Jun 2007
Posts: 205
Location: Wilkes Barre Pa

PostPosted: Tue Apr 14, 2009 10:19 pm    Post subject: Reply with quote

Rui wrote:
Is it my impression or there are too few tutorials explaining the process of creating GTK apps using visual tools like Glade?


I am working on a sqlite3 c api tutorial right now but when i find time i will work on a Glade/GtkBuilder tutorial.


tadeboro wrote:

Hello.

I started writing a blog with short Gtk tutorials. I'll be dealing mostly with undocumented widgets and widgets users from this forum find most difficult to use (that is, if I know how to use it;).

You can find my blog at http://tadeboro.blogspot.com/. Any comments and constructive critics are welcome.


Great! I will keep an eye on your blog and update they tutorial list when needed.
Back to top
wally_bkg
Familiar Face


Joined: 02 Sep 2009
Posts: 19

PostPosted: Thu Sep 03, 2009 12:52 pm    Post subject: Too few gstreamer tutorials and examples! Reply with quote

I'd say gstreamer is close to undocumented when you get right down to it. None of the freedesktop.org documentation offers any context beyond a simple "helloworld" type audio file player. These docs are very incomplete and mostly are just autogenerated reference material that are really only useful once you've learned nearly everything and just need the details of the minutia.

What is really missing is some context, things like why would you use ximagesink vs xvimagesink for example.


The examples I've found so far in the source gstreamer trees I've downloaded seem less then impressive (based on my random selection of examples that seem to address things I'd like to accomplish).

I found a seek example that opens a gtk window and plays an audio file with a seek bar. Trouble is, if this is the best gstreamer can do I need to switch to plan B now -- most orders of button and control activation lock it up, at best its an example of how not to do a seekbar.

Applications like Totum and Amarok 1.4 make me think gstreamer is what I should use as it seems it will end up being to Linux what Directshow is to Windows, meaning using anything else will be swimming upstream in the long run. But non-gstreamer media players (Mplayer) seem to have lower CPU usage on formats supported by both.

Micah, Thanks so much for your tutorial, I'd found it via Google before I'd found these forums. Up to then I'd been hopelessly confused not realizing that what I was finding about Glade was mostly wrong because I never realized the difference Glade2 vs. Glade3 and their very different strategies.
Back to top
wally_bkg
Familiar Face


Joined: 02 Sep 2009
Posts: 19

PostPosted: Thu Sep 03, 2009 1:24 pm    Post subject: Reply with quote

tadeboro wrote:

Hello.

I started writing a blog with short Gtk tutorials. I'll be dealing mostly with undocumented widgets and widgets users from this forum find most difficult to use (that is, if I know how to use it;).

You can find my blog at http://tadeboro.blogspot.com/. Any comments and constructive critics are welcome.


I just found this:
http://tadeboro.blogspot.com/2009/06/multi-threaded-gtk-applications.html#comments

Looks a lot like Win32 EnterCriticalSection() LeaveCriticalSection() coding style.

Since gstreamer is multi-threaded and and I'm running a dual CPU might explain why the gstreamer seekbar example I mentioned in my post above is useless, it has none of the thread awareness stuff! Its the kind of thing you can often get away with on a single CPU but real parallelism breaks it.

My most pressing issues are how do I embed a gstreamer video output (xvimagesink or ximagesink) window inside a gtk application (I'd prefer glade3 and the convert script for UI design at this point), and what gtk+ widgits are available to plot analog data in a stripchart type scrolling display, if any.

I found this:
http://code.google.com/p/gst-player/

and it sorta works, but its got some conditional code where it it maps the ximagesink to gtk window that I don't yet understand enough to modify or correct the compiler warnings about the pointer casts being used.

--wally.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    GTK+ Forums Forum Index -> General GTK+ Discussion All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 


Powered by phpBB © 2001, 2005 phpBB Group
CodeBB 1.0 Beta 2
Protected by Anti-Spam ACP