gtk-0.12.0: Binding to the Gtk+ graphical user interface library.

Portability | portable (depends on GHC)
Stability | provisional
Maintainer | gtk2hs-users@lists.sourceforge.net

Graphics.UI.Gtk.Display.ProgressBar

Contents

- Detail
- Class Hierarchy
- Types
- Constructors
- Methods
- Attributes

Description

A widget which indicates progress visually

Synopsis

- data ProgressBar
- class WidgetClass o => ProgressBarClass o
- castToProgressBar :: GObjectClass obj => obj -> ProgressBar
- gTypeProgressBar :: GType
- toProgressBar :: ProgressBarClass o => o -> ProgressBar
- progressBarNew :: IO ProgressBar
- progressBarPulse :: ProgressBarClass self => self -> IO ()
- progressBarSetText :: ProgressBarClass self => self -> String -> IO ()
- progressBarSetFraction :: ProgressBarClass self => self -> Double -> IO ()
- progressBarSetPulseStep :: ProgressBarClass self => self -> Double -> IO ()
- progressBarGetFraction :: ProgressBarClass self => self -> IO Double
- progressBarGetPulseStep :: ProgressBarClass self => self -> IO Double
- progressBarGetText :: ProgressBarClass self => self -> IO (Maybe String)
- data ProgressBarOrientation
  - = ProgressLeftToRight
  - | ProgressRightToLeft
  - | ProgressBottomToTop
  - | ProgressTopToBottom
- progressBarSetOrientation :: ProgressBarClass self => self -> ProgressBarOrientation -> IO ()
- progressBarGetOrientation :: ProgressBarClass self => self -> IO ProgressBarOrientation
- progressBarSetEllipsize :: ProgressBarClass self => self -> EllipsizeMode -> IO ()
- progressBarGetEllipsize :: ProgressBarClass self => self -> IO EllipsizeMode
- progressBarOrientation :: ProgressBarClass self => Attr self ProgressBarOrientation
- progressBarDiscreteBlocks :: ProgressBarClass self => Attr self Int
- progressBarFraction :: ProgressBarClass self => Attr self Double
- progressBarPulseStep :: ProgressBarClass self => Attr self Double
- progressBarText :: ProgressBarClass self => ReadWriteAttr self (Maybe String) String
- progressBarEllipsize :: ProgressBarClass self => Attr self EllipsizeMode

# Detail

The `ProgressBar` is typically used to display the progress of a long running operation. It provides a visual clue that processing is underway. The `ProgressBar` 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 `ProgressBar` 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 `progressBarSetFraction` 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 `ProgressBar` in activity mode, which shows activity by a block moving back and forth within the progress area. In this mode, the application is required to call `progressBarPulse` perodically to update the progress bar.

There is quite a bit of flexibility provided to control the appearance of the `ProgressBar`. Functions are provided to control the orientation of the bar, optional text can be displayed along with the bar, and the step size used in activity mode can be set.

# Class Hierarchy

     | GObject
     | +----Object
     | +----Widget
     | +----ProgressBar

# Types

data ProgressBar

Instances

Eq ProgressBar |
Ord ProgressBar |
GObjectClass ProgressBar |
ProgressBarClass ProgressBar |
WidgetClass ProgressBar |
ObjectClass ProgressBar |

class WidgetClass o => ProgressBarClass o

Instances

ProgressBarClass ProgressBar |

castToProgressBar :: GObjectClass obj => obj -> ProgressBar

gTypeProgressBar :: GType

toProgressBar :: ProgressBarClass o => o -> ProgressBar

# Constructors

progressBarNew :: IO ProgressBar

Creates a new `ProgressBar`.

# Methods

progressBarPulse :: ProgressBarClass self => self -> IO ()

Indicates that some progress is made, but you don't know how much. Causes the progress bar to enter "activity mode", where a block bounces back and forth. Each call to `progressBarPulse` causes the block to move by a little bit (the amount of movement per pulse is determined by `progressBarSetPulseStep`).

progressBarSetText :: ProgressBarClass self => self -> String -> IO ()

Causes the given `text` to appear superimposed on the progress bar.

progressBarSetFraction

Arguments

:: ProgressBarClass self |
=> self |
-> Double | `fraction` - fraction of the task that's been completed
-> IO () |

Causes the progress bar to "fill in" the given fraction of the bar. The fraction should be between 0.0 and 1.0, inclusive.

progressBarSetPulseStep

Arguments

:: ProgressBarClass self |
=> self |
-> Double | `fraction` - fraction between 0.0 and 1.0
-> IO () |

Sets the fraction of total progress bar length to move the bouncing block for each call to `progressBarPulse`.

progressBarGetFraction

Arguments

:: ProgressBarClass self |
=> self |
-> IO Double | returns a fraction from 0.0 to 1.0

Returns the current fraction of the task that's been completed.

progressBarGetPulseStep

Arguments

:: ProgressBarClass self |
=> self |
-> IO Double | returns a fraction from 0.0 to 1.0

Retrieves the pulse step set with `progressBarSetPulseStep`

progressBarGetText

Arguments

:: ProgressBarClass self |
=> self |
-> IO (Maybe String) | returns text, or `Nothing`

Retrieves the text displayed superimposed on the progress bar, if any, otherwise `Nothing`.

data ProgressBarOrientation

Is the ProgressBar horizontally or vertically directed?

Constructors

ProgressLeftToRight |
ProgressRightToLeft |
ProgressBottomToTop |
ProgressTopToBottom |

Instances

Enum ProgressBarOrientation |
Eq ProgressBarOrientation |
Show ProgressBarOrientation |

progressBarSetOrientation :: ProgressBarClass self => self -> ProgressBarOrientation -> IO ()

Causes the progress bar to switch to a different orientation (left-to-right, right-to-left, top-to-bottom, or bottom-to-top).

progressBarGetOrientation :: ProgressBarClass self => self -> IO ProgressBarOrientation

Retrieves the current progress bar orientation.

progressBarSetEllipsize :: ProgressBarClass self => self -> EllipsizeMode -> IO ()

Sets the mode used to ellipsize (add an ellipsis: "...") the text if there is not enough space to render the entire string.

- Available since Gtk+ version 2.6

progressBarGetEllipsize :: ProgressBarClass self => self -> IO EllipsizeMode

Returns the ellipsizing position of the progressbar. See `progressBarSetEllipsize`.

- Available since Gtk+ version 2.6

# Attributes

progressBarOrientation :: ProgressBarClass self => Attr self ProgressBarOrientation

Orientation and growth direction of the progress bar.

Default value: `ProgressLeftToRight`

progressBarDiscreteBlocks :: ProgressBarClass self => Attr self Int

The number of discrete blocks in a progress bar (when shown in the discrete style).

Allowed values: >= 2

Default value: 10

progressBarFraction :: ProgressBarClass self => Attr self Double

The fraction of total work that has been completed.

Allowed values: [0,1]

Default value: 0

progressBarPulseStep :: ProgressBarClass self => Attr self Double

The fraction of total progress to move the bouncing block when pulsed.

Allowed values: [0,1]

Default value: 0.1

progressBarText :: ProgressBarClass self => ReadWriteAttr self (Maybe String) String

Text to be displayed in the progress bar.

Default value: "%P %%"

progressBarEllipsize :: ProgressBarClass self => Attr self EllipsizeMode

The preferred place to ellipsize the string, if the progressbar does not have enough room to display the entire string, specified as a `EllipsizeMode`.

Note that setting this property to a value other than `EllipsizeNone` has the side-effect that the progressbar requests only enough space to display the ellipsis "...". Another means to set a progressbar's width is `Graphics.UI.Gtk.Abstract.Widget.widgetSetSizeRequest`.

Default value: `EllipsizeNone`