Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmPushButton(3XM) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Core(3XM)

XmCreatePushButton(3XM)

XmLabel(3XM)

XmCreatePrimitive(3XM)

XmRowColumn(3XM)

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

名称

XmPushButton — PushButton widget クラス

形式

#include <Xm/PushB.h>

解説

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

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

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

クラス

PushButton は Core、XmPrimitive、XmLabel のクラスより動作とリソースを継承します。

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

クラスの名称は XmPushButton です。

新しいリソース

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

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

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

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

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

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

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

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

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

継承されるリソース

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

XmLabel リソース一覧
名称 クラス 型 デフォルト アクセス
XmNaccelerators XmCAccelerators 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 dynamic CSG
XmNmarginHeight XmCMarginHeight short 2 CSG
XmNmarginLeft XmCMarginLeft short dynamic 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

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 XmNTraversalOn 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;
} XmAnyCallbackStruct;

reasonコールバックが呼び出された理由を示します。

eventコールバックを起こす原因となった XEvent を示します。 Primitive リソースの XmNtraversalOn が True の時にコールバックが起こるか、コールバックが ArmAndActivate の動作ルーチンを通ってアクセスされたならば、 XmNactivateCallback に関してこのイベントは NULL です。

動作

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

デフォルトの動作

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

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

(ボタンの外で) : この動作は、XmNdisarmCallback に対するコールバックを呼び出します。

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

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

デフォルト PopupMenu システム

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

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

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

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

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

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

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

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

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

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

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

デフォルトのトランスレーション

メニューシステムの中以外では、次のものが PushButton のデフォルトのトランスレーションとなります。

<Btn1Down>:Arm()
<Btn1Up>:Activate()
Disarm()
<Key>Return:ArmAndActivate()
<Key>space:ArmAndActivate()
<EnterWindow>: Enter()
<LeaveWindow>: Leave()
メニューシステム中では PushButton のデフォルトのトランスレーションは次のようになります。

<BtnDown>:BtnDown()
<BtnUp>:BtnUp()
<EnterWindow>: Enter()
<LeaveWindow>: Leave()
<Key>Return:KeySelect()
<Key>Escape:MenuShellPopdownDone()

キーボードトラバース

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

<Unmap>:Unmap()
<FocusOut>:FocusOut()
<FocusIn>:FocusIn()
<Key>space:Noop()
<Key>Left:MenuTraverseLeft()
<Key>Right:MenuTraverseRight()
<Key>Up:MenuTraverseUp()
<Key>Down:MenuTraverseDown()
<Key>Home:Noop()

関連事項

Core(3XM), XmCreatePushButton(3XM), XmLabel(3XM), XmCreatePrimitive(3XM), XmRowColumn(3XM)

NEWS-OSRelease 4.2.1R

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