Listing 3: Custom widgets can be added to the GTK+ toolkit, such as this numeric keypad widget
#ifndef __NUMBERPAD_H__ #define __NUMBERPAD_H__ #include <gdk/gdk.h> #include <gtk/gtkvbox.h> #define NUMBERPAD(obj) GTK_CHECK_CAST(obj, \ numberpad_get_type(), Numberpad) #define IS_NUMBERPAD(obj) GTK_CHECK_TYPE(obj, \ numberpad_get_type()) typedef struct _Numberpad Numberpad; struct _Numberpad { GtkVBox vbox; GtkWidget* numberButtons[10]; GtkWidget* enterButton; GtkAdjustment* adjustment; unsigned char numbers[4]; }; guint numberpad_get_type(); GtkWidget* numberpad_new(GtkAdjustment*); #endif // __NUMBERPAD_H__