GTK Geometry Managers When packing widgets into windows, one can do that directly, like this (assume main_window is the top-level window we created previously): /* this will store a push button. */ GtkWidget* button; /* create a push button. */ button = gtk_button_new_with_label("Hello"); /* pack the button into the top-level window. */ gtk_container_add(GTK_CONTAINER(main_window), button); /* finally, make the button visible. */ gtk_widget_show(button); However, in this method, we have no control on the placement of widgets in the window. Geometry managers are supposed to give us this control.