XmDrawnButton(3XM) — NEWS-OS Programmer’s Manual
名称
XmDrawnButton — DrawnButton widget クラス
形式
#include <Xm/DrawnB.h>
解説
DrawnButton widget は、影のボーダに囲まれた空の widget ウィンドウからなります。 これはアプリケーション開発者に、PushButton の入力セマンティクスを持つことのできるグラフィクス領域を提供します。
アプリケーションがグラフィクスを描画しなおしたり場所を変えたりできるように、 widget のエクスポージャとリサイズに対してコールバックの型が定義されています。 DrawnButton の widget に、highlightthickness と shadowthickness が指定されている場合には、アプリケーションはその領域に描画してはいけません。 ハイライトと影の領域に描画するのを避けるには、 widget の中を描画するクリッピングレクタングルを持ったグラフィックコンテクストを生成してください。 このクリッピングレクタングルは、widget の highlightthickness と shadowthickness の大きさを考慮に入れます。
クラス
DrawnButton は Core、XmPrimitive、XmLabel のクラスから動作とリソースを継承します。
クラスポインタは xmDrawnButtonWidgetClass です。
クラス名は XmDrawnButton です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまたこの widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。
| XmDrawnButton リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNactivateCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNarmCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNdisarmCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNexposeCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNpushButtonEnabled | XmCPushButtonEnabled | Boolean | False | CSG |
| XmNresizeCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNshadowType | XmCShadowType | unsigned char | XmSHADOW_ETCHED_IN | CSG |
XmNactiveCallback
widget が選択された時に呼び出されるコールバックのリストを指定します。 コールバックによって送られるリーズンは XmCR_ACTIVATE です。
XmNarmCallback
widget がアームされた時に呼び出されるコールバックのリストを指定します。 コールバックによって送られるリーズンは XmCR_ARM です。
XmNdisarmCallback
widget がディスアームされた時に呼び出されるコールバックのリストを指定します。 コールバックによって送られるリーズンは XmCR_DISARM です。
XmNexposeCallback
widget がエクスポージャイベントを受け取った時に呼び出されるコールバックのリストを指定します。 コールバックによって送られるリーズンは XmCR_EXPOSE です。
XmNpushButtonEnabled
PushButton の中に描かれるような 3 次元の影を有効または無効にします。
XmNresizeCallback
widget がリサイズイベントを受け取った時に呼び出されるコールバックのリストを指定します。 コールバックによって送られるリーズンは XmCR_RESIZE です。 このコールバックで返されるイベントは NULL です。
XmNshadowType
DrawnButton の描画スタイルを表します。 このリソースは次のような値を持つことができます。
•XmSHADOW_IN — 影が内側にあるように見えるように DrawnButton を描きます。 すなわち、下の影と上の影の見えかたが反転します。
•XmSHADOW_OUT — 影が外側にあるように見えるように DrawnButton を描きます。
•XmSHADOW_ETCHED_IN — DrawnButton を二重線で描きます。 これによりウインドウに溝が掘られているように見せる効果があります。 二重線の太さは XmNshadowThicknes の値と同じです。
•XmSHADOW_ETCHED_OUT — DrawnButton を二重線で描きます。 これにより二重線の部分がウインドウから飛び出しているように見せる効果があります。 二重線の太さは XmNshadowThicknes の値と同じです。
継承されるリソース
DrawnButton は次のスーパークラスの動作とリソースを継承します。 これらのリソースの完全な解説は、そのスーパークラスのマニュアルページを参照してください。
| 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 | ’\0’ | CSG |
| XmNlabelType | XmCLabelType | unsigned char | XmSTRING | CSG |
| XmNmarginBottom | XmCMarginBottom | short | 0 | CSG |
| XmNmarginHeight | XmCMarginHeight | short | 0 | CSG |
| XmNmarginLeft | XmCMarginLeft | short | 0 | CSG |
| XmNmarginRight | XmCMarginRight | short | 0 | CSG |
| XmNmarginTop | XmCMarginTop | short | 0 | CSG |
| XmNmarginWidth | XmCMarginWidth | short | 0 | CSG |
| XmLabel リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNmnemonic | XmCMnemonic | char | ’\0’ | CSG |
| XmNrecomputeSize | XmNrecomputeSize | Boolean | True | CSG |
| XmNstringDirection | XmNstringDirection | XmNstringDirection | XmSTRING_DIRECTION_L_TO_R | CSG |
| XmPrimitive リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNbottomShadowColor | XmCForeground | Pixel | 不定 | CSG |
| XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNforeground | XmCForeground | Pixel | 不定 | CSG |
| XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhighlightColor | XmCforeground | Pixel | 黒 | CSG |
| XmNhighlightOnEnter | XmCHighlightOnEnter | Boolean | False | CSG |
| XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | 不定 | CSG |
| XmNhighlightThickness | XmCHighlightThickness | short | 0 | CSG |
| XmNshadowThickness | XmCShadowThickness | short | 2 | CSG |
| XmNtopShadowColor | 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 | 不定 | CSG |
| XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderColor | XmCBorderColor | Pixel | 黒 | 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 |
| XmNtransactions | XmCTransactions | XtTransactions | NULL | CSG |
| XmNwidth | XmCWidth | Dimension | 0 | CSG |
| Core リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
コールバック情報
次の構造体がコールバックごとに返されます。
typedef struct
{
intreason ;
XEvent∗ event ;
Windowwindow ;
} XmDrawnButtonCallbackStruct;
reasonなぜコールバックが起動されたかを示します。
eventコールバックを引き起こした XEvent を指します。 XmNresizeCallback に対しては event によって NULL が返されます。 Primitive のリソースである XmNtraversalOn が True である時にコールバックが引き起こされたか、コールバックが ArmAndActivate アクションルーチンを通してアクセスされた場合に、XmNactiveCallback に対してこのイベントは NULL となります。
windowイベントが発生した widget ウィンドウに設定されます。
動作
<Btn1Down>:
XmNpushButtonEnabled フラグが True に設定されていれば、DrawnButton を選択することにより、その影は選択状態として描かれます。 XmNarmCallback に対するコールバックも呼び出されます。
<Btn1Up>:
ポインタが DrawnButton の中にある時に <Btn1Up> が起こると、XmNpushButtonEnabled フラグが True に設定されていれば、影が非選択状態として描きなおされます。 XmdisarmCallback に対するコールバックに続き、XmNactiveCallback に対するコールバックが呼び出されます。 ポインタが DrawnButton の外にある時に <Btn1Up> が起こると、XmdisarmCallback に対するコールバックが呼び出されます。
<Leave Window>:
マウスのボタンが押されてカーソルが DrawnButton ウィンドウから出ると、XmNpushButtonEnabled フラグが True に設定されていれば、影が非選択状態として描きなおされます。
<Enter Window>:
マウスのボタンが押されてカーソルが再び DrawnButton ウィンドウに入ったら、ボタンが初めて選択された時と同様に影が描かれます。
デフォルトのトランスレーション
<Btn1Down>:Arm()
<Btn1Up>:Activate()
Disarm()
<Key>Return:ArmAndActivate()
<Key>space:ArmAndActivate()
<EnterWindow>: Enter()
<ReaveWindow>: Leave()
キーボードトラバース
キーボードトラバースについての情報は、XmPrimitive(3XM) のマニュアルページと、その「動作」と「デフォルトのトランスレーション」のセクションを参照してください。
関連項目
Core(3XM), XmCreateDrawnButton(3XM), XmLabel(3XM), XmPrimitive(3XM), XmPushButton(3XM), XmSeparator(3XM)
NEWS-OSRelease 4.1C