Existing Menu/Toolbar API Code for creating menus looks a bit like this: Create GtkMenuBar Add GtkMenuItems for toplevel menus, and attach GtkMenus to them. Add GtkMenuItems to the GtkMenus Attach callbacks to the "activate" signal of the menu items Repeat for sub-menus ... There is GtkItemFactory to simplify things, but it does essentially the same thing as this Toolbars are similar, although no sub-menus.