GTK+ By Example/GTK+/Widgets/Custom Widgets

Things you should understand before attempting this

 * how to create a class that inherits from GObject.
 * signals and listeners