GtkInfoBar is a widget that can be used to show messages to
the user without showing a dialog. It is often temporarily shown
at the top or bottom of a document. In contrast to GtkDialog, which
has a horizontal action area at the bottom, GtkInfoBar has a
vertical action area at the side. The API of GtkInfoBar is very similar to GtkDialog, allowing you
to add buttons to the action area with gtkInfoBarAddButton or
gtkInfoBarNewWithButtons. The sensitivity of action widgets
can be controlled with gtkInfoBarSetResponseSensitive.
To add widgets to the main content area of a GtkInfoBar, use
gtkInfoBarGetContentArea and add your widgets to the container. Similar to GtkMessageDialog, the contents of a GtkInfoBar can by
classified as error message, warning, informational message, etc,
by using gtkInfoBarSetMessageType. GTK+ uses the message type
to determine the background color of the message area. Simple GtkInfoBar usage./* set up info bar */
info_bar = gtk_info_bar_new ();
gtk_widget_set_no_show_all (info_bar, TRUE);
message_label = gtk_label_new ("");
gtk_widget_show (message_label);
content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (info_bar));
gtk_container_add (GTK_CONTAINER (content_area), message_label);
gtk_info_bar_add_button (GTK_INFO_BAR (info_bar),
GTK_STOCK_OK, GTK_RESPONSE_OK);
g_signal_connect (info_bar, "response",
G_CALLBACK (gtk_widget_hide), NULL);
gtk_table_attach (GTK_TABLE (table),
info_bar,
0, 1, 2, 3,
GTK_EXPAND | GTK_FILL, 0,
0, 0); /* ... */ /* show an error message */
gtk_label_set_text (GTK_LABEL (message_label), error_message);
gtk_info_bar_set_message_type (GTK_INFO_BAR (info_bar),
GTK_MESSAGE_ERROR);
gtk_widget_show (info_bar);
GtkInfoBar as GtkBuildable
The GtkInfoBar implementation of the GtkBuildable interface exposes
the content area and action area as internal children with the names
"content_area" and "action_area". GtkInfoBar supports a custom element, which
can contain multiple elements. The "response"
attribute specifies a numeric response, and the content of the element
is the id of widget (which should be a child of the dialogs action.area).