(クラス)
スクロールバーの機能を提供するコントロールです。
説明
Scrollbar の既定の外観は次のようになります。
基本的に、Scrollbar には、チャネルの両端に三角形付きの 2 つのボタンがあります。チャネルには、浮き上がった四角形として描画されたサムがあります。Scrollbar は、最小値と最大値の間の範囲で値を持ちます。マウスを使用してサムをドラッグしたり、チャネルまたは Scrollbar の両端のボタンをクリックして、値を変更できます。
Scrollbar の値に
infinity を指定した場合、
Scrollbar.get-scroll-value は
Scrollbar の最大値を返します。
Scrollbar は、方向に高い伸長性を備えています。この方向の
伸長順位は
compliant-stretch-order です。したがって、通常
Scrollbar が別のオブジェクトの横に配置されると、
Scrollbar の長さは他のオブジェクトの長さ設定に一致するように調整されます。
- サムをドラッグすると値が変更され、サムが移動するたびに Adjustment イベントが発生します。
- チャネルをクリックすると、つまりブロック スクロールにより、Scrollbar.blocksize オプションで制御される増加分だけ値が変更されます。ポインタをチャネル上に置いてマウス ボタンを押したままにすると、自動繰り返しのブロック スクロール操作が実行されます。
- Scrollbar の端にあるボタンのいずれかをクリックすると、Scrollbar.unitsize オプションで制御される増加分だけ値が変更されます。ポインタをこれらのいずれかのボタンの上に置いてマウス ボタンを押したままにすると、自動繰り返しのユニット スクロール操作が実行されます。
例
次の例は、いくつかのオプションが設定された
Scrollbar を表しています。
Adjustment イベントの
ダイナミック イベント ハンドラは
Frame val を更新し、
Scrollbar の現在値を常に
Scrollbar の右側に表示します。
例 |
|
{value
let val:#Frame
let sb:Scrollbar =
{Scrollbar
width=3in, direction=Orientation.horizontal,
min=-100, max=100, thumb-length=10,
blocksize=25, unitsize=2.5,
{on e:Adjustment at s:Scrollbar do
{val.add {format "%7.1f", {s.get-scroll-value}},
replace?=true}}}
set val = {Frame {format "%7.1f", {sb.get-scroll-value}}}
{HBox spacing=6pt,
sb,
{text Scroll value is{value val}}}} | |
ビジュアル テスト
このクラスは、CurlSlider ビジュアル テスト タイプを実装します。
すべての
Visual によってサポートされる既定のビジュアル テスト アクションの他に、このクラスのオブジェクトは次のアクションをサポートします。
アクション | 引数 | 説明 |
Drag | value:String | コントロールの値を設定します。 |
DragLine | lines:String | スライダの値を lines 行分ドラッグします。 |
DragPage | pages:String | スライダの値を pages ページ分ドラッグします。 |
すべての
Visual によってサポートされる既定のビジュアル テスト プロパティの他に、このクラスのオブジェクトは次のビジュアル テスト プロパティをサポートします。
プロパティ | 説明 |
value:String | コントロールの現在値です。 |
max:String | コントロールの最大値です。 |
min:String | コントロールの最小値です。 |
orientation:String ("VSCROLL" または "HSCROLL" である必要があります) | コントロールの方向です。 |
注意事項
このオブジェクトは、"Scrollbar"、"Scrollbar/decrease-button"、"Scrollbar/increase-button"、"Scrollbar/channel"、"Scrollbar/thumb"、"Scrollbar/button-frame"のスタイル ルールを記述することによってスタイル化することが出来ます。詳細は
スキンが適用された他のコントロール をご覧下さい。
コンストラクタ public | {Scrollbar.default} |
アクセサ public Scrollbar.adjusted-thumb-length:
double
ローカル オプション public Scrollbar.blocksize:
double =10
ローカル オプション public Scrollbar.channel-skin:#
SkinSpec
ローカル オプション public Scrollbar.direction:
Orientation =Orientation.vertical
アクセサ public Scrollbar.effective-thickness:
Distance
アクセサ public Scrollbar.is-adjusting?:
bool セッター public Scrollbar.is-adjusting?:
bool
ローカル オプション public Scrollbar.max:
double =100
ローカル オプション public Scrollbar.min:
double =0
ローカル オプション public Scrollbar.multi-unit-scroll?:
bool =false
ローカル オプション public Scrollbar.quantized?:
bool =false
ローカル オプション public Scrollbar.shrink-when-disabled?:
bool =false
アクセサ public Scrollbar.style-element:
String
test-type-name: | このオブジェクトをテストのメソッドとプロパティにマッピングするために、ビジュアル テスト インフラストラクチャが使用するタイプ名。 |
アクセサ public Scrollbar.test-type-name:#
String
ローカル オプション public Scrollbar.thickness:
any =12pt
ローカル オプション public Scrollbar.thumb-length:
double =0.0
ローカル オプション public Scrollbar.thumb-skin:#
SkinSpec
ローカル オプション public Scrollbar.unitsize:
double =1
プロパティ 継承 ControlFrame:
color, control-color, control-content-background, enabled?, font-family, font-size, font-style, font-weight, text-breakable?, text-line-through?, text-preserve-whitespace?, text-underline?, visible? プロパティ 継承 BaseFrame:
child, clonable-class?, completely-clonable-children?, graphical-children, halign-spec, hstretch?-spec, ordered-children, reverse-ordered-children, valign-spec, vstretch?-spec, width-first? プロパティ 継承 Visual:
_style-element, cursor, data-source, dragee, graphical-parent, has-key-focus?, input-method-enabled?, input-method-keyboard-mode, name, options, style-class, style-manager, style-options, test-child?, test-description, test-name, test-parent?, test-visible?, tooltip, user-data プロパティ 継承 Graphic:
avoid-page-break?, background, border-color, border-spec, border-style, border-width, cell-border-spec, cell-border-width, cell-margin, discrete-select-in-range?, graphic-selectable, height, horigin, is-paginating?, layout, margin, opaque-to-events?, option-parent, outside-margin, pagination-state, parent, possibly-displayed?, selection-context, shadow-color, shadow-spec, visual-parent, vorigin, width
protected | {Scrollbar.create-default-ui-object}:ControlUI |
public | {Scrollbar.fire-adjustment}:bool |
public | {Scrollbar.get-scroll-value}:double |
public | {Scrollbar.get-test-property name:String}:any |
public | {Scrollbar.scroll-by-blocks num-blocks:int}:void |
public | {Scrollbar.scroll-by-units num-units:int}:void |
public | {Scrollbar.set-to-include}:void |
test-run: | オブジェクトに対してビジュアル テスト アクションを実行します。 |
メソッド 継承 MultiUIControlFrame:
generate-ui-object, handle-look-and-feel-change, handle-observer-message, on-focus-in, option-changed, option-lookup-here, option-propagate-notify, react-to-state-change, react-to-visual-change, request-key-focus, set-layout メソッド 継承 BaseFrame:
add-internal, after-reposition, allocate-layout-object, attempt-revalidate-layout, before-reposition, clone-appearance-helper, compute-child-bounds, compute-parent-elastic, constrain-height, constrain-width, draw, end-pagination, get-height-preference, get-text, get-width-preference, install-child-bounds, internal-remove-child, note-attached, note-detaching, notify-option-children, paginate, pick-child, propagate-request-layout, register-options, set-size メソッド 継承 GuiEventTarget:
handle-delegate-event, handle-event, on-action, on-cancel-mode, on-command-changed, on-commit, on-composition-change-event, on-composition-result-event, on-context-menu-event, on-current-record-change-request, on-current-record-changed, on-destroy-notify, on-destroy-requested, on-drag-over, on-drag-pointer, on-drag-started, on-drop, on-end-composition-event, on-focus-event, on-focus-out, on-gesture, on-gesture-begin, on-gesture-end, on-gesture-magnify, on-gesture-pan, on-gesture-rotate, on-gesture-swipe, on-gesture-tap, on-gesture-touch, on-grab-release, on-gui-event, on-input-method-event, on-key-event, on-pointer-button, on-pointer-crossing, on-pointer-event, on-pointer-motion, on-pointer-release, on-pointer-scroll, on-raw-key-event, on-raw-key-press, on-raw-key-release, on-reset, on-selectable-added, on-selectable-removed, on-selection-changed, on-selection-context-activated, on-selection-context-deactivated, on-selection-event, on-start-composition-event, on-start-event, on-stop-event, on-view-activate, on-view-deactivate, on-window-close, remove-event-handlers-for-event-class メソッド 継承 Visual:
add, add-from-init-args, animate, change-cursor, clonable-appearance?, clone-appearance, get-focus-manager, get-layout-context, get-test-parent, get-view, maybe-fire-attach-event, maybe-fire-detach-event, non-keyword-init-arg, note-caret-position, on-drag-leave, on-pointer-leave, pop-cursor, prepare-test-object, prepare-test-parent, push-cursor, quantize-width, refresh-style-options, release-key-focus, scroll-to-include, test-record, transform-from-display-coordinates, transform-from-graphical-root-coordinates, transform-to-display-coordinates, transform-to-graphical-root-coordinates メソッド 継承 Graphic:
create-pagination-state, detach, draw-range-as-selected, draw-shadow, find-ancestor, find-graphical-ancestor, fire-inferior-crossing-event, get-graphical-root, get-gui-path, get-origin-in-graphical-ancestor, get-origin-in-root, get-pagination-state, get-top-left-in-ancestor, get-visible-bounds-into, on-drag-enter, on-inspection, on-pointer-enter, paint-with-decorations, replace-with, request-draw, request-draw-rect, request-pointer-trace, search-next, search-prev, start-pagination, xy-offset-to メソッド 継承 OptionListInterface:
add-option, add-style-option, change-option-parent-notify, clone-options, get-option, get-option-by-name, keyword-init-arg, local-add-notify, local-remove-notify, name-to-option-key, new-option-item, option-change-notify, option-lookup, option-set?, propagate-option-change, remove-option, remove-style-option, remove-styles, set-option-by-name, set-style-option-by-name, unset-option-by-name, unset-style-option-by-name
(コンストラクタ)
public | {Scrollbar.default} |
新しい Scrollbar を初期化します。
ui-object: 描画とイベントを処理する UI デリゲート。
value:
設定されると、Scrollbar の値を規定するのに使用されます。設定されなければ、Scrollbar の最小値になります。
...: イベント ハンドラおよびグラフィック オプション。
注意事項
既定では Scrollbar オブジェクトは、選択したり、フォーカスを受け取ることが出来ません。その為、トラバーサルに関連したアクティビティに参加することが出来ません。
(アクセサ)
アクセサ public Scrollbar.adjusted-thumb-length:
double
(ローカル オプション)
public Scrollbar.blocksize:
double =10
Scrollbar の block scrolling 距離を指定します。
説明
Scrollbar で block scrolling 操作を実行すると、Scrollbar の値はこのオプションで設定された値だけ変更されます。既定値は 10 です。
注意事項
(ローカル オプション)
スクロールバー チャネルの外観をよくするために使用される定義です。
説明
導入:
バージョン 6.0
(ローカル オプション)
public Scrollbar.direction:
Orientation =Orientation.vertical
Scrollbar の方向を制御します。
説明
このオプションが Orientation.horizontal に設定されている場合、Scrollbar は水平に配置されます。このオプションが Orientation.vertical に設定されている場合、または未設定の場合、Scrollbar は垂直になります。
注意事項
(非ローカル オプション)
このオブジェクトに関連付けられている DisplayContext。
プログラミング注意事項
このオプションは、Curl グラフィック システム内での通信のために使用されます。これは、ユーザー コードで不用意に設定や設定解除を行わないでください。また、通常は、ユーザー コードで直接読み取るべきではありません。現在の
DisplayContext が必要な場合は、
Visual.get-display-context を呼び出すことによりフェッチしてください。
画面上のウィンドウまたは印刷されたページで表示可能なすべてのグラフィック階層は、そのルートにおいて、
display-context オプションを
DisplayContext オブジェクトに設定するオブジェクトを持つ必要があります。このオブジェクトは、グラフィック階層の表示に使用される表示媒体に適しています。つまり、オブジェクトは、
display-context オプションの値が
null から非
null DisplayContext オブジェクトに変更されるのをモニタリングすることにより、表示不可能なグラフィック階層に連結されていることを認識します。したがって、特定の動作を実行する必要のある
Visual のサブクラスは、表示不可能なグラフィック階層に接続された場合、次のようなオプション宣言を含むことにより
display-context オプションをモニタリングします。
{nonlocal-option public display-context:#DisplayContext
change handler}ここで、
change handler 内のコードは
display-context オプションの現在値 (変数
display-context の値として、変更ハンドラ内にある) を取得し、
null および非
null の値の間で行われる変更をモニタリングし、必要とされる動作を実行します。
ただし、このプログラミング熟語を使用するプログラマーは、グラフィカル表示を再配列する際、グラフィック階層からグラフィカル オブジェクトを一時的に分離し、これらを同じ階層に再アタッチすることが、割に一般的であることを理解するべきです。この処理により、一時的に分離されたオブジェクトは、
display-context オブジェクトが
null になり、再び非
null になるのを観察します。
display-context オプションでの変更をモニタリングするコードは、この可能性を考慮に入れ、この状況における望ましくない動作の実行を回避しなくてはなりません。
(アクセサ)
アクセサ public Scrollbar.effective-thickness:
Distance Scrollbar の太さを取得します。
注意事項
Scrollbar の太さを設定するには、
Scrollbar.thickness を使用してください。値を取得する場合には、
Scrollbar.effective-thickness ゲッターを呼び出してください。
Scrollbar.thickness オプションが設定されていない場合は、存在すればシステム設定から取得した値を返します。そうでなければ、
12pt となります。
導入:
バージョン 6.0
(アクセサ)
アクセサ public Scrollbar.is-adjusting?:
bool セッター public Scrollbar.is-adjusting?:
bool Scrollbar の値がユーザーによって変更されているかどうかを規定します。
注意事項
説明
値を変更し続けることになる
Scrollbar サムのドラッグのような操作がある場合、
ScrollbarUI のサブクラスはこの値を設定することができます。
true の場合、
Scrollbar の値における変更は
Adjustment イベントのみとなり、
AdjustmentFinished イベントはこれが再び
false になるまで起動しません。
導入:
バージョン 6.0
(ローカル オプション)
public Scrollbar.max:
double =100
(ローカル オプション)
public Scrollbar.min:
double =0
(ローカル オプション)
public Scrollbar.multi-unit-scroll?:
bool =false
(ローカル オプション)
public Scrollbar.quantized?:
bool =false
Scrollbar の値が、Scrollbar の unit scrolling 距離の整数の倍数に制限されるかどうかを制御します。
説明
(ローカル オプション)
public Scrollbar.shrink-when-disabled?:
bool =false
Scrollbar が無効になったときに、これを表示するかどうかを制御します。
説明
Scrollbar.shrink-when-disabled? が true に設定された場合、Scrollbar は無効になるとゼロ幅に縮小されます。
Scrollbar.shrink-when-disabled? が false に設定された場合、または設定されていない場合、Scrollbar は引き続き以前と同じ量のスペースを占めますが、淡色表示で描画されます。
注意事項
(アクセサ)
アクセサ public Scrollbar.style-element:
String スタイリングの目的のための、この Visual の "要素" や "型" です。
説明
オーバーライド
Visual のサブクラスのスタイルが他のオブジェクトと異なる場合、このゲッターは適切な文字列を返すようにオーバーライドされる必要があります。 慣例では,この文字列はクラス名または、オブジェクトを生成するマークアップの名前です。
オーバーライドでは、空の文字列でないかぎり、self._style-elementを返さなければなりません。
導入:
バージョン 6.0
(アクセサ)
アクセサ public Scrollbar.test-type-name:#
String このオブジェクトをテストのメソッドとプロパティにマッピングするために、ビジュアル テスト インフラストラクチャが使用するタイプ名。
説明
ビジュアル テストを正しく実行するには、テストは次のいずれかのタイプでなければなりません。特定のテスト タイプの詳細については、リストされている実装例の test-run および get-test-property メソッドの説明を参照してください。
オブジェクトのセマンティクスに近い、いずれかの定義済みテスト タイプの使用を検討してください。ただし、テスト タイプを変更せずにオブジェクトにテストのアクションとプロパティを追加する方が簡単な場合もあります。
(ローカル オプション)
public Scrollbar.thickness:
any =12pt
Scrollbar の太さを制御します。
説明
このオプションの値は
Scrollbar の太さ (狭い方の寸法) を指定します。このオプションを設定すると、システム設定から得られる既定の太さがあればそれをオーバーライドします。設定しない場合は
12pt になります。
注意事項
Scrollbar の太さを設定するには、
Scrollbar.thickness を使用してください。値を取得する場合には、
Scrollbar.effective-thickness ゲッターを呼び出してください。
Scrollbar.thickness オプションが設定されていない場合は、存在すればシステム設定から取得した値を返します。そうでなければ、
12pt となります。
例
次の例では、太さの異なるいくつかの
Scrollbar が示されています。
例 |
|
{VBox spacing=4pt,
{Scrollbar direction=Orientation.horizontal, thickness=8pt},
{Scrollbar direction=Orientation.horizontal},
{Scrollbar direction=Orientation.horizontal, thickness=20pt}} | |
(ローカル オプション)
public Scrollbar.thumb-length:
double =0.0
Scrollbar のサムの長さを指定します。
説明
このオプションの値は、Scrollbar のサムの長さを制御します。Scrollbar が水平の場合、このオプションはサムのサイズの水平寸法を制御します。Scrollbar が垂直の場合、このオプションはサムのサイズの垂直寸法を制御します。
実際に表示されるサムの長さは、このオプションの値と
Scrollbar の合計範囲 (
Scrollbar.max および
Scrollbar.min の値の差として定義されます) の比率を計算して決定されます。表示されるサムの長さは、この比率に
Scrollbar のチャネルの全体の長さを掛け合わせて計算されます。結果の長さが短すぎる場合、サムが見えなくなったりマウスで自在にドラッグできないほど小さくならないように、定義された最小の長さが使用されます。
例
次の例では、
thumb-length 値の異なる
Scrollbar がいくつか表示され、外観がどのように変化するかが示されています。
例 |
|
{VBox spacing=4pt,
{Scrollbar
direction=Orientation.horizontal,
min=0,
max=10,
thumb-length=1
},
{Scrollbar
direction=Orientation.horizontal,
min=0,
max=10,
thumb-length=5
},
{Scrollbar
direction=Orientation.horizontal,
min=0,
max=10,
thumb-length=9
},
{Scrollbar
direction=Orientation.horizontal,
min=0,
max=10,
thumb-length=0
},
{Scrollbar
direction=Orientation.horizontal,
min=10,
max=20,
thumb-length=5
}
}
| |
(ローカル オプション)
スクロールバーのサムの外観をよくするために使用される定義です。
説明
導入:
バージョン 6.0
(ローカル オプション)
public Scrollbar.unitsize:
double =1
Scrollbar の unit scrolling 距離を指定します。
説明
Scrollbar でユニット スクロール操作を実行すると、Scrollbar の値はこのオプションにより設定された値だけ変更されます。既定値は 1 です。
(メソッド)
protected | {Scrollbar.create-default-ui-object}:ControlUI |
このオブジェクトに適切な UI オブジェクトを作成します。
説明
このメソッドは、現在の
LookAndFeel がこのコントロールの UI オブジェクトを指定しない場合にのみ使用されます。
(メソッド)
public | {Scrollbar.fire-adjustment}:bool |
(メソッド)
public | {Scrollbar.get-scroll-value}:double |
(メソッド)
public | {Scrollbar.get-test-property name:String}:any |
このオブジェクトのテスト プロパティ値を返します。
説明
既定の実装では、リフレクションを使用してオブジェクトの実行時プロパティの値を取得します。プロパティを実行時のインターフェイスではなくテスト環境に追加する場合は、サブクラスでこのメソッドをオーバーライドする必要があります。
注意事項
(メソッド)
public | {Scrollbar.scroll-by-blocks num-blocks:int}:void |
block scrolling サイズの倍数により、Scrollbar の値を変更します。
num-blocks: 使用するブロック スクロール サイズの倍数。
説明
(メソッド)
public | {Scrollbar.scroll-by-units num-units:int}:void |
unit scrolling サイズの倍数により、Scrollbar の値を変更します。
num-units: 使用するユニット スクロール サイズの倍数。
説明
(メソッド)
(メソッド)
public | {Scrollbar.set-to-include}:void |
現在のオブジェクトに設定されたポイントが見えるように Scrollbar のスクロール場所を設定します。
pos: Scrollbar が見える、設定ポイントです。
min-window, max-window:
Scrollbar のわずかな範囲として割り当てられる目に見える Scrollbar です。
pos が目に見える範囲にある場合、このメソッドを呼び出しても何も起こりません。目に見える範囲を超える場合、Scrollbar は目に見える範囲にそれを持ってくるためにスクロールされます。
導入:
バージョン 6.0
(メソッド)
オブジェクトに対してビジュアル テスト アクションを実行します。
action: 実行するアクションの名前。
args: ビジュアル テスト アクションの引数。ビジュアル テスト インフラストラクチャは、引数の数と型をチェックしますが、値はチェックしません。実装では、すべての有効な値を処理し、不正な値に対しては例外またはエラーをスローするようにしてください。
説明
そのクラスによってサポートされたテスト動作のリストについてクラスのドキュメントを御読み下さい。
既定の実装では、RawClick などの一般的な操作を処理し、action が既知のアクションに一致しない場合にはリフレクションを使用してメソッドを呼び出します。
注意事項
QuickTest Property™ のビジュアル テスト環境では、任意の実行時メソッドを直接呼び出せません。代わりに CallMethod アクションを使用して、最初の引数としてメソッド名を渡してください。ビジュアル テスト インフラストラクチャは、CallMethod アクションを実際のアクションに変換してから test-run を呼び出します。
注意事項
オーバーライド
新しいテスト アクションを追加するには、action と新しいアクションの名前を照合します。一致する場合は、引数を処理してアクションを実行し、適切なタイプの値 (戻り値がない場合は null) を返します。action が新しいテスト アクションに一致しない場合は、super.test-run を呼び出します。