##
2.9.4 ScrolledWindow Object

ScrolledWindow objects are ControlsWindow objects with the following extra methods:

`scrollbars`( | [wantx[, wanty]])

  Create (or destroy) horizontal and vertical scrollbars. The arguments specify which you want (default: both). The scrollbars always have minimum `0` and maximum `32767`.

`getscrollbarvalues`( | )

  You must supply this method. It should return a tuple `(x, y)` giving the current position of the scrollbars (between `0` and `32767`). You can return `None` for either to indicate the whole document is visible in that direction.

`updatescrollbars`( | )

  Call this method when the document has changed. It will call `getscrollbarvalues()` and update the scrollbars.

`scrollbar_callback`( | which, what, value)

  Supplied by you and called after user interaction. which will be `'x'` or `'y'`, what will be `'-'`, `'-'`, `'set'`, `'++'` or `'+'`. For `'set'`, value will contain the new scrollbar position.

`scalebarvalues`( | absmin, absmax, curmin, curmax)

  Auxiliary method to help you calculate values to return from `getscrollbarvalues()`. You pass document minimum and maximum value and topmost (leftmost) and bottommost (rightmost) visible values and it returns the correct number or `None`.

`do_activate`( | onoff, event)

  Takes care of dimming/highlighting scrollbars when a window becomes frontmost. If you override this method, call this one at the end of your method.

`do_postresize`( | width, height, window)

  Moves scrollbars to the correct position. Call this method initially if you override it.

`do_controlhit`( | window, control, pcode, event)

  Handles scrollbar interaction. If you override it call this method first, a nonzero return value indicates the hit was in the scrollbars and has been handled.