Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Composite(3XM)

Constraint(3XM)

Core(3XM)

XmBulletinBoard(3XM)

XmCreateErrorDialog(3XM)

XmCreateInformationDialog(3XM)

XmCreateMessageBox(3XM)

XmCreateMessageDialog(3XM)

XmCreateQuestionDialog(3XM)

XmCreateWarningDialog(3XM)

XmCreateWorkingDialog(3XM)

XmManager(3XM)

XmMessageBoxGetChild(3XM)

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

名称

XmMessageBox — MessageBox widget クラス

形式

#include <Xm/MessageB.h>

解説

MessageBox は簡単なメッセージダイアログを作るのに使用されるダイアログクラスです。 MessageBox に基づいた簡易ダイアログは、情報を送ったり、質問をしたり、誤りを指摘するといった通常の対話のために用意されています。

MessageBox ダイアログは通常、トランジェントで、対話が行われている間だけ表示されます。 MessageBox は XmBulletinBoard のサブクラスであり、一般的なダイアログの動作のほとんどを XmBulletinBoard に依存しています。

MessageBox にはメッセージシンボルとメッセージに加えて 3 つまでの標準デフォルト PushButton (OK, Cancel, Help) を含めることができます。 シンボルは上の左側に、メッセージは上の中心から右側に、PushButton は下側に配置されます。 ヘルプボタンは他の PushButton から離れた右側に置かれます。 MessageBox の簡易ダイアログに対するデフォルトシンボルとボタンラベルは、ローカライズすることができます。

ボタンラベルデフォルトは、Xt Intrinsics によってサポートされる app-defaults にあるファイルを新しい値で書き換えることによって簡単に変更できます。 MessageBox のシンボルに関するデフォルトを変える方法はもっと複雑です。 なぜなら、Xt Intrinsics はリソースファイル中で名前でピックスマップの指定をサポートしないからです。

初期化する時、MessageBox は次のビットマップファイルを参照します。

•xm_error

•xm_information

•xm_question

•xm_working

•xm_warning

どのパスでこれらのファイルを検索しているかについては XmGetPixmap(3XM) を参照してください。

クラス

MessageBox は Core、Composite、Constraint、XmManager、XmBulletinBoard より動作とリソースを継承します。

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

クラスの名称は XmMassageBox です。

新しいリソース

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

XmMessageBox リソース一覧
名称 クラス 型 デフォルト アクセス
XmNcancelCallback XtCallbackList XtCallbackList NULL C
XmNcancelLabelString XmCXmString XmString "Cancel" CSG
XmNdefaultButtonType XmCDefaultButtonType unsigned char XmDIALOG_OK_BUTTON CSG
XmNdialogType XmCDialogType unsigned char XmDIALOG_MESSAGE CSG
XmNhelpLabelString XmCXmString XmString "Hello" CSG
XmNmessageAlignment XmCAlignment unsigned char XmALIGNMENT_BEGINNING CSG
XmNmessageString XmCXmString XmString NULL CSG
XmNminimizeButtons XmCMinimizeButtons Boolean False CSG
XmNokcallback XtCallbackList XtCallbackList NULL C
XmNokLabelString XmCXmString XmString "OK" CSG
XmNsymbolPixmap XmCPixmap Pixmap dynamic CSG

XmNcancelCallback
ユーザがキャンセルボタンをクリックした時に呼び出されるコールバックのリストを指定します。 このコールバックによって送られるリーズンは XmCR_CANCEL です。

XmNcancelLabelString
キャンセルボタンのストリングラベルを指定します。

XmNdefaultButtonType
デフォルト PushButton を指定します。 以下が有効な型です。

•XmDEALOG_CANCEL_BUTTON

•XmDIALOG_OK_BUTTON

•XmDIALOG_HELP_BOTTON

XmNdialogType
デフォルトメッセージシンボルを決定する MessageBox ダイアログの型を指定します。 以下がこのリソースの取り得る値です。

•XmDIALOG_ERROR — ErrorDialog を示します。

•XmDIALOG_INFORMATION — InformationDialog を示します。

•XmDIALOG_MESSAGE — MessageDialog を示します。 これはデフォルト MessageBox Dialog という型です。 デフォルトメッセージシンボルは NULL です。

•XmDIALOG_QUESTION — QuestionDialog を示します。

•XmDIALOG_WARNING — WarningDialog を示します。

•XmDIALOG_WORKING — WorkingDialog を示します。

もしこのリソースが XtSetValues によって変えられ、XmNsymbolPixmap も XtSetValues に設定されなければ、シンボルビットマップは新しい XmdialogType のビットマップに変更されます。

XmNhelpLabelString
ヘルプボタンのストリングラベルを指定します。

XmNmessageAlignment
メッセージ Label の文字揃えを制御します。 以下が取り得る値です。

•XmALIGNMENT_BEGINNIG — デフォルトです。

•XmALIGNMENT_CENTER

•XmALIGNMENT_END

XmNmessageString
メッセージとして使われる文字列を指定します。

XmNminimizeButtons
False ならば、ボタンが最も横幅の広いボタンの横幅と最も縦幅の広いボタンの高さを持つように設定します。 True ならば、ボタンの横幅と高さはそれぞれのボタンごとに希望のサイズに設定されます。

XmNokCallback
ユーザが OK ボタンをクリックした時に呼び出されるコールバックのリストを指定します。 このコールバックによって送られるリーズンは XmCR_OK です。

XmNokLabelString
OK ボタンのストリングラベルを指定します。

XmNsymbolPixmap
メッセージシンボルとして使われるピックスマップラベルを指定します。

継承されるリソース

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

XmBulletinBoard リソース一覧
名称 クラス 型 デフォルト アクセス
XmNallowOverlap XmCAllowOverlap Boolean True N/A
XmNautoUnmanage XmCAutoUnmanage Boolean True CSG
XmNbuttonFontList XmCButtonFontList XmFontList NULL CSG
XmNcancelButton XmCWidget Widget Cancel button G
XmNdefaultButton XmCWidget Widget OK button G
XmNdefaultPosition XmCDefaultPosition Boolean True CSG
XmNdialogStyle XmCDialogStyle unsigned char dynamic CSG
XmNdialogTitle XmCXmString XmString NULL CSG
XmNfocusCallback XmCCallback XtCallbackList NULL C
XmNlabelFontList XmCLabelFontList XmFontList NULL CSG
XmNmapCallback XmCCallback XtCallbackList NULL C
XmNmarginHeight XmCMarginHeight short 10 CSG
XmNmarginWidth XmCMarginWidth short 10 CSG
XmNnoResize XmCNoResize Boolean False CSG
XmNresizePolicy XmCResizePolicy unsigned char XmRESIZE_ANY CSG
XmNshadowType XmCShadowType unsigned char XmSHADOW_OUT CSG
XmNstringDirection XmCStringDirection XmStringDirection XmSTRING_DIRECTION_L_TO_R CSG
XmNtextFontList XmCTextFontList XmFontList NULL N/A
XmNtextTranslations XmCTranslations XtTranslations NULL N/A
XmNunmapCallback XmCCallback XtCallbackList NULL C

XmManager リソース一覧
名称 クラス 型 デフォルト アクセス
XmNbottomShadowColor XmCForeground Pixel dynamic CSG
XmNbottomShadowPixmap XmCBottomShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
Xmforeground XmCForeground Pixel dynamic CSG
XmNhelpCallback XmCCallback XtCallbackList NULL C
XmNhighlightColor XmCForeground Pixel Black CSG
XmNhighlightPixmap XmCHighlighrPixmap Pixmap dynamic CSG
XmNshadowThickness XmCShadowThickness short dynamic CSG
XmNtopShadowColor XmCBackground Pixel dynamic CSG
XmNtopShadowPixmap XmCTopShadowPixmap Pixmap XmUNSPECIFIED_PIXMAP CSG
XmNunitType XmCUnitType unsigned char XmPIXELS CSG
XmNuserData XmCUserData caddr_t NULL CSG

Composite リソース一覧
名称 クラス 型 デフォルト アクセス
XmNinsertPosition XmCInsertPosition XmRFunction 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 を指します。

動作

MessageBox の動作の要約は以下のようになります。

<Ok Button Activated>:
OK PushButton がアクティブになると、XmNokCallback が呼び出されます。

<Cancel Button Activated>:
キャンセル PushButton がアクティブになると、XmNcancelCallback が呼び出されます。

<Help Button Activated> or <Key>F1:
ヘルプボタンか ファンクションキー 1 が押されると、XmNhelpCallback のコールバックが呼び出されます。

<Default Button Activated>:
デフォルトボタンが押されると、デフォルト PushButton のアクティベイトコールバックが呼び出されます。

<FocusIn>:
widget ウィンドウで FocusIn のイベントが発生すると、XmNfocusCallback のコールバックが呼び出されます。

<MapWindow>:
widget ウィンドウで MapWindow のイベントが発生すると、XmNmapCallback のコールバックが呼び出されます。

<UnmapWindow>:
widget ウィンドウで UnmapWindow のイベントが発生すると、XmNunmapCallback のコールバックが呼び出されます。

デフォルトアクセラレータ

BulletinBoard の親が DialogShell である時に、BulletinBoard の子や孫に加えられるデフォルトアクセラレータトランスレーションは次のようになります。

#override
<Key>F1:Help()
<Key>Return:Return()
<key>KP_Enter:  Return()

キーボードトラバース

キーボードトラバースに関しては XmManager(3XM) のマニュアルページと動作とデフォルトのトランスレーションの項を参照してください。

関連事項

Composite(3XM), Constraint(3XM), Core(3XM), XmBulletinBoard(3XM), XmCreateErrorDialog(3XM), XmCreateInformationDialog(3XM), XmCreateMessageBox(3XM), XmCreateMessageDialog(3XM), XmCreateQuestionDialog(3XM), XmCreateWarningDialog(3XM), XmCreateWorkingDialog(3XM), XmManager(3XM), XmMessageBoxGetChild(3XM)

NEWS-OSRelease 4.2.1R

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