## GtkStatusbar GtkStatusbar — Report messages of minor importance to the user |

## Synopsis

    #include <gtk/gtk.h>

                        GtkStatusbar;
    GtkWidget*          gtk_statusbar_new                   (void);
    guint               gtk_statusbar_get_context_id        (GtkStatusbar *statusbar,
                                                             const gchar *context_description);
    guint               gtk_statusbar_push                  (GtkStatusbar *statusbar,
                                                             guint context_id,
                                                             const gchar *text);
    void                gtk_statusbar_pop                   (GtkStatusbar *statusbar,
                                                             guint context_id);
    void                gtk_statusbar_remove                (GtkStatusbar *statusbar,
                                                             guint context_id,
                                                             guint message_id);
    void                gtk_statusbar_set_has_resize_grip   (GtkStatusbar *statusbar,
                                                             gboolean setting);
    gboolean            gtk_statusbar_get_has_resize_grip   (GtkStatusbar *statusbar);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkObject
                   +----GtkWidget
                         +----GtkContainer
                               +----GtkBox
                                     +----GtkHBox
                                           +----GtkStatusbar

## Implemented Interfaces

GtkStatusbar implements AtkImplementorIface.

## Properties

      has-resize-grip          gboolean              : Read / Write

## Style Properties

      shadow-type              GtkShadowType         : Read

## Signals

      text-popped                                    : Run Last
      text-pushed                                    : Run Last

## Description

A GtkStatusbar is usually placed along the bottom of an application's main GtkWindow. It may provide a regular commentary of the application's status (as is usually the case in a web browser, for example), or may be used to simply output a message when the status changes, (when an upload is complete in an FTP client, for example). It may also have a resize grip (a triangular area in the lower right corner) which can be clicked on to resize the window containing the statusbar.

Status bars in Gtk+ maintain a stack of messages. The message at the top of the each bar's stack is the one that will currently be displayed.

Any messages added to a statusbar's stack must specify a context_id that is used to uniquely identify the source of a message. This context_id can be generated by `gtk_statusbar_get_context_id()`, given a message and the statusbar that it will be added to. Note that messages are stored in a stack, and when choosing which message to display, the stack structure is adhered to, regardless of the context identifier of a message.

Status bars are created using `gtk_statusbar_new()`.

Messages are added to the bar's stack with `gtk_statusbar_push()`.

The message at the top of the stack can be removed using `gtk_statusbar_pop()`. A message can be removed from anywhere in the stack if its message_id was recorded at the time it was added. This is done using `gtk_statusbar_remove()`.

## Details

### GtkStatusbar

    typedef struct _GtkStatusbar GtkStatusbar;

Contains private data that should be modified with the functions described below.

### gtk_statusbar_new ()

    GtkWidget*          gtk_statusbar_new                   (void);

Creates a new GtkStatusbar ready for messages.

Returns : | the new GtkStatusbar.

### gtk_statusbar_get_context_id ()

    guint               gtk_statusbar_get_context_id        (GtkStatusbar *statusbar,
                                                             const gchar *context_description);

Returns a new context identifier, given a description of the actual context.

`statusbar` : | a GtkStatusbar.
`context_description` : | textual description of what context the new message is being used in.
Returns : | an integer id.

### gtk_statusbar_push ()

    guint               gtk_statusbar_push                  (GtkStatusbar *statusbar,
                                                             guint context_id,
                                                             const gchar *text);

Pushes a new message onto a statusbar's stack.

`statusbar` : | a GtkStatusbar.
`context_id` : | the message's context id, as returned by `gtk_statusbar_get_context_id()`.
`text` : | the message to add to the statusbar.
Returns : | the message's new message id for use with `gtk_statusbar_remove()`.

### gtk_statusbar_pop ()

    void                gtk_statusbar_pop                   (GtkStatusbar *statusbar,
                                                             guint context_id);

Removes the message at the top of a GtkStatusBar's stack.

`statusbar` : | a GtkStatusBar.
`context_id` : | a context identifier.

### gtk_statusbar_remove ()

    void                gtk_statusbar_remove                (GtkStatusbar *statusbar,
                                                             guint context_id,
                                                             guint message_id);

Forces the removal of a message from a statusbar's stack. The exact `context_id` and `message_id` must be specified.

`statusbar` : | a GtkStatusBar.
`context_id` : | a context identifier.
`message_id` : | a message identifier, as returned by `gtk_statusbar_push()`.

### gtk_statusbar_set_has_resize_grip ()

    void                gtk_statusbar_set_has_resize_grip   (GtkStatusbar *statusbar,
                                                             gboolean setting);

Sets whether the statusbar has a resize grip. `TRUE` by default.

`statusbar` : | a GtkStatusBar.
`setting` : | `TRUE` to have a resize grip.

### gtk_statusbar_get_has_resize_grip ()

    gboolean            gtk_statusbar_get_has_resize_grip   (GtkStatusbar *statusbar);

Returns whether the statusbar has a resize grip.

`statusbar` : | a GtkStatusBar.
Returns : | `TRUE` if the statusbar has a resize grip.

## Property Details

### The :`has-resize-grip` property

      has-resize-grip          gboolean              : Read / Write

Whether the statusbar has a grip for resizing the toplevel window.

Default value: TRUE

Since 2.4

## Style Property Details

### The :`shadow-type` style property

      shadow-type              GtkShadowType         : Read

Style of bevel around the statusbar text.

Default value: GTK_SHADOW_IN

## Signal Details

### The `::text-popped` signal

    void                user_function                      (GtkStatusbar *statusbar,
                                                            guint         context_id,
                                                            gchar        *text,
                                                            gpointer      user_data)       : Run Last

Is emitted whenever a new message is popped off a statusbar's stack.

`statusbar` : | the object which received the signal.
`context_id` : | the context id of the relevant message/statusbar.
`text` : | the message that was just popped.
`user_data` : | user data set when the signal handler was connected.

### The `::text-pushed` signal

    void                user_function                      (GtkStatusbar *statusbar,
                                                            guint         context_id,
                                                            gchar        *text,
                                                            gpointer      user_data)       : Run Last

Is emitted whenever a new message gets pushed onto a statusbar's stack.

`statusbar` : | the object which received the signal.
`context_id` : | the context id of the relevant message/statusbar.
`text` : | the message that was pushed.
`user_data` : | user data set when the signal handler was connected.

## See Also

GtkDialog | another way of reporting information to the user.