Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XmFileSelectionBox(3XM) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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.2.1R

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