Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Core(3XM)

XmCreateToggleButton(3XM)

XmLabel(3XM)

XmPrimitive(3XM)

XmRowColumn(3XM)

XmToggleButtonGetState(3XM)

XmToggleButtonSetState(3XM)

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

名称

XmToggleButton — ToggleButton widget クラス

形式

#include <Xm/ToggleB.h>

解説

ToggleButton は、アプリケーションの内部に一時的でない状態のデータを設定します。 通常この widget は、右側にテキストかピックスマップを伴うインジケータ (正方形もしくはダイアモンド) によって構成されます。 また、インジケータなしで、テキストあるいは、ピックスマップのみからなることもあります。

トグルのグラフィック表示は、1-of-many 選択状態か、N-of-many 選択状態かを表示します。 トグルインジケータが表示されている場合、正方形のインジケータは、N-of-many 選択状態を表し、ダイアモンドのインジケータは、1-of-many 選択状態を表します。

ToggleButton は選択状態か、非選択状態かを表示します。 ラベルとインジケータの場合には、塗りつぶされていないインジケータ (正方形またはダイアモンド) は、ToggleButton が選択されていないことを示し、塗りつぶされたインジケータは ToggleButton が選択されていることを示します。 ピックスマップトグルの場合には、選択 / 非選択状態を表示するために、異なるピックスマップが使われます。

通常、マウスボタン 1 はボタンをアームし、アクティブにするために使います。 ToggleButton がメニューの中にある場合には、使われるマウスボタンは、RowColumn リソース XmNrowColumnType と XmNwhichButton により決定されます。

生成時にトグルインジケータを保持するときには、Label リソース XmNmarginLeft が増加する場合があります。

クラス

ToggleButton は、Core、XmPrimitive、XmLabel の各クラスから動作とリソースを継承します。

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

クラス名は、XmToggleButton です。

新しいリソース

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

XmToggleButton リソース一覧
名称 クラス 型 デフォルト アクセス
XmNarmCallback XmCArmCallback XtCallbackList NULL C
XmNdisarmCallback XmCDisarmCallback XtCallbackList NULL C
XmNfillOnSelect XmCFillOnSelect Boolean True CSG
XmNindicatorOn XmCIndicatorOn Boolean True CSG
XmNindicatorType XmCIndicatorType unsigned char XmN_OF_MANY CSG
XmNselectColor XmCSelectColor Pixel dynamic CSG
XmNselectInsensitivePixmap XmCSelectInsensitivePixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNselectPixmap XmCSelectPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNset XmCSet Boolean False CSG
XmNspacing XmCSpacing short 4 CSG
XmNvalueChangedCallback XmCValueChangedCallback XtCallbackList NULL C
XmNvisibleWhenOff XmCVisibleWhenOff Boolean True CSG

XmNarmCallback
ToggleButton がアームされたときに呼び出される コールバックのリストを指定します。 この widget をアームするためには、ポインタが ToggleButton の内部にあるときにアクティブマウスボタンを押してください。 このコールバックに関して、リーズンは XmCR_ARM です。

XmNdisarmCallback
ToggleButton がディスアームされたときに呼び出される コールバックのリストを指定します。 この widget をディスアームするためには、ポインタが ToggleButton の内部にあるときにアクティブマウスボタンを押してから放してください。 この widget は、ユーザが widget の外に動かし、ポインタが widget の外にあるときにマウスボタンを放したときにもディスアームされます。 このコールバックに関して、リーズンは XmCR_DISARM です。

XmNfillOnSelect
True に設定されている場合には XmNselectColor で指定された色でインジケータを塗りつぶし、上下の影の色を切り替えます。 それ以外の場合には上下の影の色を切り替えるだけです。

XmNindicatorOn
True に設定されている場合に、Toggle インジケータを、トグルテキストもしくはピックスマップの左側に描くことを指定します。 False に設定されている場合、インジケータに対するスペースは割り当てられず、インジケータは表示されません。 XmNindicatorOn が True の場合には、インジケータの影は、 ボタンが選択されたり、選択が解除されるときに切り替えられますが、widget 自体のまわりの影は切り替えられません。 しかし、XmNindicatorOn が False の場合には、トグルが選択されたり、選択が解除されるときに、widget 自体のまわりの影が切り替わります。

XmNindicatorType
インジケータが、1_of インジケータか N_of インジケータかを指定します。 1_of インジケータに対しては、その値は XmONE_OF_MANY になります。 N_of インジケータに対しては、その値は XmN_OF_MANY になります。 N_of_many は正方形のインジケータです。 1_of_many はダイアモンドのインジケータです。 このリソースは表示のみを指定し、何の動作も要求しません。 ToggleButton が RadioBox の中にあるときには、親 widget が、このリソースを強制的に XmONE_OF_MANY に設定します。

XmNselectColor
これが設定されている場合、アプリケーションが、正方形もしくはダイアモンドのインジケータの中央を何色で塗るかを指定できるようにします。 この色がインジケータの上部もしくは下部の影の色と同じ場合には、影と塗りつぶしの間に 1 ピクセル分の幅のマージンがあけられます。 それ以外の場合には、完全に塗りつぶされます。 カラーディスプレイに関するこのリソースのデフォルトは、バックグラウンドと下部の影の色との中間の色です。 モノクロームディスプレイに関するデフォルトは、フォアグラウンドの色に設定されています。

XmNselectInsensitivePixmap
ToggleButton が選択され、Label リソース XmNlabelType が XmPIXMAP に設定されていて、そのボタンが無効であるときに、ボタンフェースとして使われるピックスマップを指定します。 ToggleButton が選択されていず、ボタンが無効である場合には XmNlabelInsensitivePixmap のピックスマップがボタンフェースとして使われます。

XmNselectPixmap
XmNlabelType が XmPIXMAP で、ToggleButton が選択されている場合、ボタンフェースとして使われるピックスマップを指定します。 ToggleButton が選択されていない場合、Label の XmNlabelPixmap で指定されたピックスマップが使われます。

XmNset
True に設定されている場合、ボタンを選択状態に表示します。 これは、ボタンが最初に表示されたときに、ある条件をアクティブとします。

XmNspacing
トグルインジケータとトグルラベル (テキスト、もしくはピックスマップ) の間のスペース量を指定します。

XmNvalueChangedCallback
ToggleButton 値を変えたときに呼び出されるコールバックのリストを指定します。 この値を変えるためには、ポインタが ToggleButton の内部にあるときにマウスボタンを押してから放してください。 この動作は、また、widget をディスアームします。 このコールバックに関して、リーズンは、XmCR_VALUE_CHANGED です。

XmNvisibleWhenOff
ブール代数値が True ならば、非選択状態のときでもトグルインジケータが表示されることを示します。 ToggleButton がメニューの中にあるときには、親 widget である RowColumn がこのリソースを強制的に False に設定します。 ToggleButon が RadioBox の中にあるときには、親 widget である RadioBox がこのリソースを強制的に True に設定します。

継承されるリソース

ToggleButton は以下のスーパクラスから動作とリソースを継承します。 これらのリソースに関する完全な解説についてはスーパクラスに関するマニュアルページを参照してください。

XmLabel リソース一覧
名称 クラス 型 デフォルト アクセス
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 dynamic 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

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 0 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 ;
Booleanset ;
} XmToggleButtonCallbackStruct ;

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

eventコールバックを呼び出した XEvent を指します。

setコールバックが起こったときの ToggleButton の現在の状態を反映します。 True (選択状態)、False (非選択状態) のどちらかです。

動作

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

デフォルトの動作

<BTN1Down>:
( 設定されていない場合 ): この動作は ToggleButton widget をアームします。 インジケータの影はボタンがくぼんでいるように描かれ、インジケータは XmNselectColor により指定された色により塗りつぶされます。 XmNarmCallback に対するコールバックも呼び出されます。

(設定されている場合): この動作は ToggleButton widget をアームします。 インジケータの影はボタンが突起しているように描かれ、インジケータはバックグラウンドの色で塗りつぶされます。 XmNarmCallback に対するコールバックも呼び出されます。

<BTN1Up>:

(ボタン内で):

(設定されていない場合): この動作は ToggleButton widget を選択します。 視覚的には、アームされたときと同じように表示されます。 XmvalueChangedCallback に対するコールバック、続いて、XmdisarmCallback に対するコールバックが呼び出されます。

(設定されている場合): この動作は ToggleButton widget を非選択にします。 視覚的には、アームされたときと同じように表示されます。 XmvalueChangedCallback に対するコールバック、続いて、XmdisarmCallback に対するコールバックが呼び出されます。

(ボタンの外側で):

ToggleButton の外側でボタンを放した場合には、XmNdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタンが押され、カーソルが widget から出た場合には、視覚的には、以前の押されていない状態に戻ります。

<Enter Window>:
ボタンが押され、カーソルが widget から出て、再び widget に入った場合には、視覚的にはボタンが初めてアームされたときと同じように表示されます。

デフォルト PopupMenu システム

<Btn3Down>:
この動作は、メニューに対するキーボードトラバースを禁止し、ユーザをドラッグモードに戻します。 ドラッグモードというのはマウスを使ってメニューを操作するモードのことです。 この動作は、また、ToggleButton もアームします。 ToggleButton のまわりに影が描かれます。 XmNarmCallback に対するコールバックも呼び出されます。

<Btn3Up>:
(設定されていない場合): この動作は ToggleButton widget を選択します。 インジケータの影はくぼんでいるように描かれ、インジケータは XmNselectColor により指定された色で塗りつぶされます。 そのメニューが非表示となり、 XmvalueChangedCallback に対するコールバック、続いて XmdiarmCallback に対するコールバックが呼び出されます。

(設定されている場合): この動作は ToggleButton widget を非選択にします。 インジケータの影は突起しているように描かれ、インジケータはバックグラウンドの色で塗りつぶされます。 メニューは非表示となり、XmvalueChangedCallback に対するコールバック、続いて XmdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタン 3 を押し、widget ウィンドウの外へカーソルを 動かすことにより ToggleButton のまわりの影を消します。 このイベントは、キーボードトラバースがメニューにおいて可能な場合には、無視されます。

<Enter Window>:
ボタン 3 を押し、widget ウィンドウの中へカーソルを 動かすことにより ToggleButton のまわりに影を掻きます。 このイベントは、キーボードトラバースがメニューにおいて可能な場合には、無視されます。

<Key>Return:
キーボードトラバースがメニューにおいて可能な場合に、 このイベントは ToggleButton を設定または設定解除します。

(設定されていない場合): ToggleButton が設定されます。 インジケータの影はくぼんでいるように描かれ、インジケータは XmNselectColor により指定された色で塗りつぶされます。

(設定されている場合): ToggleButton は設定されません。 インジケータの影は突起しているように描かれ、インジケータはバックグラウンドの色で塗りつぶされます。

設定されている場合、設定されていない場合のいずれのときにも、そのメニューは 非表示となり、XmvalueChangedCallback に対するコールバック、続いて、XmdisarmCallback に対するコールバックが呼び出されます。

デフォルト PulldownMenu システムと OptionMenu システム

<Btn1Down>:
この動作はメニューに対するキーボードトラバースを禁止し、ユーザをドラッグモードに戻します。 (このモードはマウスを使ってメニューを操作するモードのことです。 ) この動作により、ToggleButton も、アームされます。 ToggleButton のまわりに影が描かれます。 XmNarmCallback に対するコールバックも呼び出されます。

<Btn1Up>:
(設定されていない場合): この動作は ToggleButton を選択します。 インジケータの影はくぼんでいるように描かれ、インジケータは XmNselectColor により指定された色で塗りつぶされます。 そのメニューが非表示となり、XmvalueChangedCallback に対するコールバック、続いて XmdiarmCallback に対するコールバックが呼び出されます。

(設定されている場合): この動作は ToggleButton widget を非選択にします。 インジケータの影は突起しているように描かれ、インジケータはバックグラウンドの色で塗りつぶされます。 メニューは非表示となり、XmvalueChangedCallback に対するコールバック、続いて XmdisarmCallback に対するコールバックが呼び出されます。

<Leave Window>:
ボタン 1 を押し、widget ウィンドウの外へカーソルを動かすことにより ToggleButton のまわりの影を消します。 このイベントは、キーボードトラバースがメニューにおいて可能な場合には、無視されます。

<Enter Window>:
ボタン 1 を押し、widget ウィンドウのなかにカーソルを動かすことにより ToggleButton のまわりに影を描きます。 このイベントは、キーボードトラバースがメニューにおいて可能な場合、無視されます。

<Key>Return:
キーボードトラバースがメニューにおいて可能な場合、このイベントは ToggleButton を設定または設定解除します。

(設定されていない場合): ToggleButton が設定されます。 インジケータの影はくぼんでいるように描かれ、インジケータは XmNselectColor により指定された色で塗りつぶされます。

(設定されている場合): ToggleButton は設定されません。 インジケータの影は突起しているように描かれ、インジケータはバックグラウンドの色で塗りつぶされます。

設定されている場合、設定されていない場合のいずれのときにも、そのメニューは 非表示となり、XmvalueChangedCallback に対するコールバック、続いて、XmdisarmCallback に対するコールバックが呼び出されます。

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

メニューシステムにないときには、次のものがデフォルトのトランスレーションとなります。
<Btn1Down>:Arm()
<Btn1Up>:Select()
Disarm()
<Key>Return:ArmAndActivate()
<Key>space:ArmAndActivate()
<EnterWindow>: Enter()
<LeaveWindow>: Leave()
メニューシステムにあるときには、次のものがデフォルトのトランスレーションとなります。
<BtnDown>:BtnDown()
<BtnUp>:BtnUp()
<EnterWindow>: Enter()
<LeaveWindow>: Leave()
<Key>Return:KeySelect()
<Key>Escape:MenuShellPopdownDone()

キーボードトラバース

メニューにあるときには次のトランスレーションが ToggleButton に追加されます。


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

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

関連事項

Core(3XM), XmCreateToggleButton(3XM), XmLabel(3XM), XmPrimitive(3XM), XmRowColumn(3XM), XmToggleButtonGetState(3XM), XmToggleButtonSetState(3XM)

NEWS-OSRelease 4.2.1R

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