Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmCascadeButtonGadget(3XM) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Object(3XM)

RectObj(3XM)

XmCascadeButtonHighlight(3XM)

XmCreateCascadeButtonGadget(3XM)

XmCreatePulldownMenu(3XM)

XmCreatePopupMenu(3XM)

XmCreateOptionMenu(3XM)

XmGadget(3XM)

XmLabelGadget(3XM)

XmRowColumn(3XM)

XmCascadeButtonGadget(3XM)  —  NEWS-OS Programmer’s Manual

名称

XmCascadeButtonGadget — CascadeButtonGadget widget クラス

形式

#include <Xm/CascadeBG.h>

解説

CascadeButtonGadget は、2 つの MenuPane どうしまたは OptionMenu を MenuPane にリンクします。

これはメニューシステムの中で用いられ、親として RowColumn をもち、その RowColumn の XmNrowColumnType が XmMENU_POPUP、XmMENU_PULLDOWN、XmMENU_OPTION のいずれかに設定されていなければなりません。

サブメニューとして Pulldown MenuPane が取り付けられる gadget はこれだけです。 この gadget が PopupMenu、PulldownMenu、OptionMenu のいずれかの内部でアクティブになった時サブメニューが表示されます。 それが Popup または Pulldown MenuPane の中だった時は、その外観はラベルまたはピックスマップと、カスケードインジケータを含むことができます。 OpionMenu の中だった時は、ラベルまたはピックスマップのどちらかのみ含むことができます。

CascadeButtonGadget 関連のデフォルトの動作は、その widget が存在しているメニューシステムのタイプによります。 デフォルトでは、 PulldownMenu または OptionMenu では マウスボタン 1 が CascadeButtonGadget の動作をコントロールし、 PopupMenu ではマウスボタン 3 が CascadeButtonGadget の動作をコントロールします。 実際に用いられるマウスボタンは親である RowColumn によって決められます。

CascadeButtonGadget の外観は大多数の他のボタン gadget とは異なります。 ボタンがアームされた時、その外観は 2 次元から 3 次元に変わり、取り付けられたサブメニューを表示します。 サブメニューがないときは、その外観が変わるだけです。

ユーザがマウスポインタを Pulldown または Popup MenuPane の中にある CascadeButtonGadget の中に移動したことによりその gadget がアームされたときは、すぐにはサブメニューを表示しません。 少しの時間だけ表示するのを待ち、 そのアームが一時的なものかどうか (つまりユーザがただその gadget を通り過ぎようとしているだけなのか)、 それとも本当にユーザがサブメニューを表示することを望んでいるのかを確かめます。 この遅延時間は XmNmappingDelay によって設定されます。

CascadeButtonGadget はキーボードから gadget をアクティブにする仕組みをひとつだけ用意しています。 これはキーボードニーモニックといわれます。 gadget に対してニーモニックが指定されていると、 ユーザは CascadeButtonGadget が表示されている時に ニーモニックのキーをタイプするだけで CascadeButtonGadget をアクティブにすることができます。 ニーモニックはキーボードインターフェースを用いてメニューを操作する時によく用いられます。

Pulldown または Popup MenuPane の中にあり、サブメニューが取り付けられている時、XmNmarginBottom、XmNmarginRight、XmNmarginTop は拡大されて XmNcascadePixmap の位置を調整します。

クラス

CascadeButtonGadget は Object、RectObj、XmGadget、XmLabelGadget クラスから動作とリソースを継承します。

クラスポインタは xmCascadeButtonGadgetClass です。

クラス名は XmCascadeButtonGadget です。

新しいリソース

次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまたこの widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。

XmCascadeButtonGadget
名称 クラス 型 デフォルト アクセス
XmNactivateCallback XmCCallback XtCallbackList NULL C
XmNcascadePixmap XmCPixmap Pixmap "menu_cascade" CSG
XmNcascadingCallback XmCCallback XtCallbackList NULL C
XmNmappingDelay XmCMappingDelay int 100 CSG
XmNsubMenuId XmCMenuWidget Widget 0 CSG

XmNactiveCallback
ユーザが CascadeButtonGadget をアクティブにし、かつポップアップするサブメニューが取り付けられていないときに呼び出されるコールバックのリストを指定します。 アクティブにするには、マウスのボタンを離すか gadget についてのニーモニックをタイプします。 これに用いられるマウスボタンは親である RowColumn の情報によって決まります。 このコールバックによって送られるリーズンは XmCR_ACTIVATE です。

XmNcascadePixmap
CascadeButtonGadget が Popup または Puldown MenuPane の中で用いられ、しかもサブメニューが取り付けられているときに gadget の右端に表示されるカスケードピックスマップを指定します。 LabelGadget クラスのリソースである XmNmarginRight、XmNmarginTop、XmNmarginBottom は、カスケードピックスマップのための場所を確保するために変更されることがあります。 デフォルトのカスケードピックスマップは右を指している矢印です。

XmNcascadingCallback
CascadeButtonGadget についてのサブメニューがマップされる直前に呼び出されるコールバックのリストを指定します。 このコールバックによって送られるリーズンは XmCR_CASCADING です。

XmNmappingDelay
CascadeButtonGadget がアームされてからそのサブメニューがマップされるまでの間の時間をミリ秒単位で指定します。 この遅延は gadget が Popup または Pulldown MenuPane の中にある時だけ用いられます。

XmNsubMenuId
この CascadeButtonGadget に関連する Pulldown MenuPane の widget ID を指定します。 指定された MenuPane は、CascadeButtonGadget がアームされたときに表示されます。 この MenuPane は、用いられているメニューのタイプにあった血統 (parentage) で作られていなければなりません。 メニューシステムに関する詳細は、XmCreatePulldownMenu(3XM)、XmCreatePopupMenu(3XM)、XmCreateOptionMenu(3XM) を参照してください。

継承されるリソース

CascadeButtonGadget は、次のスーパークラスから動作とリソースを継承しています。 これらのリソースに関する詳細は、そのスーパークラスのマニュアルページを参照してください。

XmLabelGadget リソース一覧
名称 クラス 型 デフォルト アクセス
XmNalignment XmCAlignment unsigned char XmALIGNMENT_CENTER CSG
XmNfontList XmCFontList XmFontList "Fixed" CSG
XmNlabelInsensitivePixmap XmCLabelInsensitivePixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNlabelPixmap XmCPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNlabelString XmCXmString XmString NULL CSG
XmNlabelType XmCLabelType unsigned char XmSTRING CSG
XmNmarginBottom XmCMarginBottom short dynamic CSG
XmNmarginHeight XmCMarginHeight short 2 CSG
XmNmarginLeft XmCMarginLeft short 0 CSG
XmNmarginRight XmCMarginRight short dynamic CSG
XmNmarginTop XmCMarginTop short dynamic CSG
XmNmarginWidth XmCMarginWidth short 2 CSG
XmNmnemonic XmCMnemonic char ‘\0’ CSG
XmNrecomputeSize XmCRecomputeSize Boolean True CSG
XmNstringDirection XmCStringDirection XmStringDirection XmSTRING_DIRECTION_L_TO_R CSG

XmGadget リソース一覧
名称 クラス 型 デフォルト アクセス
XmNhelpCallback XmCCallback XtCallbackList NULL C
XmNhighlightOnEnter XmCHighlightOnEnter Boolean False CSG
XmNhighlightThickness XmCHighlightThickness short 0 CSG
XmNshadowThickness XmCShadowThickness short 2 CSG
XmNtraversalOn XmCTraversalOn Boolean False CSG
XmNunitType XmCUnitType unsigned char XmPIXELS CSG
XmNuserData XmCUserData caddr_t NULL CSG

RectObj リソース一覧
名称 クラス 型 デフォルト アクセス
XmNancestorSensitive XmCSensitive Boolean XtCopyFromParent CSG
XmNborderWidth XmCBorderWidth Dimension 1 CSG
XmNheight XmCHeight Dimension 0 CSG
XmNsensitive XmCSensitive Boolean True CSG
XmNwidth XmCWidth Dimension 0 CSG
XmNx XmCPosition Position 0 CSG
XmNy XmCPosition Position 0 CSG

Object リソース一覧
名称 クラス 型 デフォルト アクセス
XmNdestroyCallback XmCCallback XtCallbackList NULL C

コールバックされる情報

各コールバックでは以下の構造体が返されます。

typedef struct
{
intreason;
XEvent∗ event;
} XmAnyCallbackStruct;

reasonなぜコールバックが起動されたのかを示します。

eventコールバックが引き起こした XEvent を指します。 また、このコールバックが XEvent のためにトリガされない場合は、NULL が返ります。

動作

CascadeButtonGadget 関連のデフォルトの動作は、 ボタンが PopupMenu システムの中にあるのか、 MenuBar の中の Pulldown MenuPane の中にあるのか、 あるいは OptionMenu システムの中にあるのかによって異なります。 親である RowColumn は、XmNrowColumnType と XmNwhichButton というリソースによってどのマウスボタンを用いるかを決めます。

PopupMenu System でのデフォルト

Btn3Down<EnterWindow>:
CasaceButtonGadget をアームし、短い遅延時間の後、それに関連したサブメニューを表示します。

Btn3Down<LeaveWindow>:
マウスポインタがその CascadeButtonGadget に関連したサブメニューの中に入っていったかどうかで異なります。 マウスポインタがサブメニューの中に入っていった場合は、このイベントは無視されます。 でなければ、CascadeButtonGadget はディスアームされ、サブメニューは表示されなくなります。

<Btn3Up>:
CascadeButtonGadget に取り付けられているサブメニューが表示され、そのメニューの中でのキーボードトラバースが可能になります。 CascadeButton にサブメニューが取り付けられていない場合は、このイベントで CascadeButton がアクティブになり、メニューは表示されなくなります。

<Btn3Down>:
このメニューに対するトラバースが禁止され、ユーザがメニューをマウスで操作するドラッグモードに戻します。 CascadeButtonGadget に関連したサブメニューが表示されます。

<Key>Return:
そのメニューの中でのキーボードトラバースが可能なら、 このイベントによって、CascadeButtonGadget に取り付けられたサブメニューが表示されます。 CascadeButton にサブメニューが取り付けられていない場合は、 このイベントで CascadeButton がアクティブになり、 メニューは表示されなくなります。

MenuBar から、または OptionMenu からの Pulldown MenuPane のデフォルト

Btn1Down<EnterWindow>:
CasaceButtonGadget をアームし、短い遅延時間の後、それに関連したサブメニューを表示します。

Btn1Down<LeaveWindow>:
このイベントは、マウスポインタがサブメニューの中に入っていった場合は無視されます。 それ以外の時は CascadeButtonGadget はディスアームされ、サブメニューが表示されなくなります。

<Btn1Up>:
このイベントは、 CascadeButtonGadget に取り付けられたサブメニューを表示し、そのメニュー内でのキーボードトラバースが可能になります。 CascadeButton にサブメニューが取り付けられていない場合は、このイベントで CascadeButton がアクティブになり、メニューは表示されなくなります。

<Btn1Down>:
このイベントは、このメニューに対するトラバースを禁止し、ユーザはメニューをマウスで操作するドラッグモードに戻ります。 この CascadeButtonGadget に関連したサブメニューが表示されます。

<Key>Return:
そのメニュー内でのキーボードトラバースが可能な場合、 このイベントによって、 CascadeButtonGadget に取り付けられたサブメニューが表示されます。 CascadeButton にサブメニューが取り付けられていない場合は、 このイベントによって CascadeButton がアクティブになり、 メニューは表示されなくなります。

OptionMenu でのデフォルト

<Btn1Down>:
このイベントは、CascadeButtonGadget をアームし、サブメニューを表示します。

<Key>Return:
サブメニューを表示して、このメニュー内でのトラバースを可能にします。

キーボードトラバース

キーボードトラバースに関する情報は、XmRowColumn(3XM) とそれの動作とデフォルトのトランスレーションに関するマニュアルページを参照してください。

関連事項

Object(3XM), RectObj(3XM), XmCascadeButtonHighlight(3XM), XmCreateCascadeButtonGadget(3XM), XmCreatePulldownMenu(3XM), XmCreatePopupMenu(3XM), XmCreateOptionMenu(3XM), XmGadget(3XM), XmLabelGadget(3XM), XmRowColumn(3XM)

NEWS-OSRelease 4.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026