## 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
       +----GtkObject
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----GtkHBox
                                     +----GtkStatusbar

## Implemented Interfaces

GtkStatusbar implements AtkImplementorIface.

## Properties

      "has-resize-grip"      gboolean              : Read / Write

## Style Properties

      "shadow-type"          GtkShadowType         : Read

## Signal Prototypes

    "text-popped"
                void        user_function      (GtkStatusbar *statusbar,
                                                guint context_id,
                                                gchar *text,
                                                gpointer user_data);
    "text-pushed"
                void        user_function      (GtkStatusbar *statusbar,
                                                guint context_id,
                                                gchar *text,
                                                gpointer user_data);

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

## Properties

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

      "has-resize-grip"      gboolean              : Read / Write

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

Since 2.4

## Style Properties

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

      "shadow-type"          GtkShadowType         : Read

Style of bevel around the statusbar text.

## Signals

### The "text-popped" signal

    void        user_function                  (GtkStatusbar *statusbar,
                                                guint context_id,
                                                gchar *text,
                                                gpointer user_data);

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

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.