XmFileSelectionBox(3XM) — NEWS-OS Programmer’s Manual
名称
XmFileSelectionBox — FileSelectionBox widget クラス
形式
#include <Xm/FileSB.h>
解説
FileSelectionBox widget は、ディレクトリをトラバースして、その中のファイルを示し、ファイルを選択します。 FileSelectionBox は 4 つの主な領域を持っています。
•調べるディレクトリを指定するために使われる、ディレクトリマスクの入力フィールドとフィルタのラベルを持っているディレクトリマスク
•スクロール可能なファイル名のリスト
•ファイル名を直接打つためのテキスト入力フィールド
•OK、Filter、Cancel、Help というラベルをもつ PushButton のグループ
FileSelectionBox を生成後、WorkArea という子を追加することができます。
ユーザは、ファイル名のリストをスクロールさせて希望するファイルを選択するか、ファイル名を直接テキスト編集領域に入力することによってファイルを選択することができます。 リストからファイルを選択すると、ファイル選択テキスト編集領域にファイル名が現れます。
ユーザは、好きなだけ新しいファイルを選びなおすことができます。 ユーザが OK PushButton を選択するか、選択テキスト編集領域にキーボードフォーカスがある間にリターンキーを押すまでは、アプリケーションには知らされません。
FileSelectionBox は次のどれかが起こった時に、ファイルの検索を始めます。
•関数 XtSetValues でディレクトリマスクを変える。
•ユーザーが Filter PushButton をアクティブにする。
•アプリケーションが XmFileSelectionDoSearch を呼ぶ。
•選択テキスト編集領域にキーボードフォーカスがある間に、ユーザがリターンキーを押す。
これはアプリケーションが新しいファイルを生成し、それをファイルリストに組み込みたいときに役に立ちます。
クラス
FileSelectionBox は、Core、Composite、Constraint、XmManager、XmBulletinBoard、XmSelectionBox のクラスから動作とリソースを継承します。
クラスポインタは xmFileSelectionBoxWidgetClass です。
クラス名は XmFileSelectionBox です。
新しいリソース
次の表は、データを指定するのに用いる widget リソースの一覧です。 継承されたクラスのリソースの値もまたこの widget の属性として設定することができます。 .Xdefaults ファイルの中で名前やクラスでリソースを参照する場合は、語頭の XmN または XmC を取り除いた名称を用いてください。 .Xdefaults ファイルの中でリソースに定義された値を設定するには、語頭の Xm を取り除いた名称を用いてください。 (大文字と小文字は区別されませんが、語間のアンダースコアは必要です。 ) 「アクセス」欄の文字は、与えられたリソースを、widget 生成時に設定できるか (C)、XtSetValues で設定できるか (S)、XtGetValues で取り出すことができるか (G)、あるいは利用できないか (N/A) を示します。
| XmFileSelectionBox リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNdirMask | XmCDirMask | XmString | "∗" | CSG |
| XmNdirSpec | XmCDirSpec | XmString | NULL | CSG |
| XmNfileSearchProc | XmCFileSearchProc | XtProc | 以下参照 | CSG |
| XmNfilterLabelString | XmCFilterLabelString | XmString | "File Filter" | CSG |
| XmNlistUpdated | XmCListUpdated | Boolean | True | CSG |
XmNdirMask
リストボックスに表示されるファイルを決定するのに使うディレクトリマスクを指定します。
XmNdirSpec
ファイルのフルパスを指定します。 このリソースは、SelectionBox の XmNtextString リソースをオーバーライドします。
XmNfileSearchProc
デフォルトのファイル選択検索手続きに代わる、ディレクトリ検索手続きを指定します。 FileSelectionBox のデフォルトのファイル検索手続きは、ほとんどのアプリケーションの要求を満たします。 しかしすべてのアプリケーションの要求をカバーすることは不可能なので、デフォルトの検索手続きを置き換えることができます。
ファイル検索手続きは 2 つの引数、すなわち FileSelectionBox widget と XmFileSelectionCallbackStruct 構造体とともに呼び出されます。 コールバック構造体には、現在のファイルの検索マスク等、ディレクトリの検索を行うのに必要な情報すべてが含まれています。 一度呼び出されると、新しいファイルのリストを生成し、 XmSetValues を用いてファイル選択 widget を更新するのは検索ルーチンの仕事になります。
XmNitems、XmNitemsCount、XmNlistUpdated、XmNdirSpec の各属性は設定しなければなりません。 XmNitems は新しいファイルのリストに設定してください。 もしファイルがなければこの属性を NULL に設定してください。 これで SelectionBox に関連する XmNitems 属性が設定されます。
もしファイルがなければ、XmNitemsCount を 0 に設定してください。 これで SelectionBox に関連する XmNitemsCount が設定されます。 検索手続きを用いてファイルリストを更新した時は、たとえファイルがなくても常に XmNlistUpdated を True に設定してください。 XmNdirSpec のセットは省略可能ですが、設定することを勧めます。 この属性に、検索したディレクトリのフルパスを設定してください。 ディレクトリのフルパスはリストボックスの上に表示されます。
XmNfilterLabelString
DIR_MASK テキストエントリフィールド上にある、ラベル用文字列の値を指定します。
XmNlistUpdated
ファイル検索手続きによってのみ設定される属性を指定します。 ファイルリストが更新されたのなら True に設定します。
継承されるリソース
FileSelectionBox は次のスーパークラスの動作とリソースを継承します。 これらのリソースの完全な解説は、そのスーパークラスのマニュアルページを参照してください。
| XmSelectionBox リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNapplyCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNapplyLabelString | XmCApplyLabelString | XmString | "Filter" | CSG |
| XmNcancelCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNcancelLabelString | XmCXmString | XmString | "Cancel" | CSG |
| XmNdialogType | XmCDialogType | unsigned char | XmDIALOG_FILE_SELECTION | CG |
| XmNhelpLabelString | XmCXmString | XmString | "Help" | CSG |
| XmNlistItemCount | XmCItemCount | int | 0 | CSG |
| XmNlistItems | XmCItems | XmStringList | NULL | CSG |
| XmNlistLabelString | XmCXmString | XmString | "Files" | CSG |
| XmNlistVisibleItemCount | XmCVisibleItemCount | int | 8 | CSG |
| XmNminimizeButtons | XmCMinimizeButtons | Boolean | False | CSG |
| XmNmustMatch | XmCMustMatch | Boolean | False | CSG |
| XmNnoMatchCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNokCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNokLabelString | XmCXmString | XmString | "OK" | CSG |
| XmNselectionLabelString | XmCXmString | XmString | "Selection" | CSG |
| XmNtextAccelerators | XmCTextAccelerators | XtTranslations | 解説参照 | C |
| XmNtextColumns | XmCTextColumns | int | 31 | CSG |
| XmNtextString | XmCTextString | XmString | NULL | CSG |
| XmBulletinBoard リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNallowOverlap | XmCAllowOverlap | Boolean | True | CSG |
| XmNautoUnmanage | XmCAutoUnmanage | Boolean | False | CSG |
| XmNbuttonFontList | XmCButtonFontList | XmFontList | NULL | CSG |
| XmNcancelButton | XmCWidget | Widget | キャンセルボタン | SG |
| XmNdefaultButton | XmCWidget | Widget | OK ボタン | SG |
| XmNdefaultPosition | XmCDefaultPosition | Boolean | True | CSG |
| XmNdialogStyle | XmCDialogStyle | unsigned char | 不定 | 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 | CSG |
| XmNtextTranslations | XmCTranslations | XtTranslations | NULL | C |
| XmNunmapCallback | XmCCallback | XtCallbackList | NULL | C |
| XmManager リソース一覧 | ||||
| 名称 | クラス | 型 | デフォルト | アクセス |
| XmNbottomShadowColor | XmCForeground | Pixel | 不定 | CSG |
| XmNbottomShadowPixmap | XmCbottomShadowPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNforeground | XmCForeground | Pixel | 不定 | CSG |
| XmNhelpCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNhighlightColor | XmCForeground | Pixel | 黒 | CSG |
| XmNhighlightPixmap | XmCHighlightPixmap | Pixmap | 不定 | CSG |
| XmNshadowThickness | XmCShadowThickness | short | 不定 | CSG |
| XmNtopShadowColor | XmCBackground | Pixel | 不定 | 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 | Boollean | True | G |
| XmNbackground | XmCBackground | Pixel | 不定 | CSG |
| XmNbackgroundPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderColor | XmCBorderColor | Pixel | 黒 | CSG |
| XmNborderPixmap | XmCPixmap | Pixmap | XmUNSPECIFIED_PIXMAP | CSG |
| XmNborderWidth | XmCBorderWidth | Dimention | 0 | CSG |
| XmNcolormap | XmCColormap | Colormap | XtCopyFromParent | CG |
| XmNdepth | XmCDepth | int | XtCopyFromParent | CG |
| XmNdestroyCallback | XmCCallback | XtCallbackList | NULL | C |
| XmNheight | XmCHeight | Dimention | 0 | CSG |
| XmNmappedWhenManaged | XmCMappedWhenManaged | Boolean | True | CSG |
| XmNscreen | XmCScreen | Pointer | XtCopyScreen | CG |
| XmNsensitive | XmCSensitive | Boolean | True | CSG |
| XmNtranslations | XmCTranslations | XtTranslations | NULL | CSG |
| XmNwidth | XmCWidth | Dimention | 0 | CSG |
| XmNx | XmCPosition | Position | 0 | CSG |
| XmNy | XmCPosition | Position | 0 | CSG |
コールバック情報
次の構造体がコールバックごとに返されます。
typedef struct
{
intreason ;
XEvent∗ event ;
XmStringvalue ;
intlength ;
XmStringmask ;
intmask_length ;
} XmFileSelectionBoxCallbackStruct;
reasonなぜコールバックが起動されたかを示します。
eventコールバックを引き起こした XEvent を指します。
value現在の XmNdirSpec の値を指定します。
lengthvalue によって指される構造体のバイト数を指定します。
maskXmNdirMask の現在の値を指定します。
mask_lengthmask によって指される構造体のバイト数を指定します。
動作
FileSelectionBox は、SelectionBox と BulletinBoard から動作を継承します。 さらに以下の動作も持っています。
<Apply Button Activated>:
apply ボタンがアクティブになると、新たなファイル検索が始まります。
デフォルトのトランスレーション
FileSelectionBox は SelectionBox のデフォルトのトランスレーションを継承します。 XmSelectionBox(3XM) のマニュアルページを参照してください。
デフォルトアクセラレータ
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), XmCreateFileSelectionBox(3XM), XmCreateFileSelectionDialog(3XM) , XmFileSelectionBoxGetChild(3XM), XmFileSelectionDoSearch(3XM), XmManager(3XM), XmSelectionBox(3XM)
NEWS-OSRelease 4.1C