Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Object(3XM)

RectObj(3XM)

XmCreatePushButtonGadget(3XM)

XmGadget(3XM)

XmLabelGadget(3XM)

XmRowColumn(3XM)

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

名称

XmPushButtonGadget — PushButtonGadget widget クラス

形式

#include <Xm/PushBG.h>

解説

PushButtonGadget はアプリケーションにコマンドを発します。 PushButtonGadget は、ボーダの影によって囲まれたアイコンやテキストラベルから構成されます。 PushButtonGadget が選択されれば、影は PushButtonGadget が押されたことを示す外観に変わります。 PushButtonGadget が選択されなければ、影は PushButtonGadget が押されなかったことを示す外観に変わります。

PushButtonGadget の動作はアクティブなマウスボタンによって異なります。 アクティブなマウスボタンは親 widget によって定められます。 通常は、マウスボタン 1 は PushButtonGadget をアームしたり、アクティブにするのに使用されます。 しかし、PushButtonGadget がメニューの中にある場合は、使用されるマウスボタンは XmNrowColumnType や XmNwhichButton といった RowColumn のリソースによって定められます。

2 番目の影の太さは XmNshowAsDefault リソースを使って指定されます。 太さが 0 でなければ、Label のリソースである XmNmarginLeft、XmNmarginRight、XmNmarginTop、XmNmarginBottom は 2 番目の影を調整するよう変更されます。

クラス

PushButtonGadget は Object、RectObj、XmGadget、XmLabelGadget のクラスより動作とリソースを継承します。

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

クラスの名称は XmPushButtonGadget です。

新しいリソース

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

XmPushButtonGadget リソース一覧
名称 クラス 型 デフォルト アクセス
XmNactivateCallback XmCCallback XtCallbackList NULL C
XmNarmCallback XmCCallback caddr_t NULL C
XmNarmColor XmCArmColor Pixel dynamic CSG
XmNarmPixmap XmCArmPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNdisarmCallback XmCCallback caddr_t NULL C
XmNfillOnArm XmCFillOnArm Boolean True CSG
XmNshowAsDefault XmCShowAsDefault short 0 CSG

XmNactivateCallback
PushButtonGadget がアクティブになった時に呼び出されるコールバックのリストを指定します。 マウスポインタが の PushButtonGadget 中にある時にユーザがアクティブなマウスボタンを押して離すと PushButtonGadget はアクティブにされます。 PushButtonGadget をアクティブにすることは、またディスアームもします。 このコールバックのリーズンは XmCR_ARM です。

XmNarmCallback
PushButtonGadget がアームされた時に呼び出されるコールバックのリストを指定します。 マウスポインタが PushButtonGadget の中にある時にユーザがアクティブなマウスボタンを押すと PushButtonGadget はアームされます。 このコールバックのリーズンは XmCR_ARM です。

XmNarmColor
アームされたボタンの色を指定します。 このリソースが有効となるには XmNfillOnArm が True に設定されていなければなりません。 カラーディスプレイのデフォルトはバックグラウンドの色と下側の影の色の中間の色です。 モノクロームディスプレイでは、デフォルトはフォアグラウンドの色に設定され、ボタンがアームされるとラベル中のすべてのテキストはバックグラウンドの色となります。

XmNarmPixmap
XmNlabeltype が XmPIXMAP であり、PushButtonGadget がアームされた場合に、ボタンフェースとして使用されるピックスマップを指定します。 PushButtonGadget がメニュー中にない時はこのリソースは使用できません。

XmNdisarmCallback
PushButtonGadget がディスアームされた時に呼び出されるコールバックのリストを指定します。 マウスポインタがその gadget の中にある時に、ユーザがアクティブなマウスボタンを押して離すと PushButtonGadget はディスアームされます。 このコールバックのリーズンは XmCR_DISARM です。

XmNfillOnArm
ボタンがアームされ、このリソースが True に設定されている時に、PushButtonGadget に XmNarmColor で指定した色でボタンのバックグラウンドを塗らせます。 False に設定されているなら、上側と下側の影の色だけが変更されます。 PushButtonGadget がメニュー中にある時にこのリソースは無視され、False であるとみなされます。

XmNshowAsDefault
PushButtonGadget がデフォルトボタンであることを視覚的に示すために、PushButtonGadget の回りに描かれる 2 番目の影の太さを指定します。 影とデフォルトの影の間の長さは両方の影の和に等しくなります。 デフォルト値は 0 です。 この値が 0 でない時に、Label のリソースである XmNmarginLeft、XmNmarginRight、XmNmarginTop、XmNmarginBottom は 2 番目の影を調整するよう変更されます。 このリソースは PushButtonGadget がメニューの中にある時は、使用できません。

継承されるリソース

PushButtonGadget は次のスーパークラスから動作とリソースを継承します。 これらのリソースの完全な解説は、そのスーパークラスのマニュアルページを参照してください。

XmLabelGadget リソース一覧
名称 クラス 型 デフォルト アクセス
XmNaccelerator XmCAccelerator String NULL CSG
XmNacceleratorText XmCAcceleratorText XmString NULL CSG
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 0 CSG
XmNmarginHeight XmCMarginHeight short 2 CSG
XmNmarginLeft XmCMarginLeft short 0 CSG
XmNmarginRight XmCMarginRight short 0 CSG
XmNmarginTop XmCMarginTop short 0 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
XmNhilightOnEnter XmCHilightOnEnter Boolean False CSG
XmNhilightThickness XmCHilightThickness 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 を示します。 Primitive のリソースの XmNtraversalOn が True の時にコールバックが起こるか、コールバックが ArmAndActivate の動作ルーチンを通ってアクセスされたならば、XmNactivateCallback に関してこのイベントは NULL です。

動作

PushButtonGadget は、メニューシステムの一部でなければ、デフォルトの動作と関連しています。 メニューシステムでは RowColumn の親がどのマウスボタンが使用されるかを定めます。

デフォルトの動作

<Btn1Down>:
この動作によって PushButtonGadget がアームされます。 影はアームされた状態で描かれ、XmNfillOnArm が True に設定されていれば、ボタンは XmNarmColor によって指定された色で塗られます。 XmNarmCallback に対するコールバックも呼び出されます。

<Btn1Up>:
(ボタン中で) : アームされていない状態で影を再描画します。 XmNfillOnArm が True に設定されていれば、バックグラウンドの色はアームされてない色に戻ります。 XmNactivateCallback に対するコールバックが呼び出され、続いて XmNdiarmCallback に対するコールバックが呼び出されます。

(ボタンの外で) : XmNdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタンが押され、カーソルが gadget のウィンドウから離れる時、影はアームされていない状態で再描画されます。 また、XmNfillOnArm が True に設定されていれば、バックグラウンドの色はアームされない色に戻ります。

<Enter Window>:
ボタンが押され、カーソルが 1 度離れてから gadget のウィンドウに再び入った時、影はアームされた状態で再描画されます。 また、XmNfillOnArm が True に設定されていれば、ボタンは XmarmColor で指定された色で塗られます。

デフォルト PopupMenu システム

<Btn3Down>:
この動作はメニューでのキーボードトラバースを無効にし、ユーザをドラッグモードに戻します。 ドラッグモードはメニューをマウスを使用して操作するモードです。 影はアームされた状態で描かれます。 そして、XmNarmCallback に対するコールバックが呼び出されます。

<Btn3Up>:
PushButtonGadget をアクティブにし、メニューを表示しないようにします。 XmNactivateCallback に対するコールバックが呼び出され、続いて XmNdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタン 3 が押され、カーソルが widget のウィンドウから離れる時、PushButtonGadget は影なしで再描画されます。 XmNdisarmCallback に対するコールバックが呼び出されます。 メニュー中でキーボードトラバースが可能ならばこのイベントは無視されます。

<Enter Window>:
ボタン 3 が押され、カーソルが widget のウィンドウに入った時、影はアームされた状態で描かれます。 XmNdisarmCallback に対するコールバックが呼び出されます。 メニュー中でキーボードトラバースが可能ならばこのイベントは無視されます。

<Key>Return:
メニュー中でキーボードトラバースが可能ならば、PushButtonGadget をアクティブにし、メニューを表示しないようにします。 XmNactivateCallback に対するコールバックが呼び出され、続いて XmNdisarmCallback に対するコールバックが呼び出されます。

デフォルト PulldownMenu システムおよび OptionMenu システム

<Btn1Down>:
この動作はメニューでのキーボードトラバースを無効にし、ユーザをドラッグモードに戻します。 ドラッグモードはメニューをマウスを使用して操作するモードです。 影はアームされた状態で描かれます。 そして、XmNarmCallback に対するコールバックが呼び出されます。

<Btn1Up>:
PushButtonGadget をアクティブにし、メニューを表示しないようにします。 XmNactivateCallback に対するコールバックが呼び出され、続いて XmNdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタン 1 が押され、カーソルが widget のウィンドウから離れる時、PushButtonGadget は影なしで再描画されます。 XmNdisarmCallback に対するコールバックが呼び出されます。 メニュー中でキーボードトラバースが可能ならばこのイベントは無視されます。

<Enter Window>:
ボタン 1 が押され、カーソルが widget のウィンドウに入った時、影はアームされた状態で描かれます。 XmNdisarmCallback に対するコールバックが呼び出されます。 メニュー中でキーボードトラバースが可能ならばこのイベントは無視されます。

<Key>Return:
メニュー中でキーボードトラバースが可能ならば、PushButtonGadget をアクティブにし、メニューを表示しないようにします。 XmNactivateCallback に対するコールバックが呼び出され、続いて XmNdisarmCallback に対するコールバックが呼び出されます。

キーボードトラバース

メニューシステム中以外でのキーボードトラバースは XmGadget(3XM) のマニュアルページと動作とデフォルトのトランスレーションの項を参照してください。 メニューシステム中でのキーボードトラバースは XmRowColumn(3XM) を参照してください。

関連事項

Object(3XM), RectObj(3XM), XmCreatePushButtonGadget(3XM), XmGadget(3XM), XmLabelGadget(3XM), XmRowColumn(3XM)

NEWS-OSRelease 4.1C

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