Here you will find how GtkWidget standards buttons are built and can be drawn. Here we use ready to use methods from GtkStyle class to draw buttons, checkboxes and handles. You can use theses classes to override standard buttons features. It's also useful to understand how GtkWidgets work. This class study started when I was trying to display a handle and did not found any one.
It's less of a tutorial and more of a code dump, but it gives you a good idea of how all of the functionality can work together.