Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Object(3XM)

RectObj(3XM)

XmCreateToggleButtonGadget(3XM)

XmGadget(3XM)

XmLabelGadget(3XM)

XmRowColumn(3XM)

XmToggleButtonGadgetGetState(3XM)

XmToggleButtonGadgetSetState(3XM)

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

名称

XmToggleButtonGadget — ToggleButtonGadget widget クラス

形式

#include <Xm/ToggleBG.h>

解説

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

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

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

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

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

クラス

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

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

クラス名は、XmToggleButtonGadget です。

新しいリソース

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

XmToggleButtonGadget リソース一覧
名称 クラス 型 デフォルト アクセス
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
ToggleButtonGadget がアームされたときに呼び出されるコールバックのリストを指定します。 この gadget をアームするためには、ポインタが ToggleButton の内部にあるときにアクティブマウスボタンを押してください。 このコールバックに関して、リーズンは XmCR_ARM です。

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

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

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

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

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

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

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

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

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

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

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

継承されるリソース

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

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 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

XmGadget リソース一覧
名称 クラス 型 デフォルト アクセス
XmNhelpCallback XmCCallback XtCallbackList NULL C
XmNhighlightOnEnter XmCHighlightOnEnter Boolean False CSG
XmNhighlightThickness XmCHighlightThickness short 0 CSG
XmNshadowThickness XmCShadowThickness short 0 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 0 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

コールバック情報

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

typedef struct
{
intreason ;
XEvent∗ event ;
Booleanset ;
} XmToggleButtonCallbackStruct ;

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

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

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

動作

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

デフォルトの動作

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

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

<BTN1Up>:

(ボタン内で):

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

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

(ボタンの外側で):

ToggleButtonGadget の外側でボタンを放した場合には、XmNdisarmCallback に対する Callback が呼び出されます。

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

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

デフォルト PopupMenu システム

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

キーボードトラバース

メニューにないときのキーボードトラバースの情報については、XmGadget(3XM) のマニュアルページと、その動作とデフォルトのトランスレーションに関するセクションを参照してください。 ToggleButtonGadget がメニューシステムにあるときには、キーボードトラバースのトランスレーションは、親 widget である RowColumn によって定義されています。

関連事項

Object(3XM), RectObj(3XM), XmCreateToggleButtonGadget(3XM), XmGadget(3XM), XmLabelGadget(3XM), XmRowColumn(3XM), XmToggleButtonGadgetGetState(3XM), XmToggleButtonGadgetSetState(3XM)

NEWS-OSRelease 4.1C

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