XmCommand(3XM) — NEWS-OS Programmer’s Manual
名称
XmCommand - Command widget クラス
形式
#include <Xm/Command.h>
解説
Command は、組み込みのコマンドヒストリ機構を供給するコマンドエントリ用の、特殊用途のコンポジット widget です。 Command にはコマンドラインテキスト入力フィールド、コマンドラインプロンプト、コマンドヒストリリスト領域が含まれます。
生成の後、追加的な子として WorkArea を一つ Command に与えることもできます。
コマンドが入力されると、自動的にコマンドヒストリリストの最後に追加され、見ることができます。 選択した項目がリストにあっても、これによって変更されるということはありません。
Command で使用される新しいリソースの多くは、実際には SelectionBox リソースを改名して、わかりやすくかつ使いやすくしたものです。
クラス
XmCommand は、Core、Composite、Constraint、XmManager、XmBulletinBoard、XmSelectionBox のクラスから動作とリソースを継承します。
クラスポインタは xmCommandWidgetClass です。
クラス名は XmCommand です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまたこの widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。
| XmCommand リソース一覧 | ||||
| 名前 | クラス | 型 | デフォルト | アクセス |
| XmNcommand | XmCTextString | XmString | NULL | CSG |
| XmNcommandChangedCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNcommandEnteredCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhistoryItems | XmCItems | XmStringTable | NULL | CSG |
| XmNhistoryItemCount | XmCItemCount | int | 0 | CSG |
| XmNhistoryMaxItems | XmCMaxItems | int | 100 | CSG |
| XmNhistoryVisibleItemCount | XmCVisibleItemCount | int | 8 | CSG |
| XmNpromptString | XmCXmString | XmString | ">" | CSG |
XmNcommand
現在のコマンドラインのテキストが入っています。 これは、SelectionBox のリソースである XmNtextString を Command 用に改名したものです。 このリソースは、XmCommandSetValue と XmCommandAppendValue 関数によっても変えることができます。 コマンド領域は Text widget です。
XmNcommandChangedCallback
コマンドの値が変化したときに呼び出されるコールバックのリストを指定します。 コールバックのリーズンは Xm_CR_COMMAND_CHANGED です。 これは、XmCommandCallbackStructure に XmString がロードされて返されること以外は、 Text widget の XmNvalueChangedCallback と同じものです。
XmNcommandEnteredCallback
Command にコマンドが入力されたときに呼び出されるコールバックのリストを指定します。 コールバックのリーズンは Xm_CR_COMMAND_ENTERED です。 XmCommandCallback 構造体が返されます。
XmNhistoryItems
ヒストリリストの内容を構成する XmString 項目のリストです。 これは、SelectionBox のリソース XmNlistItems を Command 用に改名したものです。
XmNhistoryItemCount
XmNhistoryItems の中の XmStrings の数を指定します。 これは、SelectionBox のリソース XmNlistItemCount を Command 用に改名したものです。
XmNhistoryMaxItems
ヒストリリスト中に許される項目の最大の数を指定します。 この数に達すると、一つ新しい項目をリストに追加するにはその前に、今あるリスト項目を一つ取り除かなければなりません。 コマンドの入力に関していえば、その新しいコマンドがリストに追加できるように、最初のリスト項目がリストから取り除かれます。
XmNhistoryVisibleItemCount
一度に見えるヒストリリストの項目の数を指定します。 実際には、ヒストリリストのウィンドウの高さ (行数) を設定します。 これは、SelectionBox のリソース XmNvisibleItemCount を Command 用に改名したものです。
XmNpromptString
コマンドラインのプロンプトです。 これは、SelectionBox のリソース XmNselectionLabelString を Command 用に改名したものです。
継承されるリソース
Command は、次のスーパークラスから動作とリソースを継承します。 これらのリソースの完全な解説については、そのスーパークラスのマニュアルページを参照してください。
| XmSelectionBox リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNapplyCallback | XmCCallback | XtCallbackList | NULL | N/A |
| XmNapplyLabelString | XmCApplyLabelString | XmString | "Apply" | N/A |
| XmNcancelCallback | XmCCallback | XtCallbackList | NULL | N/A |
| XmNcancelLabelString | XmCXmString | XmString | "Cancel" | N/A |
| XmNdialogType | XmCDialogType | unsigned char | XmDIALOG_COMMAND | G |
| XmNhelpLabelString | XmCXmString | XmString | "Help" | N/A |
| XmNlistItemCount | XmCItemCount | int | 0 | N/A |
| XmNlistItems | XmCItems | XmStringList | NULL | N/A |
| XmNlistLabelString | XmCXmString | XmString | NULL | N/A |
| XmNlistVisibleItemCount | XmCVisibleItemCount | int | 8 | N/A |
| XmNminimizeButtons | XmCminimizeButtons | Boolean | False | N/A |
| XmNmustMatch | XmCMustMatch | Boolean | False | N/A |
| XmNnoMatchCallback | XmCCallback | XtCallbackList | NULL | N/A |
| XmNokCallback | XmCCallback | XtCallbackList | NULL | N/A |
| XmNokLabelString | XmCXmString | XmString | "OK" | N/A |
| XmNselectionLabelString | XmCXmString | XmString | "Selection" | CSG |
| XmNtextAccelerators | XmCTextAccelerators | XtTranslations | see description | C |
| XmNtextColumns | XmCTextColumns | int | 20 | CSG |
| XmNtextValue | XmCTextValue | XmString | NULL | N/A |
| XmBulletinBoard リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNallowOverlap | XmCAllowOverlap | Boolean | True | N/A |
| XmNautoUnmanage | XmCAutoUnmanage | Boolean | False | CSG |
| XmNbuttonFontList | XmCButtonFontList | XmFontList | NULL | N/A |
| XmNcancelButton | XmCWidget | Widget | NULL | N/A |
| XmNdefaultButton | XmCWidget | Widget | NULL | N/A |
| XmNdefaultPosition | XmCDefaultPosition | Boolean | False | 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_NONE | CSG |
| XmNshadowType | XmCShadowType | unsigned char | XmSHADOW_OUT | CSG |
| XmNstringDirection | XmCStringDirection | XmStringDirection | XmSTRING_DIRECTION_L_TO_R | CSG |
| XmNtextFontList | XmCTextFontList | XmFontList | NULL | CSG |
| XmNtextTranslations | XmCTranslations | XtTranslations | NULL | C |
| XmNunmapCallback | XmCCallback | XtCallbackList | NULL | C |
| XmManager リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNbottomShadowColor | XmCForeground | Pixel | dynamic | CSG |
| XmNbottomShadowPixmap | XmCBottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNforeground | XmCForeground | Pixel | dynamic | CSG |
| XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhighlightColor | XmCForeground | Pixel | Black | CSG |
| XmNhighlightPixmap | XmCHighlightPixmap | 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;
XmStringvalue;
intlength;
} XmCommandCallbackStruct;
reasonコールバックが起動されたリーズンを示します。
eventコールバックを引き起こした XEvent を指します。
valueCommandArea の XmString を示します。
lengthXmString 中のコマンドの大きさを示します。
動作
Command の動作を次にまとめます。
<key>:
テキスト編集 widget になんらかの変更がなされた時、XmNcommandChangedCallback に対するコールバックが呼び出されます。
<key>Return:
リターンキーが押されると、XmNcommandEnteredCallback と XmNcommandChangedCallback に対するコールバックが呼び出されます。
<key>Up または <key>Down:
Command の Text subwidget 内でアップまたはダウンキーが押されると、テキストの値が List subwidget 中の前または次の項目に置き換えられます。 リスト中の選択された項目も、前または次の項目に変更されます。 XmNcommandChangedCallback に対するコールバックが呼び出されます。
<DoubleClick>:
List subwidget 中の項目がダブルクリックされると、その項目は選択されると同時にリストの最後に追加されます。 XmNcommandEnteredCallback と XmNcommandChangedCallback に対するコールバックが呼び出されます。
<key>F1:
ファンクションキー1 が押されると、XmNhelpCallback に対するコールバックが呼び出されます。
<FocusIn>:
widget ウィンドウで FocusIn event が発生すると、XmNfocusCallback に対するコールバックが呼び出されます。
<MapWindow>:
DialogShell の子である Command がマップされると、XmNmapCallback に対するコールバックが起動されます。 DialogShell の子でない Command がマップされても、コールバックは起動されません。
<UnmapWindow>:
DialogShell の子である Command がアンマップされると、XmNunmapCallback に対するコールバックが起動されます。 DialogShell の子でない Command がアンマップされても、コールバックは起動されません。
デフォルトのトランスレーション
Command は、SelectionBox からのデフォルトのトランスレーションを継承します。
デフォルトアクセラレータ
BulletinBoard の親が Dialogshell であれば、BulletinBoard の子孫に追加されるデフォルトアクセラレータトランスレーションは、次のようになります。
#override
<Key>F1:Help()
<Key>Return:Return()
<Key>KP_Enter: Return()
デフォルトテキストアクセラレータ
SelectionBox から継承されるデフォルトテキストアクセラレータは、次のようになります。
#override
<Key>Up:UpOrDown(0)
<Key>Down:UpOrDown(1)
<Key>F1:Help()
<Key>Return:Return()
<Key>KP_Enter: Return()
キーボードトラバース
キーボードトラバースについての情報は、XmManager(3XM) のマニュアルページと、その「動作」と「デフォルトのトランスレーション」のセクションを参照してください。
関連事項
Composite(3XM), Constraint(3XM), Core(3XM), XmBulletinBoard(3XM), XmCommandAppendValue(3XM), XmCommandError(3XM), XmCommandGetChild(3XM), XmCommandSetValue(3XM), XmCreateCommand(3XM), XmManager(3XM), XmSelectionBox(3XM)
NEWS-OSRelease 4.2.1R