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
).