GTK+ Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# GtkProgressBar

## Name

GtkProgressBar -- a widget which indicates progress visually.

## Synopsis

    #include <gtk/gtk.h>

    struct      GtkProgressBar;
    enum        GtkProgressBarStyle;
    enum        GtkProgressBarOrientation;
    GtkWidget*  gtk_progress_bar_new            (void);
    GtkWidget*  gtk_progress_bar_new_with_adjustment
                                                (GtkAdjustment *adjustment);
    void        gtk_progress_bar_set_bar_style  (GtkProgressBar *pbar,
                                                 GtkProgressBarStyle style);
    void        gtk_progress_bar_set_discrete_blocks
                                                (GtkProgressBar *pbar,
                                                 guint blocks);
    void        gtk_progress_bar_set_activity_step
                                                (GtkProgressBar *pbar,
                                                 guint step);
    void        gtk_progress_bar_set_activity_blocks
                                                (GtkProgressBar *pbar,
                                                 guint blocks);
    void        gtk_progress_bar_set_orientation
                                                (GtkProgressBar *pbar,
                                                 GtkProgressBarOrientation orientation);
    void        gtk_progress_bar_update         (GtkProgressBar *pbar,
                                                 gfloat percentage);

## Object Hierarchy

      GtkObject
       +----GtkWidget
             +----GtkProgress
                   +----GtkProgressBar

## Properties

      "adjustment"           GtkAdjustment        : Read / Write / Construct
      "orientation"          GtkProgressBarOrientation : Read / Write
      "bar-style"            GtkProgressBarStyle  : Read / Write
      "activity-step"        guint                : Read / Write
      "activity-blocks"      guint                : Read / Write
      "discrete-blocks"      guint                : Read / Write

## Description

The GtkProgressBar is typically used to display the progress of a long running operation. It provides a visual clue that processing is underway. The GtkProgressBar can be used in two different modes: percentage mode and activity mode.

When an application can determine how much work needs to take place (e.g. read a fixed number of bytes from a file) and can monitor its progress, it can use the GtkProgressBar in percentage mode and the user sees a growing bar indicating the percentage of the work that has been completed. In this mode, the application is required to call either the gtk_progress_set_percentage() or gtk_progress_set_value() functions periodically to update the progress bar.

When an application has no accurate way of knowing the amount of work to do, it can use the GtkProgressBar in activity mode. In this mode the progress bar shows activity by a block moving back and forth within the progress area.

There is quite a bit of flexibility provided to control the appearance of the GtkProgressBar. Functions are provided to control the orientation of the bar, optional text which can be displayed along with the bar, and the style in which the bar grows.

## Details

### struct GtkProgressBar

    struct GtkProgressBar;

The GtkProgressBar struct contains private data only, and should be accessed using the functions below.

### enum GtkProgressBarStyle

    typedef enum
    {
      GTK_PROGRESS_CONTINUOUS,
      GTK_PROGRESS_DISCRETE
    } GtkProgressBarStyle;

An enumeration representing the styles for drawing the progress bar.

GTK_PROGRESS_CONTINUOUS | The progress bar grows in a smooth, continuous manner.
GTK_PROGRESS_DISCRETE | The progress bar grows in discrete, visible blocks.

### enum GtkProgressBarOrientation

    typedef enum
    {
      GTK_PROGRESS_LEFT_TO_RIGHT,
      GTK_PROGRESS_RIGHT_TO_LEFT,
      GTK_PROGRESS_BOTTOM_TO_TOP,
      GTK_PROGRESS_TOP_TO_BOTTOM
    } GtkProgressBarOrientation;

An enumeration representing possible orientations and growth directions for the visible progress bar.

GTK_PROGRESS_LEFT_TO_RIGHT | A horizontal progress bar growing from left to right.
GTK_PROGRESS_RIGHT_TO_LEFT | A horizontal progress bar growing from right to left.
GTK_PROGRESS_BOTTOM_TO_TOP | A vertical progress bar growing from bottom to top.
GTK_PROGRESS_TOP_TO_BOTTOM | A vertical progress bar growing from top to bottom.

### gtk_progress_bar_new ()

    GtkWidget*  gtk_progress_bar_new            (void);

Creates a new GtkProgressBar.

Returns : | a GtkProgressBar.

### gtk_progress_bar_new_with_adjustment ()

    GtkWidget*  gtk_progress_bar_new_with_adjustment
                                                (GtkAdjustment *adjustment);

Creates a new GtkProgressBar with an associated GtkAdjustment.

`adjustment` : | a GtkAdjustment.
Returns : | a GtkProgressBar.

### gtk_progress_bar_set_bar_style ()

    void        gtk_progress_bar_set_bar_style  (GtkProgressBar *pbar,
                                                 GtkProgressBarStyle style);

Sets the style of the GtkProgressBar. The default style is `GTK_PROGRESS_CONTINUOUS`.

`pbar` : | a GtkProgressBar.
`style` : | a GtkProgressBarStyle value indicating the desired style.

### gtk_progress_bar_set_discrete_blocks ()

    void        gtk_progress_bar_set_discrete_blocks
                                                (GtkProgressBar *pbar,
                                                 guint blocks);

Sets the number of blocks that the progress bar is divided into when the style is `GTK_PROGRESS_DISCRETE`.

`pbar` : | a GtkProgressBar.
`blocks` : | number of individual blocks making up the bar.

### gtk_progress_bar_set_activity_step ()

    void        gtk_progress_bar_set_activity_step
                                                (GtkProgressBar *pbar,
                                                 guint step);

Sets the step value used when the progress bar is in activity mode. The step is the amount by which the progress is incremented each iteration.

`pbar` : | a GtkProgressBar.
`step` : | the amount which the progress is incremented in activity mode.

### gtk_progress_bar_set_activity_blocks ()

    void        gtk_progress_bar_set_activity_blocks
                                                (GtkProgressBar *pbar,
                                                 guint blocks);

Sets the number of blocks used when the progress bar is in activity mode. Larger numbers make the visible block smaller.

`pbar` : | a GtkProgressBar.
`blocks` : | number of blocks which can fit within the progress bar area.

### gtk_progress_bar_set_orientation ()

    void        gtk_progress_bar_set_orientation
                                                (GtkProgressBar *pbar,
                                                 GtkProgressBarOrientation orientation);

Sets the orientation of the progress bar. This controls whether the bar is horizontal or vertical and the direction in which it grows.

`pbar` : | a GtkProgressBar.
`orientation` : | a GtkProgressBarOrientation value which specifies the orientation and growth direction of the bar.

### gtk_progress_bar_update ()

    void        gtk_progress_bar_update         (GtkProgressBar *pbar,
                                                 gfloat percentage);

This function is deprecated. Please use gtk_progress_set_value() or gtk_progress_set_percentage() instead.

`pbar` : | a GtkProgressBar.
`percentage` : | the new percent complete value.

## Properties

"`adjustment`" (GtkAdjustment : Read / Write / Construct)

  a GtkAdjustment to be used with the GtkProgressBar.

"`orientation`" (GtkProgressBarOrientation : Read / Write)

  a GtkProgressBarOrientation value which specifies the orientation and growth direction of the bar.

"`bar-style`" (GtkProgressBarStyle : Read / Write)

"`activity-step`" (guint : Read / Write)

"`activity-blocks`" (guint : Read / Write)

"`discrete-blocks`" (guint : Read / Write)

<<< Previous Page | Home | Up | Next Page >>>
GtkProgress | GtkRadioButton