bool main_iteration();

Runs a single iteration of the mainloop. If no events are waiting to be processed GTK+ will block until the next event is noticed. If you don't want to block look at main_iteration_do() or check if any events are pending with events_pending() first.

If you ever change the UI and go on with time consuming processing, you should update the UI (e.g. the progress bar) yourself by using the following lines of code:

while (Gtk::events_pending()) {

Returns true if main_quit() has been called for the innermost mainloop.