| Gtk2Hs | Contents | Index

Graphics.UI.Gtk.Scrolling.ScrolledWindow

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

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
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 Graphics.UI.Gtk.Abstract.Container.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

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
toScrolledWindow :: ScrolledWindowClass o => o -> ScrolledWindow
Constructors
scrolledWindowNew

:: 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

:: 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

:: ScrolledWindowClass self |
=> self |

-> IO (PolicyType, PolicyType)

    (hscrollbarPolicy, vscrollbarPolicy)

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

scrolledWindowAddWithViewport

:: (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 Graphics.UI.Gtk.Abstract.Container.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

:: 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

:: ScrolledWindowClass self |
=> self |
-> Adjustment | `vadjustment` - Vertical scroll adjustment.
-> IO () |
Sets the `Adjustment` for the vertical scrollbar.

scrolledWindowGetHScrollbar

:: 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

:: 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`
Produced by Haddock version 2.4.2