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