Graphics.UI.Gtk.Scrolling.ScrolledWindow

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

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

Graphics.UI.Gtk.Scrolling.ScrolledWindow

Contents

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

Description

Adds scrollbars to its child widget

Synopsis

- data ScrolledWindow
- class BinClass o => ScrolledWindowClass o
- castToScrolledWindow :: GObjectClass obj => obj -> ScrolledWindow
- gTypeScrolledWindow :: GType
- toScrolledWindow :: ScrolledWindowClass o => o -> ScrolledWindow
- scrolledWindowNew :: Maybe Adjustment -> Maybe Adjustment -> IO ScrolledWindow
- scrolledWindowGetHAdjustment :: ScrolledWindowClass self => self -> IO Adjustment
- scrolledWindowGetVAdjustment :: ScrolledWindowClass self => self -> IO Adjustment
- data PolicyType
  - = PolicyAlways
  - | PolicyAutomatic
  - | PolicyNever
- scrolledWindowSetPolicy :: ScrolledWindowClass self => self -> PolicyType -> PolicyType -> IO ()
- scrolledWindowGetPolicy :: ScrolledWindowClass self => self -> IO (PolicyType, PolicyType)
- scrolledWindowAddWithViewport :: (ScrolledWindowClass self, WidgetClass child) => self -> child -> IO ()
- data CornerType
  - = CornerTopLeft
  - | CornerBottomLeft
  - | CornerTopRight
  - | CornerBottomRight
- scrolledWindowSetPlacement :: ScrolledWindowClass self => self -> CornerType -> IO ()
- scrolledWindowGetPlacement :: ScrolledWindowClass self => self -> IO CornerType
- data ShadowType
  - = ShadowNone
  - | ShadowIn
  - | ShadowOut
  - | ShadowEtchedIn
  - | ShadowEtchedOut
- scrolledWindowSetShadowType :: ScrolledWindowClass self => self -> ShadowType -> IO ()
- scrolledWindowGetShadowType :: ScrolledWindowClass self => self -> IO ShadowType
- scrolledWindowSetHAdjustment :: ScrolledWindowClass self => self -> Adjustment -> IO ()
- scrolledWindowSetVAdjustment :: ScrolledWindowClass self => self -> Adjustment -> IO ()
- scrolledWindowGetHScrollbar :: ScrolledWindowClass self => self -> IO (Maybe HScrollbar)
- scrolledWindowGetVScrollbar :: ScrolledWindowClass self => self -> IO (Maybe VScrollbar)
- scrolledWindowHAdjustment :: ScrolledWindowClass self => Attr self Adjustment
- scrolledWindowVAdjustment :: ScrolledWindowClass self => Attr self Adjustment
- scrolledWindowHscrollbarPolicy :: ScrolledWindowClass self => Attr self PolicyType
- scrolledWindowVscrollbarPolicy :: ScrolledWindowClass self => Attr self PolicyType
- scrolledWindowWindowPlacement :: ScrolledWindowClass self => Attr self CornerType
- scrolledWindowShadowType :: ScrolledWindowClass self => Attr self ShadowType
- scrolledWindowPlacement :: ScrolledWindowClass self => Attr self CornerType

# Detail

`ScrolledWindow` is a `Bin` subclass: it's a container the accepts a single child widget. `ScrolledWindow` adds scrollbars to the child widget and optionally draws a beveled frame around the child widget.

The scrolled window can work in two ways. Some widgets have native scrolling support; these widgets have "slots" for `Adjustment` objects. Widgets with native scroll support include `TreeView`, `TextView`, and `Layout`.

For widgets that lack native scrolling support, the `Viewport` widget acts as an adaptor class, implementing scrollability for child widgets that lack their own scrolling capabilities. Use `Viewport` to scroll child widgets such as `Table`, `Box`, and so on.

If a widget has native scrolling abilities, it can be added to the `ScrolledWindow` with `containerAdd`. If a widget does not, you must first add the widget to a `Viewport`, then add the `Viewport` to the scrolled window. The convenience function `scrolledWindowAddWithViewport` does exactly this, so you can ignore the presence of the viewport.

The position of the scrollbars is controlled by the scroll adjustments. See `Adjustment` for the fields in an adjustment - for `Scrollbar`, used by `ScrolledWindow`, the "value" field represents the position of the scrollbar, which must be between the "lower" field and "upper - page_size." The "page_size" field represents the size of the visible scrollable area. The "step_increment" and "page_increment" fields are used when the user asks to step down (using the small stepper arrows) or page down (using for example the PageDown key).

If a `ScrolledWindow` doesn't behave quite as you would like, or doesn't have exactly the right layout, it's very possible to set up your own scrolling with `Scrollbar` and for example a `Table`.

# Class Hierarchy

     | GObject
     | +----Object
     | +----Widget
     | +----Container
     | +----Bin
     | +----ScrolledWindow

# Types

data ScrolledWindow

Instances

Eq ScrolledWindow |
Ord ScrolledWindow |
GObjectClass ScrolledWindow |
ScrolledWindowClass ScrolledWindow |
BinClass ScrolledWindow |
ContainerClass ScrolledWindow |
WidgetClass ScrolledWindow |
ObjectClass ScrolledWindow |

class BinClass o => ScrolledWindowClass o

Instances

ScrolledWindowClass ScrolledWindow |

castToScrolledWindow :: GObjectClass obj => obj -> ScrolledWindow

gTypeScrolledWindow :: GType

toScrolledWindow :: ScrolledWindowClass o => o -> ScrolledWindow

# Constructors

scrolledWindowNew

Arguments

:: Maybe Adjustment | `hadjustment` - Horizontal adjustment.
-> Maybe Adjustment | `vadjustment` - Vertical adjustment.
-> IO ScrolledWindow |

Creates a new scrolled window. The two arguments are the scrolled window's adjustments; these will be shared with the scrollbars and the child widget to keep the bars in sync with the child. Usually you want to pass `Nothing` for the adjustments, which will cause the scrolled window to create them for you.

# Methods

scrolledWindowGetHAdjustment :: ScrolledWindowClass self => self -> IO Adjustment

Returns the horizontal scrollbar's adjustment, used to connect the horizontal scrollbar to the child widget's horizontal scroll functionality.

scrolledWindowGetVAdjustment :: ScrolledWindowClass self => self -> IO Adjustment

Returns the vertical scrollbar's adjustment, used to connect the vertical scrollbar to the child widget's vertical scroll functionality.

data PolicyType

Constructors

PolicyAlways |
PolicyAutomatic |
PolicyNever |

Instances

Enum PolicyType |
Eq PolicyType |
Show PolicyType |

scrolledWindowSetPolicy

Arguments

:: ScrolledWindowClass self |
=> self |
-> PolicyType | `hscrollbarPolicy` - Policy for horizontal bar.
-> PolicyType | `vscrollbarPolicy` - Policy for vertical bar.
-> IO () |

Sets the scrollbar policy for the horizontal and vertical scrollbars. The policy determines when the scrollbar should appear; it is a value from the `PolicyType` enumeration. If `PolicyAlways`, the scrollbar is always present; if `PolicyNever`, the scrollbar is never present; if `PolicyAutomatic`, the scrollbar is present only if needed (that is, if the slider part of the bar would be smaller than the trough - the display is larger than the page size).

scrolledWindowGetPolicy

Arguments

:: ScrolledWindowClass self |
=> self |
-> IO (PolicyType, PolicyType) |
    (hscrollbarPolicy, vscrollbarPolicy)

Retrieves the current policy values for the horizontal and vertical scrollbars. See `scrolledWindowSetPolicy`.

scrolledWindowAddWithViewport

Arguments

:: (ScrolledWindowClass self, WidgetClass child) |
=> self |
-> child | `child` - Widget you want to scroll.
-> IO () |

Used to add children without native scrolling capabilities. This is simply a convenience function; it is equivalent to adding the unscrollable child to a viewport, then adding the viewport to the scrolled window. If a child has native scrolling, use `containerAdd` instead of this function.

The viewport scrolls the child by moving its `DrawWindow`, and takes the size of the child to be the size of its toplevel `DrawWindow`. This will be very wrong for most widgets that support native scrolling; for example, if you add a widget such as `TreeView` with a viewport, the whole widget will scroll, including the column headings. Thus, widgets with native scrolling support should not be used with the `Viewport` proxy.

data CornerType

Specifies in which corner a child widget should be placed

Constructors

CornerTopLeft |
CornerBottomLeft |
CornerTopRight |
CornerBottomRight |

Instances

Enum CornerType |
Eq CornerType |
Show CornerType |

scrolledWindowSetPlacement

Arguments

:: ScrolledWindowClass self |
=> self |
-> CornerType | `windowPlacement` - Position of the child window.
-> IO () |

Determines the location of the child widget with respect to the scrollbars. The default is `CornerTopLeft`, meaning the child is in the top left, with the scrollbars underneath and to the right. Other values in `CornerType` are `CornerTopRight`, `CornerBottomLeft`, and `CornerBottomRight`.

scrolledWindowGetPlacement :: ScrolledWindowClass self => self -> IO CornerType

Gets the placement of the scrollbars for the scrolled window. See `scrolledWindowSetPlacement`.

data ShadowType

Shadow types

Constructors

ShadowNone |
ShadowIn |
ShadowOut |
ShadowEtchedIn |
ShadowEtchedOut |

Instances

Enum ShadowType |
Eq ShadowType |
Show ShadowType |

scrolledWindowSetShadowType :: ScrolledWindowClass self => self -> ShadowType -> IO ()

Changes the type of shadow drawn around the contents of `scrolledWindow`.

scrolledWindowGetShadowType :: ScrolledWindowClass self => self -> IO ShadowType

Gets the shadow type of the scrolled window. See `scrolledWindowSetShadowType`.

scrolledWindowSetHAdjustment :: ScrolledWindowClass self => self -> Adjustment -> IO ()

Sets the `Adjustment` for the horizontal scrollbar.

scrolledWindowSetVAdjustment

Arguments

:: ScrolledWindowClass self |
=> self |
-> Adjustment | `vadjustment` - Vertical scroll adjustment.
-> IO () |

Sets the `Adjustment` for the vertical scrollbar.

scrolledWindowGetHScrollbar

Arguments

:: ScrolledWindowClass self |
=> self |
-> IO (Maybe HScrollbar) | returns the horizontal scrollbar of the scrolled window, or `Nothing` if it does not have one.

Returns the horizontal scrollbar of `scrolledWindow`.

- Available since Gtk+ version 2.8

scrolledWindowGetVScrollbar

Arguments

:: ScrolledWindowClass self |
=> self |
-> IO (Maybe VScrollbar) | returns the vertical scrollbar of the scrolled window, or `Nothing` if it does not have one.

Returns the vertical scrollbar of `scrolledWindow`.

- Available since Gtk+ version 2.8

# Attributes

scrolledWindowHAdjustment :: ScrolledWindowClass self => Attr self Adjustment

The `Adjustment` for the horizontal position.

scrolledWindowVAdjustment :: ScrolledWindowClass self => Attr self Adjustment

The `Adjustment` for the vertical position.

scrolledWindowHscrollbarPolicy :: ScrolledWindowClass self => Attr self PolicyType

When the horizontal scrollbar is displayed.

Default value: `PolicyAlways`

scrolledWindowVscrollbarPolicy :: ScrolledWindowClass self => Attr self PolicyType

When the vertical scrollbar is displayed.

Default value: `PolicyAlways`

scrolledWindowWindowPlacement :: ScrolledWindowClass self => Attr self CornerType

Where the contents are located with respect to the scrollbars.

Default value: `CornerTopLeft`

scrolledWindowShadowType :: ScrolledWindowClass self => Attr self ShadowType

Style of bevel around the contents.

Default value: `ShadowNone`

scrolledWindowPlacement :: ScrolledWindowClass self => Attr self CornerType

'placement' property. See `scrolledWindowGetPlacement` and `scrolledWindowSetPlacement`