Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
InfoBar
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 Dialog
, which
has a action area at the bottom, InfoBar
has an action area
at the side.
The API of InfoBar
is very similar to Dialog
, allowing you
to add buttons to the action area with infoBarAddButton
or
gtk_info_bar_new_with_buttons()
. The sensitivity of action widgets
can be controlled with infoBarSetResponseSensitive
.
To add widgets to the main content area of a InfoBar
, use
infoBarGetContentArea
and add your widgets to the container.
Similar to MessageDialog
, the contents of a InfoBar
can by
classified as error message, warning, informational message, etc,
by using infoBarSetMessageType
. GTK+ may use the message type
to determine how the message is displayed.
A simple example for using a InfoBar
:
C code
GtkWidget *widget, *message_label, *content_area; GtkWidget *grid; GtkInfoBar *bar; // set up info bar widget = gtk_info_bar_new (); bar = GTK_INFO_BAR (widget); grid = gtk_grid_new (); gtk_widget_set_no_show_all (widget, TRUE); message_label = gtk_label_new (""); content_area = gtk_info_bar_get_content_area (bar); gtk_container_add (GTK_CONTAINER (content_area), message_label); gtk_info_bar_add_button (bar, _("_OK"), GTK_RESPONSE_OK); g_signal_connect (bar, "response", G_CALLBACK (gtk_widget_hide), NULL); gtk_grid_attach (GTK_GRID (grid), widget, 0, 2, 1, 1); // ... // show an error message gtk_label_set_text (GTK_LABEL (message_label), "An error occurred!"); gtk_info_bar_set_message_type (bar, GTK_MESSAGE_ERROR); gtk_widget_show (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 <action-widgets> element, which can contain
multiple <action-widget> 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 actionArea
).
CSS nodes
GtkInfoBar has a single CSS node with name infobar. The node may get one of the style classes .info, .warning, .error or .question, depending on the message type.
Synopsis
- newtype InfoBar = InfoBar (ManagedPtr InfoBar)
- class GObject o => IsInfoBar o
- toInfoBar :: (MonadIO m, IsInfoBar o) => o -> m InfoBar
- noInfoBar :: Maybe InfoBar
- infoBarAddActionWidget :: (HasCallStack, MonadIO m, IsInfoBar a, IsWidget b) => a -> b -> Int32 -> m ()
- infoBarAddButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Text -> Int32 -> m Button
- infoBarGetActionArea :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Widget
- infoBarGetContentArea :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Widget
- infoBarGetMessageType :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m MessageType
- infoBarGetRevealed :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Bool
- infoBarGetShowCloseButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> m Bool
- infoBarNew :: (HasCallStack, MonadIO m) => m InfoBar
- infoBarResponse :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> m ()
- infoBarSetDefaultResponse :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> m ()
- infoBarSetMessageType :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> MessageType -> m ()
- infoBarSetResponseSensitive :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Int32 -> Bool -> m ()
- infoBarSetRevealed :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Bool -> m ()
- infoBarSetShowCloseButton :: (HasCallStack, MonadIO m, IsInfoBar a) => a -> Bool -> m ()
- constructInfoBarMessageType :: IsInfoBar o => MessageType -> IO (GValueConstruct o)
- getInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> m MessageType
- setInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> MessageType -> m ()
- constructInfoBarRevealed :: IsInfoBar o => Bool -> IO (GValueConstruct o)
- getInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> m Bool
- setInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> Bool -> m ()
- constructInfoBarShowCloseButton :: IsInfoBar o => Bool -> IO (GValueConstruct o)
- getInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> m Bool
- setInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> Bool -> m ()
- type C_InfoBarCloseCallback = Ptr () -> Ptr () -> IO ()
- type InfoBarCloseCallback = IO ()
- afterInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> InfoBarCloseCallback -> m SignalHandlerId
- genClosure_InfoBarClose :: InfoBarCloseCallback -> IO Closure
- mk_InfoBarCloseCallback :: C_InfoBarCloseCallback -> IO (FunPtr C_InfoBarCloseCallback)
- noInfoBarCloseCallback :: Maybe InfoBarCloseCallback
- onInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> InfoBarCloseCallback -> m SignalHandlerId
- wrap_InfoBarCloseCallback :: InfoBarCloseCallback -> C_InfoBarCloseCallback
- type C_InfoBarResponseCallback = Ptr () -> Int32 -> Ptr () -> IO ()
- type InfoBarResponseCallback = Int32 -> IO ()
- afterInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> InfoBarResponseCallback -> m SignalHandlerId
- genClosure_InfoBarResponse :: InfoBarResponseCallback -> IO Closure
- mk_InfoBarResponseCallback :: C_InfoBarResponseCallback -> IO (FunPtr C_InfoBarResponseCallback)
- noInfoBarResponseCallback :: Maybe InfoBarResponseCallback
- onInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> InfoBarResponseCallback -> m SignalHandlerId
- wrap_InfoBarResponseCallback :: InfoBarResponseCallback -> C_InfoBarResponseCallback
Exported types
Memory-managed wrapper type.
Instances
GObject InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar gobjectType :: InfoBar -> IO GType # | |
IsImplementorIface InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsObject InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsBuildable InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsOrientable InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsBox InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsContainer InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsWidget InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsInfoBar InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar |
class GObject o => IsInfoBar o Source #
Instances
(GObject a, (UnknownAncestorError InfoBar a :: Constraint)) => IsInfoBar a Source # | |
Defined in GI.Gtk.Objects.InfoBar | |
IsInfoBar InfoBar Source # | |
Defined in GI.Gtk.Objects.InfoBar |
Methods
addActionWidget
addButton
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Text |
|
-> Int32 |
|
-> m Button | Returns: the |
Adds a button with the given text and sets things up so that clicking the button will emit the “response” signal with the given response_id. The button is appended to the end of the info bars's action area. The button widget is returned, but usually you don't need it.
Since: 2.18
getActionArea
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> m Widget | Returns: the action area |
Returns the action area of infoBar
.
Since: 2.18
getContentArea
infoBarGetContentArea Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> m Widget | Returns: the content area |
Returns the content area of infoBar
.
Since: 2.18
getMessageType
infoBarGetMessageType Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> m MessageType | Returns: the message type of the message area. |
Returns the message type of the message area.
Since: 2.18
getRevealed
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> m Bool | Returns: the current value of the GtkInfoBar:revealed property. |
No description available in the introspection data.
Since: 3.22.29
getShowCloseButton
infoBarGetShowCloseButton Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> m Bool | Returns: |
Returns whether the widget will display a standard close button.
Since: 3.10
new
:: (HasCallStack, MonadIO m) | |
=> m InfoBar | Returns: a new |
Creates a new InfoBar
object.
Since: 2.18
response
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Int32 |
|
-> m () |
Emits the “response” signal with the given responseId
.
Since: 2.18
setDefaultResponse
infoBarSetDefaultResponse Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Int32 |
|
-> m () |
Sets the last widget in the info bar’s action area with the given response_id as the default widget for the dialog. Pressing “Enter” normally activates the default widget.
Note that this function currently requires infoBar
to
be added to a widget hierarchy.
Since: 2.18
setMessageType
infoBarSetMessageType Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> MessageType |
|
-> m () |
Sets the message type of the message area.
GTK+ uses this type to determine how the message is displayed.
Since: 2.18
setResponseSensitive
infoBarSetResponseSensitive Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Int32 |
|
-> Bool |
|
-> m () |
Calls gtk_widget_set_sensitive (widget, setting) for each widget in the info bars’s action area with the given response_id. A convenient way to sensitize/desensitize dialog buttons.
Since: 2.18
setRevealed
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Bool |
|
-> m () |
Sets the GtkInfoBar:revealed property to revealed
. This will cause
infoBar
to show up with a slide-in transition.
Note that this property does not automatically show infoBar
and thus won’t
have any effect if it is invisible.
Since: 3.22.29
setShowCloseButton
infoBarSetShowCloseButton Source #
:: (HasCallStack, MonadIO m, IsInfoBar a) | |
=> a |
|
-> Bool |
|
-> m () |
If true, a standard close button is shown. When clicked it emits
the response ResponseTypeClose
.
Since: 3.10
Properties
messageType
The type of the message.
The type may be used to determine the appearance of the info bar.
Since: 2.18
constructInfoBarMessageType :: IsInfoBar o => MessageType -> IO (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “message-type
” property. This is rarely needed directly, but it is used by new
.
getInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> m MessageType Source #
Get the value of the “message-type
” property.
When overloading is enabled, this is equivalent to
get
infoBar #messageType
setInfoBarMessageType :: (MonadIO m, IsInfoBar o) => o -> MessageType -> m () Source #
Set the value of the “message-type
” property.
When overloading is enabled, this is equivalent to
set
infoBar [ #messageType:=
value ]
revealed
No description available in the introspection data.
constructInfoBarRevealed :: IsInfoBar o => Bool -> IO (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “revealed
” property. This is rarely needed directly, but it is used by new
.
getInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> m Bool Source #
Get the value of the “revealed
” property.
When overloading is enabled, this is equivalent to
get
infoBar #revealed
setInfoBarRevealed :: (MonadIO m, IsInfoBar o) => o -> Bool -> m () Source #
Set the value of the “revealed
” property.
When overloading is enabled, this is equivalent to
set
infoBar [ #revealed:=
value ]
showCloseButton
Whether to include a standard close button.
Since: 3.10
constructInfoBarShowCloseButton :: IsInfoBar o => Bool -> IO (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “show-close-button
” property. This is rarely needed directly, but it is used by new
.
getInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> m Bool Source #
Get the value of the “show-close-button
” property.
When overloading is enabled, this is equivalent to
get
infoBar #showCloseButton
setInfoBarShowCloseButton :: (MonadIO m, IsInfoBar o) => o -> Bool -> m () Source #
Set the value of the “show-close-button
” property.
When overloading is enabled, this is equivalent to
set
infoBar [ #showCloseButton:=
value ]
Signals
close
type C_InfoBarCloseCallback = Ptr () -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
type InfoBarCloseCallback = IO () Source #
The ::close signal is a [keybinding signal][GtkBindingSignal] which gets emitted when the user uses a keybinding to dismiss the info bar.
The default binding for this signal is the Escape key.
Since: 2.18
afterInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> InfoBarCloseCallback -> m SignalHandlerId Source #
Connect a signal handler for the “close
” signal, to be run after the default handler.
When overloading is enabled, this is equivalent to
after
infoBar #close callback
genClosure_InfoBarClose :: InfoBarCloseCallback -> IO Closure Source #
Wrap the callback into a Closure
.
mk_InfoBarCloseCallback :: C_InfoBarCloseCallback -> IO (FunPtr C_InfoBarCloseCallback) Source #
Generate a function pointer callable from C code, from a C_InfoBarCloseCallback
.
noInfoBarCloseCallback :: Maybe InfoBarCloseCallback Source #
A convenience synonym for
.Nothing
:: Maybe
InfoBarCloseCallback
onInfoBarClose :: (IsInfoBar a, MonadIO m) => a -> InfoBarCloseCallback -> m SignalHandlerId Source #
Connect a signal handler for the “close
” signal, to be run before the default handler.
When overloading is enabled, this is equivalent to
on
infoBar #close callback
wrap_InfoBarCloseCallback :: InfoBarCloseCallback -> C_InfoBarCloseCallback Source #
Wrap a InfoBarCloseCallback
into a C_InfoBarCloseCallback
.
response
type C_InfoBarResponseCallback = Ptr () -> Int32 -> Ptr () -> IO () Source #
Type for the callback on the (unwrapped) C side.
type InfoBarResponseCallback Source #
Emitted when an action widget is clicked or the application programmer
calls dialogResponse
. The responseId
depends on which action
widget was clicked.
Since: 2.18
afterInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> InfoBarResponseCallback -> m SignalHandlerId Source #
Connect a signal handler for the “response
” signal, to be run after the default handler.
When overloading is enabled, this is equivalent to
after
infoBar #response callback
genClosure_InfoBarResponse :: InfoBarResponseCallback -> IO Closure Source #
Wrap the callback into a Closure
.
mk_InfoBarResponseCallback :: C_InfoBarResponseCallback -> IO (FunPtr C_InfoBarResponseCallback) Source #
Generate a function pointer callable from C code, from a C_InfoBarResponseCallback
.
noInfoBarResponseCallback :: Maybe InfoBarResponseCallback Source #
A convenience synonym for
.Nothing
:: Maybe
InfoBarResponseCallback
onInfoBarResponse :: (IsInfoBar a, MonadIO m) => a -> InfoBarResponseCallback -> m SignalHandlerId Source #
Connect a signal handler for the “response
” signal, to be run before the default handler.
When overloading is enabled, this is equivalent to
on
infoBar #response callback