Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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

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