XmRowColumn(3XM) — NEWS-OS Programmer’s Manual
名称
XmRowColumn — RowColumn widget クラス
形式
#include <Xm/RowColumn.h>
解説
RowColumn widget は、すべての widget の型を子として管理するために一般的に用いる RowColumn マネージャです。 一般には、子の機能について特別な知識を持つ必要はありません。 また、複数の異なるレイアウトの形式に関してはサポートしません。 メニューのように設定することができますが、その場合は、特定の子だけを予想して、特定のコンフィギュレーションをします。 サポートされているメニューは、MenuBar、Pulldown、MenuPanes、OptionMenu です。
実行されるレイアウトの型は、アプリケーションが様々なレイアウトのリソースをどのように設定しているかによって制御されます。 子のレイアウトを、行単位にもカラム単位にも設定できます。 さらに、アプリケーションは、複数の子が (行単位やカラム単位の構成でなく) きっちりと詰め込まれるか、それぞれの子が (対称的に見えるように) 独自の大きさのボックスの中に置かれるか、特別のレイアウトがなされるか (その時点の子の x、y 座標によって位置を制御するように) を指定することができます。
さらに、アプリケーションは各行とカラム間のスペーシングと、RowColumn widget の端とそれに対しておかれた子との間のマージンを制御することができます。
大抵の場合、RowColumn widget は、自身を 3 次元表示しません。 もし、アプリケーションが widget の周囲に 3 次元の陰影をつけたいときは、 Frame widget の子として RowColumn を作成することができます。
クラス
RowColumn は Core、Composite、Constraint および XmManager から動作とリソースを継承します。
クラスのポインタは xmRowColumnWidgetClass です。
クラスの名前は XmRowColumn です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまた widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。
| XmRowColumn リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNadjustLast | XmCAdjustLast | Boolean | True | CSG |
| XmNadjustMargin | XmCAdjustMargin | Boolean | True | CSG |
| XmNentryAlignment | XmCAlignment | unsigned char | dynamic | CSG |
| XmNentryBorder | XmCEntryBorder | short | dynamic | CSG |
| XmNentryCallback | XtCCallback | XtCallbackList | NULL | C |
| XmNentryClass | XmCEntryClass | WidgetClass | dynamic | CSG |
| XmNisAligned | XmCIsAligned | Boolean | True | CSG |
| XmNisHomogeneous | XmCIsHomogeneous | Boolean | dynamic | CSG |
| XmNlabelString | XtCString | XmString | NULL | C |
| XmNmapCallback | XtCCallback | XtCallbackList | NULL | C |
| XmNmarginHeight | XmCMarginHeight | Dimension | dynamic | CSG |
| XmNmarginWidth | XmCMarginWidth | Dimension | 3 | CSG |
| XmNmenuAccelerator | XmCAccelerators | String | dynamic | CSG |
| XmNmenuHelpWidget | XmCMenuWidget | Widget | NULL | CSG |
| XmNmenuHistory | XmCMenuWidget | Widget | NULL | CSG |
| XmNmnemonic | XmCMnemonic | char | dynamic | CSG |
| XmNnumColumns | XmCNumColumns | short | dynamic | CSG |
| XmNorientation | XmCOrientation | unsigned char | dynamic | CSG |
| XmNpacking | XmCPacking | unsigned char | dynamic | CSG |
| XmNpopupEnabled | XmCPopupEnabled | Boolean | True | CSG |
| XmNradioAlwaysOne | XmCRadioAlwaysOne | Boolean | True | CSG |
| XmNradioBehavior | XmCRadioBehavior | Boolean | False | CSG |
| XmNresizeHeight | XmCResizeHeight | Boolean | True | CSG |
| XmNresizeWidth | XmCResizeWidth | Boolean | True | CSG |
| XmNrowColumnType | XmCRowColumnType | unsigned char | XmWORK_AREA | CG |
| XmNshadowThickness | XmCShadowThickness | int | dynamic | CSG |
| XmNspacing | XmCSpacing | short | dynamic | CSG |
| XmNsubMenuId | XmCMenuWidget | Widget | NULL | CG |
| XmNunmapCallback | XtCCallback | XtCallbackList | NULL | C |
| XmNwhichButton | XmCWhichButton | unsigned int | dynamic | CSG |
XmNadjustLast
子の最後の行を RowColumn の底辺まで拡張する (XmOrientaion が XmHORIZONTAL の時) か、または、最後のカラムを RowColumn の右端まで拡張します (XmOrientation が XmVERTICAL の時)。 この機能は、XmNadjustLast を False に設定すると無効になります。
XmNadjustMargin
RowColumn widget に含まれるすべての項目の内部の二次的なマージンを強制的に同じ値にするか否かを指定します。 内部の二次的なマージンは、XmLabel と XmLabelGadget によって XmNmarginLeft、XmNmarginRight、XmNmarginTop、および、XmNmarginBottom と対応づけられます。
水平方向の指定は、特定の行のすべての項目の XmNmarginTop および XmNmarginBottom を同じ値に強制的に設定します。 設定される値は、Label 項目に対して指定されるマージンのうち最大のものになります。
垂直方向の指定は、特定のカラムのすべての項目の XmNmarginLeft および XmNmarginRight を同じ値に強制的に設定します。 設定される値は、Label 項目に対して指定されるマージンのうち最大ものになります。
これによって、各行およびカラム中のテキストはその行あるいはカラム中の他のテキストと共に並べられます。 XmNrowColumnType が、XmMENU_POPUP あるいは XmMENU_PULLDOWN であって、かつ、このリソースが True であれば、ボタンの子 widget だけがそのマージンを調整します。
XmNentryAliginment
XmNisAligined が有効な時、Label あるいは LabelGadget の子のアライメントの型を指定します。 以下が、テキストのアライメントの型です。
•XmALIGNMENT_BEGINNING — デフォルト
•XmALIGNMENT_CENTER
•XmALIGNMENT_END
これらの動作の説明は XmLabel(3XM) のマニュアル中の XmNalignment の解説を参照してください。
XmNentryBorder
RowColumn のすべての子に対して統一されたボーダの幅を設定します。 デフォルトの値は 0 で、これは、この属性を無効にします。
XmNentryCallback
RowColumn widget に含まれる ToggleButton、PushBotton、CascadeButton widget および gadget に対して動作中のコールバックを無効にします。 アプリケーションがこのリソースを提供すると、動作中のコールバックはこのコールバックに再ベクターされます。 これによって、アプリケーションは、RowColumn widget 中のすべての項目の操作に対して、1 つのコールバックルーチンを提供することができます。 アプリケーションは、widget が生成された時にこのリソースを提供しなければなりません。
アプリケーションがこのリソースを提供しない時は、RowColumn widget のすべての項目に対する動作中のコールバックは、通常の動作をします。 コールバックリーズンは、XmCR_ACTIVATE で、デフォルト値は NULL です。 XtSetValues を使用したこのリソースの変更はサポートされていません。
XmNentryClass
RowColumn widget に追加された widget クラスのみを指定します。 このリソースは XmNisHomogeneous リソースが True に設定された時のみ意味を持ちます。 XmNrowColumnType が XmWORK_AREA に設定され、XmNradioBehavior が True の時、XmNentryClass のデフォルト値は xmToggleButtonGadgetClass となります。 XmNrowColumnType が XmMENU_BAR に設定されると、XmNentryClass の値は強制的に xmCascadeButtonWidgetClass となります。
XmNisAligned
RowColumn widget の各項目に対してテキストのアライメントを指定します。 これは、XmLabel あるいは XmLabelGadget のサブクラスの項目に対してのみ適用されます。 しかし、その項目が Label widget あるいは Label gadget で、かつ、その親が Popup MenuPane あるいは Pulldown MenuPane であれば、アライメントは行われません。 Label は MenuPane 内のタイトルとしてあつかわれ、アプリケーションによって指定されたアライメントはオーバーライドされません。 XmNentryAlignment はテキストのアライメントの型を制御します。
XmNisHomogeneous
RowColumn widget が、自分が含む項目間において、 正確に同一の性質であることを強制するかどうかを示します。 True であれば、XmNentryClass によって示されるクラスの widget のみが、 RowColumn widget の子となることができます。 これは MenuBar あるいは、RadioBox widget を作る時によく使用します。
指定されたクラスのメンバでない子を挿入しようとすると警告メッセージを生成します。 デフォルト値は False ですが、MenuBar あるいは RadioBox の作成中はデフォルトは True になります。
XmNlabelString
XmNrowColumnType が XmMENU_OPTION に設定されている時に、選択した領域の左にラベルとして表示する文字列テキストを指します。 このリソースは他のすべての RowColumn の型に有効とは限りません。 アプリケーションで、ラベルの生成後に変更をしたいときは、LabelGadget ID (XmOptionLabelGadget) を得て、LabelGadget 上で直接 XtSetValues を呼ぶ必要があります。 デフォルト値は Label 無しです。
XmNmapCallback
RowColumn widget に関連するウィンドウがマップされる直前に起動される、widget 指定のコールバック関数を指定します。 コールバックリーズンは XmCRMap です。
XmNmarginHeight
RowColumn widget の上端と各カラムの最初の項目との間のスペース、および RowColumn widget の下端と各カラムの最後の項目との間のスペースの合計を指定します。 デフォルト値は 3 ピクセルです。
XmNmarginWidth
RowColumn widget の左端と各行の最初の項目との間のスペース、および RowColumn widget の右端と各行の最後の項目との間のスペースの合計を指定します。 デフォルト値は 3 ピクセルです。
XmNmenuAccelerator
このリソースは、 RowColumn widget が Popup MenuPane あるいは、MenuBar として動作するように設定されている時にのみ役にたちます。 このリソースの形式はトランスレーションストリングの左側の指定と同様で、キーイベントを指定すべき制限を伴います。 Popup MenuPane の場合、アクセラレータがユーザによって入力されると、Popup MenuPane が表示されます。 MenuBar の場合、アクセラレータがユーザによって入力されると、MenuBar の最初の項目がハイライト表示となり、MenuBar でのトラバースが可能になります。 Popup MenuPane のデフォルトは、<Key> F4 です。 MenuBar のデフォルトは <Key>F10 です。 アクセラレータは、XmNpopupEnabled を False に設定することによって無効にすることができます。
XmNmenuHelpWidget
XmNrowColumnType が XmMENU_BAR に設定されている時に、Help widget としてあつかわれている CascadeButton に対して widget ID を指定します。 MenuBar は常に Help widget を右下隅に置きます。 RowColumn widget が XmMENU_BAR 以外の型であれば、このリソースは意味を持ちません。
XmNmenuHistory
直前にアクティブにされたメニューエントリの widget ID を指定します。 OptionMenu に対して現在の選択を指定する時にも使うことができます。 XmNrowColumnType が XmMENU_OPTION に設定されていると、メニューが表示された時に、指定したメニューの項目がカーソルの下にきます。
RowColumn widget が XmNradioBehavior リソースを True に設定すると、その wifget ID を含むリソースと関連する widget フィールドは、直前の ToggleButton あるいは ToggleButtonGadget を非選択から選択に変更します。 デフォルト値は widget の最初の子の widget ID になります。
XmNmnemonic
このリソースは、XmNrowColumnType が XmMENU_OPTION に設定された時のみ役に立ちます。 ユーザが文字を入力した時、関連する Pulldown MenuPane を表示する 1 文字を指定します。 この文字は OptionMenu ラベルに表示された場合はアンダーラインがつけられ、文字が OptionMenu ラベルと関連する特別な機能を持っていることを知らせる視覚的な指針となります。 デフォルト値は、no mnemonic です。
XmNnumColumns
エントリを適応するための負ディメンジョンの拡張の数を指定します。 この属性は XmNpacking が XmPACK_COLUMN に設定されている時のみ意味を持ちます。
垂直方向の RowColumn widget に関しては、この属性は、いくつのカラムを組み込んでいるかを示します。 1 カラムのエントリ数は、可能であれば、このカラム数に保たれるように調整されます。
水平方向の RowColumn widget に関しては、この属性はいくつの行が組み込まれるかを示します。 デフォルト値は 1 です。
XmNorientation
RowColumn のレイアウトが行主体であるか、カラム主体であるかのいずれかを決定します。 カラム主体の場合、RowColumn の子は widget 中で、カラムの先頭から末尾へレイアウトされます。 行主体の場合、RowColumn の子のレイアウトは行に従います。 XmVERTICAL リソース値はカラム主体のレイアウトを選択します。 XmHORIZONTAL リソース値は行主体のレイアウトを選択します。
デフォルト値は XmVERTICAL です。 ただし、MenuBar を作ると、デフォルト値は XmHORIZONTAL となります。
XmNpacking
RowColumn widget への項目の詰め方を指定します。 XmPACK_TIGHT、XmPACK_COLUMN、あるいは、XmPACK_NONE に設定することができます。 RowColumn widget が項目を詰める時、XmNorientation リソースを用いて主体とするディメンジョンを決定します。
XmPACK_TIGHT は、現在主体のディメンジョン (たとえば、XmNorientation が XmVERTICAL ならば垂直方向) を与えます。 エントリは RowColumn widget がラップする必要が出てくるまで、順にレイアウトされます。 RowColumn は、そのディメンジョンですべての子に空きがなくなるとラップします。 ラップは、次の有効なスペースで、新しい行あるいはカラムを開始します。 ラップは、必要に応じて、子がすべてレイアウトされるまで続きます。 垂直方向 (カラム) では、ボックスが同じ幅に設定されます。 水平方向 (行) では、ボックスは同じ深さに設定されます。 主体となるディメンジョンでの各エントリの位置は、固定的に左です。 (たとえば、XmNorientation が XmVERTICAL の時は、XmNy は固定的に左です。 ) 一方、二次的なディメンジョンでは、特定の行あるいはカラムの中の最大のエントリと等しい値に設定されます。 どの行あるいはカラムでも、二次的なディメンジョンでの位置は、他の行あるいはカラムとは独立です。
XmPACK_COLUMN はすべてのエントリが独自の大きさのボックスに置かれることを示しています。 ボックスは、すべての子 widget の中の最大の高さと幅に基づきます。 XmNnumColumns リソースの値は、二次的なディメンジョンでの拡張の前に、主体となるディメンジョンでいくつのボックスが置かれるかを決定します。
XmPACK_NONE は、packing が行われないことを示します。 各エントリの x、y 属性はそのままで、RowColumn widget はすべてのエントリを包含できる大きさになるように試みます。
デフォルト値は XmPACK_TIGHT ですが、OptionMenu あるいは RadioBox を組み込んだ時のデフォルト値は XmPACK_COLUMN になります。
XmNpopupEnabled
メニューシステム上で Popup MenuPane およびそのサブメニューに定義されたキーボード入力 (アクセラレータおよびニーモニック) を可能にします。 Popup MenuPane に関する表示はアプリケーションによって操作されるため、 ユーザに対するアクセス権に変化がおきた場合は、必ず Popup MenuPane に知らせる必要があります。 このリソースに関するデフォルト値は True です (Popup MenuPane とそのサブメニューに対して定義されたキーボード入力、アクセラレータとニーモニックが使用可能です)。
XmNradioAlwaysOne
True の時は、他のトグルがひとつもアクティブでないとき、それまで選択されていなかったアクティブな ToggleButton あるいは ToggleButtonGadget が自動的に選択されるようにします。 False の場合は、アクティブなトグルは選択されません。 デフォルト値は True です。 このリソースは XmNradioBehavior が True の時のみ重要です。
アプリケーションは、トグルの選択 / 非選択の状態と無関係に、RowColumn にトグルを付加したりあるいは削除することが常に自由にできます。 アプリケーションは、また、トグルの状態に関わらず、RowColumn の子に当たるトグルを管理する / しないも自由です。 このため、アプリケーションが、XmNradioAlwaysOne が True の RowColumn を作成し、子のトグルが選択されないようにすることが可能な場合もあります。
XmNradioBehavior
True ならばブール代数値を設定し、RowColumn widget が、ToggleButton あるいは ToggleButtonGadget のすべての子に RadioBox-type の動作を強制すべきであることを示します。
2 つの ToggleButton および ToggleButtonGadget リソースは生成時に強制的に値が設定されます。 XmNindicator は XmONE_OF_MANY に、XmNvisibleWhenOff は True に設定されます。
RadioBox の動作は、あるトグルが選択され、次に他のトグルが選択された時に、最初のトグルが自動的に非選択になるというものです。 デフォルト値は False ですが、RadioBox の生成時には、デフォルト値は True になります。
XmNresizeHeight
True に設定してあれば、必要に応じて、新しい高さを要求します。 False の時は、widget は自分とその子に対するあらゆる変化に関わらず、新しい高さを要求しません。
XmNresizeWidth
True に設定してあれば、必要に応じて、新しい幅を要求します。 False の時は、widget は自分とその子に対するあらゆる変化に関わらず、新しい幅を要求しません。
XmNrowColumnType
RowColumn widget の生成時の型を指定します。 これは設定後の変更が不可能な、標準外のリソースです。 アプリケーションが XmCreateRowColumn 以外の簡易ルーチンを使う時は、このリソースはその簡易ルーチンによって適切な値に自動的に設定されます。 アプリケーションが RowColumn widget を生成するのに Xt Intrinsics API を用いる時は、アプリケーションが自分でこのリソースを設定しなければなりません。 このリソースに可能な設定は、
•XmWORK_AREA — デフォルト
•XmMENU_BAR
•XmMENU_PULLDOWN
•XmMENU_POPUP
•XmMENU_OPTION
このリソースは RowColumn widget を生成した後に変更することはできません。 XtSetValues によってのいかなる変更も無視されます。
XmNspacing
Rowcolumn widget に含まれる項目間の水平方向あるいは垂直方向のスペーシングを指定します。 デフォルト値は 1 ピクセルです。 水平方向の MenuBar の場合は、デフォルトは 0 ピクセルになります。
XmNsubMenuId
Pulldown MenuPane に対して widget ID を指定し、OptionMenu と関連付けます。 このリソースは XmNrowColumnType が XmMENU_OPTION に設定されている時のみ役に立ちます。 このリソースは OptionMenu の生成時に関数のプロパティとして指定しなくてはなりません。 これは他の型の RowColumn に関しては使われません。
XmNunmapCallback
RowColumn widget と関連するウィンドウがアンマップされた後に呼び出されるコールバックのリストを指定します。 コールバックリーズンは XmCR_Unmap です。 デフォルト値は NULL です。
XmNwhichButton
メニューシステムが反応するマウスボタンを指定します。 XmMENU_POPUP に対するデフォルトは、ボタン 3 であり、XmMENU_OPTION および XmMENU_BAR に対するデフォルトは、ボタン 1 です。 このリソースは XmWORK_AREA および XmMENU_PULLDOWN の型の RowColumn widget に対しては役に立ちません。
| XmRowColunmn Special Menu リソース | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNmenuCursor | XmCCursor | String | arrow | C |
XmNmenuCursor
アプリケーションがメニューを表示する時に使われるカーソルを制御する変数を設定します。 このリソースは、デフォルトファイルに置かれるか、コマンドラインの引数として -xrm を使うことによって、アプリケーションの起動時に 1 度だけ指定することができます。
例 : myProg -xrm "∗menuCursor:arrow"
メニューカーソルは XmSetMenuCursor 関数を使うことによって、プログラム的に選択することもできます。 以下は適用可能なカーソルの名前のリストです。 アプリケーションがカーソルを指定しない時、あるいは、無効な名前が与えられた時は、デフォルトのカーソル (上と右を指す矢印) が使われます。
| X_cursor | dotbox | man | sizing |
| arrow | double_arrow | middlebutton | spider |
| based_arrow_down | draft_large | mouse | spraycan |
| based_arrow_up | draft_small | pencil | star |
| boat | draped_box | pirate | target |
| bogosity | exchange | plus | tcross |
| bottom_left_corner | fleur | question_arrow | top_left_arrow |
| bottom_right_corner | gobbler | right_ptr | top_left_corner |
| bottom_side | gumby | right_side | top_right_corner |
| bottom_tee | hand1 | right_tee | top_side |
| box_spiral | hand2 | rightbutton | top_tee |
| center_ptr | heart | rtl_logo | trek |
| circle | icon | sailboat | ul_angle |
| clock | iron_cross | sb_down_arrow | umbrella |
| coffee_mug | left_ptr | sb_h_double_arrow | ur_angle |
| cross | left_side | sb_left_arrow | watch |
| cross_reverse | left_tee | sb_right_arrow | xterm |
| crosshair | leftbutton | sb_up_arrow | |
| diamond_cross | ll_angle | sb_v_double_arrow | |
| dot | lr_angle | shuttle |
継承されるリソース
RowColumn は以下の名前のスーパークラスの動作とリソースを継承します。 これらのリソースの完全な解説は、そのスーパークラスのマニュアルページを参照してください。
| XmManager リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| 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 |
| XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | dynamic | CSG |
| XmNshadowThickness | XmCShadowThickness | short | 0 | CSG |
| XmNtopShadowColor | XmCBackground | Pixel | dynamic | CSG |
| XmNtopShadowPixmap | XmCTopShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNunitType | XmCUnitType | unsigned char | XmPIXELS | CSG |
| XmNuserData | XmCUserData | caddr_t | NULL | CSG |
| Composite リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNinsertPosition | XmCInsertPosition | XmRFunction | 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 | dynamic | CSG |
| XmNcolormap | XmCColormap | Colormap | XtCopyFromParent | CG |
| XmNdepth | XmCDepth | int | XtCopyFromParent | CG |
| XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNheight | XmCHeight | Dimension | 16 | CSG |
| XmNmappedWhenManaged | XmCMappedWhenManaged | Boolean | True | CSG |
| XmNscreen | XmCScreen | Pointer | XtCopyScreen | CG |
| XmNsensitive | XmCSensitive | Boolean | True | CSG |
| XmNtranslations | XmCTranslations | XtTranslations | NULL | CSG |
| XmNwidth | XmCWidth | Dimension | 16 | CSG |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
コールバック情報
以下の構造体はそれぞれのコールバックで返されるものです。
typedefstruct
{
intreason ;
XEvent∗event ;
Widgetwidget ;
char∗data ;
char∗callbackstruct ;
} XmRowColumnCallbackStruct ;
reasonコールバックが起動された理由を示します。
eventコールバックを引き起こした XEvent を指します。
以下のフィールドは、コールバックのリーズンが XmCR_ACTIVATE である時のみ適用されます。 他のすべてのコールバックリーズンに対しては、これらのフィールドは NULL に設定されます。 XmCR_ACTIVATE コールバックリーズンは、アプリケーションが、独立した RowColumn 項目で登録された動作中のコールバックをオーバーライドするエントリコールバックを供給した時のみ、生成されます。
widgetアクティブな RowColumn 項目の widget ID が設定されます。
dataRowColumn 項目の動作中のコールバックが登録されたとき、アプリケーションが供給する client-data の値を含みます。
callbackstructRowColumn 項目の動作中のコールバックによって生成されたコールバックの構造体を指します。
動作
RowColumn widget の動作はその型 (MenuBar、Popup MenuPane 等) および、RowColumn widget が属するメニューシステム (Pulldown、Popup、または Option) の型に依存します。 特定のマウスのボタンは XmNwhichButton リソースに依存します。
デフォルトの MenuBar
<Btn1Down>:
MenuBar ボタンのどれかでボタンイベントが発生すると、MenuBar が (それまでアームされていなければ) アームされ、選択されたボタンに関連するサブメニューが表示されます。 マウスを動かすことによって、ユーザは MenuBar に関連した MenuPane にアクセスすることができます。
ボタンイベントが MenuBar ボタンのいずれにも発生せず、かつ、MenuBar が既にアームされている時は、MenuBar はディスアームされ、表示されていた MenuPane は非表示となります。 MenuBar がまだアームされていなければ、何も起こりません。
<Btn1Up>:
MenuBar がアームされていれば、このイベントは表示されていたすべての MenuPane を非表示とし、メニューバーをディスアームします。
デフォルトの OptionMenu
<Btn1Down>:
選択された領域でこのイベントが発生すると、Pulldown MenuPane が表示されます。 選択された領域外でこのイベントが発生し、かつ、MenuPane が既に表示されている場合は、 Pulldown MenuPane は非表示となります。
<Btn1Up>:
Pulldown MenuPane が表示されている時にこのイベントが発生すると、表示されていた Pulldown MenuPane が非表示となります。
<Return>:
選択された領域にフォーカスが設定されているときに このキーが押されると、Pulldown MenuPane が表示されます。
Popup MenuPane からのデフォルトの Pulldown MenuPane
<Btn3Down>:
このイベントが発生すると、メニューシステムはトラバースモードを無効にし、再度ドラッグモードになります。 ボタン押下イベントの発生した場所に応じて、表示されていた MenuPane の一部が非表示となります。
<Btn3Up>:
MenuPane の子 gadget でこのイベントが発生すると、その子 gadget はアクティブになります。 子が CascadeButton (widget あるいは gadget) でない時は、表示されていたすべての MenuPane が非表示となります。 子が CascadeButton (widget あるいは gadget) であれば、関連するサブメニューが表示され、トラバースが使用可能になります。 子 gadget の外でイベントが発生した場合は、表示されているすべての MenuPane が非表示となります。
<Return>:
MenuPane の子 gadget にフォーカスが設定されているときこのキーが入力されると、その子 gadget がアクティブになります。 子が CascadeButton (widget あるいは gadget) でない時は、さらに、表示されているすべての MenuPane が非表示となります。 子が CascadeButton (widget あるいは gadget) であれば、関連するサブメニューが表示され、かつ、トラバースモードが有効になります。
<Escape>:
表示されているすべての MenuPane を非表示とします。
<Right>:
現在フォーカスされている項目が CascadeButtonGadget であると、これが関連する Pulldown MenuPane を表示し、その中で最初にアクセスが可能な項目をハイライト表示とします。
<Left>:
他の MenuPane のサブメニューである MenuPane でこのイベントが発生すると、最後の MenuPane が非表示となり、フォーカスは直前の MenuPane に移動します。
<Up>:
フォーカスを直前のメニュー項目に移します。 直前のメニュー項目は、現在フォーカスされている widget に先立って作られた widget として定義されています。 必要な場合はラッピングが起こります。
<Down>:
フォーカスを次のメニュー項目に移します。 次のメニュー項目は、現在フォーカスされている widget より後に作られた widget として定義されています。 必要な場合はラッピングが起こります。
MenuBar あるいは OptinMenu からのデフォルトの Pulldown MenuPane
<Btn1Down>:
このイベントが発生すると、メニューシステムはトラバースモードを無効にして、ドラッグモードにはいります。 ボタン押下イベントの発生した場所に応じて、表示されている MenuPane の一部が非表示となります。
<Btn1Up>:
MenuPane の子 gadget でこのイベントが発生すると、その子 gadget はアクティブになります。 子が CascadeButton (widget あるいは gadget) でない時は、さらに、表示されているすべての MenuPane が非表示となります。 子が CascadeButton (widget あるいは gadget) であれば、関連するサブメニューが表示され、かつ、トラバースモードが有効となります。 子 gadget の外でイベントが発生した場合は、表示されているすべての MenuPane が非表示となります。
<Return>:
MenuPane の子 gadget にフォーカスが設定されていると、指定した子がアクティブになります。 子が CascadeButton (widget あるいは gadget) でない時は、さらに、表示されているすべての MenuPane が非表示となります。 子が CascadeButton (widget あるいは gadget) であれば、関連するサブメニューが表示され、かつ、トラバースモードが有効となります。
<Escape>:
表示されているすべての MenuPane を非表示にします。
<Right>:
現在フォーカスされている項目が CascadeButtonGadget であると、関連する Pulldown MenuPane を表示し、その中で最初にアクセスが可能な項目をハイライト表示にします。 現在フォーカスされている項目が CascadeButton でない場合は、表示されている MenuPane が非表示となり、次の MenuBar の項目と関連するトップレベルの Pulldown MenuPane が表示されます。
<Left>:
他の MenuPane のサブメニューである MenuPane でイベントが発生すると、最後の MenuPane が非表示となり、フォーカスが直前の MenuPane に移動します。 直接 MenuBar とコネクトされている MenuPane でこのイベントが発生すると、表示されている MenuPane が非表示となり、直前のメニューバーの項目と関連するトップレベルの Pulldown MenuPane が表示されます。
<Up>:
フォーカスを直前のメニュー項目に移します。 直前のメニュー項目は、現在フォーカスされている widget に先立って作られた widget として定義されています。 必要な場合はラッピングが起こります。
<Down>:
フォーカスを次のメニュー項目に移します。 次のメニュー項目は、現在フォーカスされている widget より後に作られた widget として定義されています。 必要な場合はラッピングが起こります。
WorkArea
<Btn1Down>
子 gadget の中でボタンが押されると、その gadget は非表示となります。
<Btn1Up>
子 gadget の中でボタンが押されると、その gadget は非表示となります。
デフォルトのトランスレーション
以下は OptionMenu に関するデフォルトのトランスレーションです。
<BtnDown>:PopupBtnDown()
<BtnUp>:PopupBtnUp()
<Key>Return:MenuGadgetReturn()
以下は Popup MenuPane に関するデフォルトのトランスレーションです。
<BtnDown>:PopupBtnDown()
<BtnUp>:PopupBtnUp()
<Key>Return:MenuGadgetReturn()
<Key>Escape:MenuGadgetEscape()
<Unmap>:MenuUnmap()
<FocusIn>:MenuFocusIn()
<FocusOut>:MenuFocusOut()
<EnterWindow>: MenuEnter()
<Key>Left:MenuGadgetTraverseLeft()
<Key>Right:MenuGadgetTraverseRight()
<Key>Up:MenuGadgetTraverseUp()
<Key>Down:MenuGadgetTraverseDown()
以下は Pulldown MenuPane に関するデフォルトのトランスレーションです。
<BtnDown>:PulldownBtnDown()
<BtnUp>:PulldownBtnUp()
<Key>Return:MenuGadgetReturn()
<Key>Escape:MenuGadgetEscape()
<Unmap>:MenuUnmap()
<FocusIn>:MenuFocusIn()
<FocusOut>:MenuFocusOut()
<EnterWindow>: MenuEnter()
<Key>Left:MenuGadgetTraverseLeft()
<Key>Right:MenuGadgetTraverseRight()
<Key>Up:MenuGadgetTraverseUp()
<Key>Down:MenuGadgetTraverseDown()
以下は MenuBar に関するデフォルトのトランスレーションです。
<BtnDown>:MenuBarBtnDown()
<BtnUp>:MenuBarBtnUp()
<Unmap>:MenuUnmap()
<FocusIn>:MenuFocusIn()
<FocusOut>:MenuFocusOut()
<EnterWindow>: MenuEnter()
以下は WorkArea に関するデフォルトのトランスレーションです。
<Btn1Down>:WorkAreaBtnDown()
<Btn1Up>:WorkAreaBtnUp()
キーボードトラバース
WorkArea 内のキーボードトラバースの情報は、XmManager(3XM) および、その動作とデフォルトのトランスレーションに関する節を参照してください。
関連事項
Composite(3XM), Constraint(3XM), XmCreateRowColumn(3XM), XmCreateMenuBar(3XM), XmCreateOptionMenu(3XM), XmCreatePopupMenu(3XM), XmCreatePulldownMenu(3XM), XmCreateRadioBox(3XM), XmGetMenuCursor(3XM), XmLabel(3XM), XmManager(3XM), XmOptionButtonGadget(3XM), XmOptionLabel(3XM), XmSetMenuCursor(3XM), XmMenuPosition(3XM), XmUpdateDisplay(3XM)
NEWS-OSRelease 4.1C