This is a tutorial for advanced GTK programming. It is written for people who have passed the stage of learning how GTK works and want to know how to program more advanced, real-world applications. Things that will be covered include creating your own widgets and cell renderers, writing dynamic user interfaces, and more.

If you need to learn how GTK works, I heartily recommend GNOME's ten-minute tutorials.

This tutorial isn't finished yet, I'm working on it. You can follow along while it's a work in progress, though. Both the code and the website are hosted on Github, so if you see a mistake, you can report it there, or just change it yourself and send me a pull request.