# Class pyglet.text.layout.ScrollableTextLayout

    TextLayout --+
                 |
                ScrollableTextLayout

Known Subclasses:
  IncrementalTextLayout

Display text in a scrollable viewport.

This class does not display a scrollbar or handle scroll events; it merely clips the text that would be drawn in TextLayout to the bounds of the layout given by x, y, width and height; and offsets the text by a scroll offset.

Use view_x and view_y to scroll the text within the viewport.

## Methods

| __init__(self, document, width, height, multiline=False, dpi=None, batch=None, group=None) Create a text layout.
| begin_update(self) Indicate that a number of changes to the layout or document are about to occur. (Inherited from pyglet.text.layout.TextLayout)
| delete(self) Remove this layout from its batch. (Inherited from pyglet.text.layout.TextLayout)
| draw(self) Draw this text layout. (Inherited from pyglet.text.layout.TextLayout)
| end_update(self) Perform pending layout changes since begin_update. (Inherited from pyglet.text.layout.TextLayout)
| on_delete_text(self, start, end) Event handler for `AbstractDocument.on_delete_text`. (Inherited from pyglet.text.layout.TextLayout)
| on_insert_text(self, start, text) Event handler for `AbstractDocument.on_insert_text`. (Inherited from pyglet.text.layout.TextLayout)
| on_style_text(self, start, end, attributes) Event handler for `AbstractDocument.on_style_text`. (Inherited from pyglet.text.layout.TextLayout)

## Properties

int | x X coordinate of the layout.
int | y Y coordinate of the layout.
int | width Width of the layout.
int | height Height of the layout.
str | anchor_x Horizontal anchor alignment.
str | anchor_y Vertical anchor alignment.
int | view_x Horizontal scroll offset.
int | view_y Vertical scroll offset.
str | content_valign Vertical alignment of content within larger layout box. (Inherited from pyglet.text.layout.TextLayout)
| document (Inherited from pyglet.text.layout.TextLayout)
float | dpi Get DPI used by this layout. (Inherited from pyglet.text.layout.TextLayout)
bool | multiline Set if multiline layout is enabled. (Inherited from pyglet.text.layout.TextLayout)

## Instance Variables

Group | background_group = `OrderedGroup(0)` Rendering group for background color. (Inherited from pyglet.text.layout.TextLayout)
int | content_height Calculuated height of the text in the layout. (Inherited from pyglet.text.layout.TextLayout)
int | content_width Calculuated width of the text in the layout. (Inherited from pyglet.text.layout.TextLayout)
Group | foreground_decoration_group = `TextLayoutForegroundDecorationGr`...`` Rendering group for glyph underlines. (Inherited from pyglet.text.layout.TextLayout)
Group | foreground_group = `TextLayoutForegroundGroup(1)` Rendering group for glyphs. (Inherited from pyglet.text.layout.TextLayout)
Group | top_group = `<pyglet.text.layout.TextLayoutGroup object at 0x51`...`` Top-level rendering group. (Inherited from pyglet.text.layout.TextLayout)

## Method Details

### __init__

(Constructor) __init__(self, document, width, height, multiline=False, dpi=None, batch=None, group=None)
Create a text layout.

Overrides:
  TextLayout.__init__

## Property Details

### x

X coordinate of the layout.

See also anchor_x.

Type:
  int

### y

Y coordinate of the layout.

See also anchor_y.

Type:
  int

### width

Width of the layout.

This property has no effect if multiline is False.

Type:
  int

### height

Height of the layout.

Type:
  int

### anchor_x

Horizontal anchor alignment.

This property determines the meaning of the x coordinate. It is one of the enumerants:

`"left"` (default)
  The X coordinate gives the position of the left edge of the layout.
`"center"`
  The X coordinate gives the position of the center of the layout.
`"right"`
  The X coordinate gives the position of the right edge of the layout.

For the purposes of calculating the position resulting from this alignment, the width of the layout is taken to be width if multiline is True, otherwise content_width.

Type:
  str

### anchor_y

Vertical anchor alignment.

This property determines the meaning of the y coordinate. It is one of the enumerants:

`"top"`
  The Y coordinate gives the position of the top edge of the layout.
`"center"`
  The Y coordinate gives the position of the center of the layout.
`"baseline"`
  The Y coordinate gives the position of the baseline of the first line of text in the layout.
`"bottom"` (default)
  The Y coordinate gives the position of the bottom edge of the layout.

For the purposes of calculating the position resulting from this alignment, the height of the layout is taken to be the smaller of height and content_height.

See also content_valign.

Type:
  str

### view_x

Horizontal scroll offset.

The initial value is 0, and the left edge of the text will touch the left side of the layout bounds. A positive value causes the text to "scroll" to the right. Values are automatically clipped into the range `[0, content_width - width]`

Type:
  int

### view_y

Vertical scroll offset.

The initial value is 0, and the top of the text will touch the top of the layout bounds (unless the content height is less than the layout height, in which case content_valign is used).

A negative value causes the text to "scroll" upwards. Values outside of the range `[height - content_height, 0]` are automatically clipped in range.

Type:
  int