XmScrollBar(3XM) — NEWS-OS Programmer’s Manual
名称
XmScrollBar — ScrollBar widget クラス
形式
#include <Xm/ScrollBar.h>
解説
ScrollBar widget は、一度に表示するには大きすぎるデータをユーザが見るのに使います。 ScrollBar はたいてい、表示するデータを持った widget の横あるいは内部に位置しています。 ユーザは、ScrollBar で他の widget のスクロール内のデータを操作することができます。
ScrollBar は、両端に矢印のある矩形です。 矩形はスクロールリージョンと呼ばれます。 スライダという小さい矩形が、スクロールリージョン内にあります。 いずれかの矢印かスクロールリージョンを選択するか、またはスライダをドラッグすると、データがスクロールします。 矢印を選択した場合は、スクロールリージョン内のスライダは、アプリケーションが指定した量だけ矢印の方向に動きます。 マウスのボタンを押え続けると、スライダは一定の割り合いで移動し続けます。
スライダのサイズとスクロールリージョンのサイズの比率は、見えているデータとデータ全体のサイズとの関係と対応しています。 たとえば、データの 10 パーセントが見えている時、スライダはスクロールリージョンの 10 パーセントを占めます。 これによって、ユーザは見えないデータのサイズに関する手がかりを知ることができます。
クラス
ScrollBar は、Core と XmPrimitive クラスから動作とリソースを継承します。
クラスのポインタは xmScrollBarWidgetClass です。
クラス名は XmScrollBar です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまた widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。
| XmScrollBar リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNdecrementCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNdragCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNincrement | XmCIncrement | int | 1 | CSG |
| XmNincrementCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNinitialDelay | XmCInitialDelay | int | 250 | CSG |
| XmNmaximum | XmCMaximum | int | 0 | CSG |
| XmNminimum | XmCMinimum | int | 0 | CSG |
| XmNorientation | XmCOrientation | unsigned char | XmVERTICAL | CSG |
| XmNpageDecrementCallback | XmCCallback | XtCallbackList | NULL | CSG |
| XmNpageIncrement | XmCPageIncrement | int | 10 | C |
| XmNpageIncrementCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNprocessingDirection | XmCProcessingDirection | unsigned char | XmMAX_ON_BOTTOM | CSG |
| XmNrepeatDelay | XmCRepeatDelay | int | 50 | CSG |
| XmNshowArrows | XmCShowArrows | Boolean | True | CSG |
| XmNsliderSize | XmCSliderSize | int | 10 | CSG |
| XmNtoBottomCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNtoTopCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNvalue | XmCValue | int | 0 | CSG |
| XmNvalueChangedCallback | XmCCallback | XtCallbackList | NULL | C |
XmNdecrementCallback
インクリメントするごとにスライダの値を減らす矢印を選択した時に呼び出される、コールバックリストを指定します。 コールバックの送るリーズンは XmCR_DECREMENT です。
XmNdragCallback
スライダがドラッグされて、位置の値が増えた時に呼び出されるコールバックリストを指定します。 コールバックの送るリーズンは XmCR_DRAG です。
XmNincrement
矢印を選択した時、対応するスライダをどれだけ移動させるかを指定します。
XmNincrementCallback
インクリメントするごとにスライダの値を増やす矢印を選択した時に呼び出される、コールバックリストを指定します。 コールバックの送るリーズンは XmCR_INCREMENT です。
XmNinitialDelay
スライダの移動を始める前に待つ時間の合計 (ミリ秒) を指定します。 スライダはその後、矢印あるいはスクロールリージョンが押されている間連続的に移動します。
XmNmaximum
スライダの最大値を指定します。
XmNminimum
スライダの最小値を指定します。
XmNorientation
ScrollBar を垂直方向、水平方向の表示のいずれかに指定します。 このリソースの値は XmVERTICAL か XmHORIZONTAL です。
XmNpageDecrementCallback
スライダエリアが選択され、しかもページをインクリメントするごとにスライダの値が減る場合に呼び出されるコールバックリストを指定します。 コールバックの送るリーズンは XmCR_PAGE_DECREMENT です。
XmNpageIncrement
スライダエリアを選択した時の、スライダの移動量を指定します。
XmNpageIncrementCallback
スライダエリアが選択され、しかもページをインクリメントするごとにスライダの値が増える場合に呼び出されるコールバックリストを指定します。 コールバックの送るリーズンは XmCR_PAGE_INCREMENT です。
XmNprocessingDirection
XmNmaximum に対応する値を、水平方向の ScrollBar に対しては XmNminimum の右側か左側のいずれに置くか、垂直方向の ScrollBar に対しては XmNminimum の上側か下側のいずれに置くかを指定します。 このリソースの値は XmMAX_ON_TOP、XmMAX_ON_BOTTOM、 XmMAX_ON_LEFT、XmMAX_ON_RIGHT のいずれかです。
XmNrepeatDelay
XmInitialDelay が処理されてから、スライダが移動するまでの待ち時間 (ミリ秒) を指定します。
XmNshowArrows
矢印を表示するかどうかを指定します。
XmNsliderSize
0 と最大値 – 最小値間のスライダのサイズを指定します。
XmNtoBottomCallback
ユーザが、下側の矢印ボタン内で、<Shift> とマウスボタン 1 を選択したときに呼び出されるコールバックリストを指定します。 このコールバックは値として、ScrollBar の最大値から ScrollBar のスライダのサイズを引いたものを渡します。 スライダは自動的には再配置されません。 コールバックの送るリーズンは XmCR_TO_BOTTOM です。
XmNtoTopCallback
ユーザが、上側の矢印ボタン内で、<Shift> とマウスボタン 1 を選択したときに呼び出されるコールバックリストを指定します。 このコールバックは値として、ScrollBar のスライダの最小値を渡します。 スライダは自動的には再配置されません。 コールバックの送るリーズンは XmCR_TO_TOP です。
XmNvalue
最小値から最大値の間でスライダの位置を指定します。
XmNvalueChangedCallback
ドラッグしていたスライダを離したときに呼び出されるコールバックリストを指定します。 XmNincrementCallback、XmNdecrementCallback、 XmNpageIncrementCallback、XmNpageDecrementCallback にコールバックが指定されていない時に、 これらの代りに呼び出されます。 コールバックの送るリーズンは XmCR_VALUE_CHANGED です。
継承されるリソース
ScrollBar は、次のスーパークラスの動作とリソースを継承します。 これらのリソースの完全な解説は、各スーパークラスのマニュアルページを参照してください。
| XmPrimitive リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNbottomShadowColor | XmCForeground | Pixel | dynamic | CSG |
| XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNforeground | XmCForeground | Pixel | dynamic | CSG |
| XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhighlightColor | XmCForeground | Pixel | Black | CSG |
| XmNhighlightOnEnter | XmCHighlightOnEnter | Boolean | False | CSG |
| XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | dynamic | CSG |
| XmNhighlightThickness | XmCHighlightThickness | short | 0 | CSG |
| XmNshadowThickness | XmCShadowThickness | short | 2 | CSG |
| XmNtopShadowColor | XmCBackground | Pixel | dynamic | CSG |
| XmNtopShadowPixmap | XmCTopShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNtraversalOn | XmCTraversalOn | Boolean | False | CSG |
| XmNunitType | XmCUnitType | unsigned char | XmPIXELS | CSG |
| XmNuserData | XmCUserData | caddr_t | NULL | CSG |
| Core リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNaccelerators | XmCAccelerators | XtTranslations | NULL | CSG |
| XmNancestorSensitive | XmCSensitive | Boolean | True | G |
| XmNbackground | XmCBackground | Pixel | dynamic | CSG |
| XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderColor | XmCBorderColor | Pixel | Black | CSG |
| XmNborderPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderWidth | XmCBorderWidth | Dimension | 0 | CSG |
| XmNcolormap | XmCColormap | Colormap | XtCopyFromParent | CG |
| XmNdepth | XmCDepth | int | XtCopyFromParent | CG |
| XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNheight | XmCHeight | Dimension | 0 | CSG |
| XmNmappedWhenManaged | XmCMappedWhenManaged | Boolean | True | CSG |
| XmNscreen | XmCScreen | Pointer | XtCopyScreen | CG |
| XmNsensitive | XmCSensitive | Boolean | True | CSG |
| XmNtranslations | XmCTranslations | XtTranslations | NULL | CSG |
| XmNwidth | XmCWidth | Dimension | 0 | CSG |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
コールバック情報
各コールバックでは、次の構造体が返ります。
typedef struct
{
intreason ;
XEvent∗ event ;
intvalue ;
intpixel ;
} XmScrollBarCallbackStruct ;
reasonコールバックの呼び出されたリーズンを示します。
eventコールバックを引き起こした XEvent を指します。
value新しいスライダの位置の値を示します。
pixelXmNtoTopCallback および XmNtoBottomCallback でのみ使われます。 水平方向の ScrollBar では、マウスボタンが選択された位置の x 座標を示します。 垂直方向の ScrollBar では、y 座標を示します。
動作
<Btn1Down>:
(矢印内): スライダを矢印の方向にインクリメントあるいはディクリメントさせ、XmNincrementCallback あるいは XmNdecrementCallback に対応するコールバックを呼びます。 XmNincrementCallbacks あるいは XmNdecrementCallbacks が空の場合には、XmNvalueChangedCallbacks が呼び出されます。
(スクロールリージョン内): スライダの選択された側にスライダを動かしてページをインクリメントあるいはディクリメントさせ、XmNpageIncrementCalback あるいは XmNpageDecrementCallBacks に対応するコールバックを呼びます。 XmNpageIncrementCallbacks あるいは XmNpageDecrementCallbacks が空の場合には、XmNvalueChangedCallbacks が呼び出されます。
(スライダ内): スライダがインタラクティブにドラッグできるようにします。 ボタンを矢印かスクロールリージョン内で、XmNinitialDelay よりも長く押したままでいると、スライダは同じインクリメントで再び移動し、同じコールバックが呼び出されます。 イニシャルディレイが過ぎると、タイムディレイは XmNrepeatDelay で定義した値に変更されます。
Button1<PtrMoved>:
スライダ内でボタンを押すと、次の動作のイベントはスライダを新しい位置に 移動させ、XmNdragCallback に対応するコールバックを呼びます。
<Btn1Up>:
スライダ内でボタンを押してスライダの位置を変更すると、XmNvalueChangedCallback に対応するコールバックが呼び出されます。
Shift<Btn1Down>:
上側の矢印ボタン内でこのマウスボタンを押すと、XmNtoTopCallback に対応するコールバックが呼び出されます。
Shift<Btn1Down>:
下側の矢印ボタン内でこのマウスボタンを押すと、XmNtoBottomCallback に対応するコールバックが呼び出されます。
<Key>Up:
垂直方向の ScrollBar で上向き矢印のカーソルキーを押すと、スライダを 1 ユニット ディクリメントして、XmNdecrementCallback に対応するコールバックを呼びます。 XmNdecrementCallbacks が空の場合は XmNvalueChangedCallbacks が呼び出されます。
<Key>Down:
垂直方向の ScrollBar で下向き矢印のカーソルキーを押すと、スライダを 1 ユニット インクリメントして、XmNincrementCallback に対応するコールバックを呼びます。 XmNincrementCallbacks が空の場合は XmNvalueChangedCallbacks が呼び出されます。
<Key>Left:
水平方向の ScrollBar で左向き矢印のカーソルキーを押すと、スライダを 1 ユニット ディクリメントして、XmNdecrementCallback に対応するコールバックを呼びます。 XmNdecrementCallbacks が空の場合は XmNvalueChangedCallbacks が呼び出されます。
<Key>Right:
水平方向の ScrollBar で右向き矢印のカーソルキーを押すと、スライダを 1 ユニット インクリメントして、XmNincrementCallback に対応するコールバックを呼びます。 XmNincrementCallbacks が空の場合は XmNvalueChangedCallbacks が呼び出されます。
デフォルトのトランスレーション
~Shift ~Ctrl ~Meta ~Alt <Btn1Down>: Select()
~Shift ~Ctrl ~Meta ~Alt <Btn1Up>: Release()
~Shift ~Ctrl ~Meta ~Alt Button1<PtrMoved>: Moved()
Shift ~Ctrl ~Meta ~Alt <Btn1Down>: GoToTop()
Shift ~Ctrl ~Meta ~Alt <Btn1Down>: GoToBottom()
~Shift ~Ctrl ~Meta ~Alt <Key>Up: UpOrLeft(0)
~Shift ~Ctrl ~Meta ~Alt <Key>Down: DownOrRight(0)
~Shift ~Ctrl ~Meta ~Alt <Key>Left: UpOrLeft(1)
~Shift ~Ctrl ~Meta ~Alt <Key>Right: DownOrRight(1)
<EnterWindow>:Enter()
<LeaveWindow>:Leave()
キーボードトラバース
XtNtraversalOn リソースが生成時、あるいは XtSetValues 呼びだし時に True に設定されると、Manager スーパークラスは自動的に Manager widget のトランスレーションを増やして、キーボードトラバースをサポートします。 これらのトランスレーションの完全な解説は、 XmManager(3XM) を参照してください。
関連事項
Core(3XM), XmCreateScrollBar(3XM), XmPrimitive(3XM), XmScrollBarGetValues(3XM), XmScrollBarSetValues(3XM)
NEWS-OSRelease 4.1C