##
4 スクロールウィンドウオブジェクト

スクロールウィンドウオブジェクトは、次のメソッドを追加したコントロール ウィンドウオブジェクトです。

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

  水平スクロールバーと垂直スクロールバーを作成します(あるいは破棄します)。 引数はどちらが欲しいか指定します(デフォルトは両方)。スクロールバーは常 に最小値 `0` 、最大値 `32767` です。

`getscrollbarvalues`( | )

  このメソッドは必ず作っておかなくてはいけません。現在のスクロールバーの 位置を与えるタプル `(x, y)` を(`0` の `32767` 間で)返してください。バーの方向について全文書が可視状態で あること知らせるため `None` を返す事もできます。

`updatescrollbars`( | )

  文書に変更があった場合はこのメソッドを呼びます。このメソッドは `getscrollbarvalues()` を呼んでスクロールバーを更新します。

`scrollbar_callback`( | which, what, value)

  あらかじめ与えておくメソッドで、ユーザーとの対話により呼ばれます。 which は `'x'` か `'y'` 、whatは `'-'`, `'--'`, `'set'`,`'++'`, `'+'`のどれかです。 `'set'` の場合は、valueに新しいスクロールバー位置を入れてお きます。

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

  `getscrollbarvalues()` の結果から値を計算するのを助ける補助的な メソッドです。文書の最小値と最大値、可視部分に関する最先頭値(最左値)と 最底値(最右値)を渡すと、正しい数か `None` を返します。

`do_activate`( | onoff, event)

  ウィンドウが最前面になった時、スクロールバーのディム(dimming)/ハイライ トの面倒をみます。このメソッドをオーバーライドするなら、オーバーライド したメソッドの最後でオリジナルのメソッドを呼んでください。

`do_postresize`( | width, height, window)

  スクロールバーを正しい位置に移動させます。オーバーライドする時は、オー バーライドしたメソッドの一番最初でオリジナルのメソッドを呼んでください。

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

  スクロールバーのインタラクションを処理します。これをオーバーライドする 時は、オリジナルのメソッドを最初に呼び出してください。非ゼロの返り値は スクロールバー内がヒットされたことを意味し、実際に処理が進むことになり ます。