+ gtk_progress_bar_set_activity_mode (pbar, TRUE);
+ gtk_progress_bar_real_update (pbar);
+}
+
+/**
+ * gtk_progress_bar_set_text:
+ * @pbar: a #GtkProgressBar
+ * @text: (allow-none): a UTF-8 string, or %NULL
+ *
+ * Causes the given @text to appear superimposed on the progress bar.
+ **/
+void
+gtk_progress_bar_set_text (GtkProgressBar *pbar,
+ const gchar *text)
+{
+ GtkProgressBarPriv *priv;
+
+ g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
+
+ priv = pbar->priv;
+
+ g_free (priv->text);
+ priv->text = text && *text ? g_strdup (text) : NULL;
+
+ if (gtk_widget_is_drawable (GTK_WIDGET (pbar)))
+ gtk_widget_queue_resize (GTK_WIDGET (pbar));
+
+ g_object_notify (G_OBJECT (pbar), "text");
+}
+
+/**
+ * gtk_progress_bar_set_show_text:
+ * @pbar: a #GtkProgressBar
+ * @show_text: whether to show superimposed text
+ *
+ * Sets whether the progressbar will show text superimposed
+ * over the bar. The shown text is either the value of
+ * the #GtkProgressBar::text property or, if that is %NULL,
+ * the #GtkProgressBar::fraction value, as a percentage.
+ *
+ * Since: 3.0
+ */
+void
+gtk_progress_bar_set_show_text (GtkProgressBar *pbar,
+ gboolean show_text)
+{
+ GtkProgressBarPriv *priv;
+
+ g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
+
+ priv = pbar->priv;
+
+ show_text = !!show_text;
+
+ if (priv->show_text != show_text)
+ {
+ priv->show_text = show_text;
+
+ if (gtk_widget_is_drawable (GTK_WIDGET (pbar)))
+ gtk_widget_queue_resize (GTK_WIDGET (pbar));
+
+ g_object_notify (G_OBJECT (pbar), "show-text");
+ }
+}
+
+/**
+ * gtk_progress_bar_get_show_text:
+ * @pbar: a #GtkProgressBar
+ *
+ * Gets the value of the #GtkProgressBar::show-text property.
+ * See gtk_progress_bar_set_show_text().
+ *
+ * Returns: %TRUE if text is shown in the progress bar
+ *
+ * Since: 3.0
+ */
+gboolean
+gtk_progress_bar_get_show_text (GtkProgressBar *pbar)
+{
+ g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), FALSE);
+
+ return pbar->priv->show_text;
+}
+
+/**
+ * gtk_progress_bar_set_pulse_step:
+ * @pbar: a #GtkProgressBar
+ * @fraction: fraction between 0.0 and 1.0
+ *
+ * Sets the fraction of total progress bar length to move the
+ * bouncing block for each call to gtk_progress_bar_pulse().
+ **/
+void
+gtk_progress_bar_set_pulse_step (GtkProgressBar *pbar,
+ gdouble fraction)
+{
+ GtkProgressBarPriv *priv;
+
+ g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
+
+ priv = pbar->priv;
+
+ priv->pulse_fraction = fraction;
+
+ g_object_notify (G_OBJECT (pbar), "pulse-step");
+}
+
+/**
+ * gtk_progress_bar_set_orientation:
+ * @pbar: a #GtkProgressBar
+ * @orientation: orientation of the progress bar
+ *
+ * Causes the progress bar to switch to a different orientation
+ * (left-to-right, right-to-left, top-to-bottom, or bottom-to-top).
+ **/
+void
+gtk_progress_bar_set_orientation (GtkProgressBar *pbar,
+ GtkProgressBarOrientation orientation)
+{
+ GtkProgressBarPriv *priv;
+
+ g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
+
+ priv = pbar->priv;
+
+ if (priv->orientation != orientation)
+ {
+ priv->orientation = orientation;
+
+ if (gtk_widget_is_drawable (GTK_WIDGET (pbar)))
+ gtk_widget_queue_resize (GTK_WIDGET (pbar));
+
+ g_object_notify (G_OBJECT (pbar), "orientation");
+ }
+}
+
+/**
+ * gtk_progress_bar_get_text:
+ * @pbar: a #GtkProgressBar
+ *
+ * Retrieves the text displayed superimposed on the progress bar,
+ * if any, otherwise %NULL. The return value is a reference
+ * to the text, not a copy of it, so will become invalid
+ * if you change the text in the progress bar.
+ *
+ * Return value: text, or %NULL; this string is owned by the widget
+ * and should not be modified or freed.
+ **/
+G_CONST_RETURN gchar*
+gtk_progress_bar_get_text (GtkProgressBar *pbar)
+{
+ g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), NULL);
+
+ return pbar->priv->text;
+}
+
+/**
+ * gtk_progress_bar_get_fraction:
+ * @pbar: a #GtkProgressBar
+ *
+ * Returns the current fraction of the task that's been completed.
+ *
+ * Return value: a fraction from 0.0 to 1.0
+ **/
+gdouble
+gtk_progress_bar_get_fraction (GtkProgressBar *pbar)
+{
+ g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), 0);
+
+ return pbar->priv->fraction;
+}
+
+/**
+ * gtk_progress_bar_get_pulse_step:
+ * @pbar: a #GtkProgressBar
+ *
+ * Retrieves the pulse step set with gtk_progress_bar_set_pulse_step()
+ *
+ * Return value: a fraction from 0.0 to 1.0
+ **/
+gdouble
+gtk_progress_bar_get_pulse_step (GtkProgressBar *pbar)
+{
+ g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), 0);
+
+ return pbar->priv->pulse_fraction;
+}
+
+/**
+ * gtk_progress_bar_get_orientation:
+ * @pbar: a #GtkProgressBar
+ *
+ * Retrieves the current progress bar orientation.
+ *
+ * Return value: orientation of the progress bar
+ **/
+GtkProgressBarOrientation
+gtk_progress_bar_get_orientation (GtkProgressBar *pbar)
+{
+ g_return_val_if_fail (GTK_IS_PROGRESS_BAR (pbar), 0);
+
+ return pbar->priv->orientation;
+}
+
+/**
+ * gtk_progress_bar_set_ellipsize:
+ * @pbar: a #GtkProgressBar
+ * @mode: a #PangoEllipsizeMode
+ *
+ * Sets the mode used to ellipsize (add an ellipsis: "...") the text
+ * if there is not enough space to render the entire string.
+ *
+ * Since: 2.6
+ **/
+void
+gtk_progress_bar_set_ellipsize (GtkProgressBar *pbar,
+ PangoEllipsizeMode mode)
+{
+ GtkProgressBarPriv *priv;
+
+ g_return_if_fail (GTK_IS_PROGRESS_BAR (pbar));
+ g_return_if_fail (mode >= PANGO_ELLIPSIZE_NONE &&
+ mode <= PANGO_ELLIPSIZE_END);
+
+ priv = pbar->priv;
+
+ if ((PangoEllipsizeMode)priv->ellipsize != mode)