XmFileSelectionBox(3X)

XmFileSelectionBox - The FileSelectionBox widget class

As shipped in IRIX 6.5.7. Added in IRIX 6.5.5.

     NAME
          XmFileSelectionBox - The FileSelectionBox widget class

     SYNOPSIS
          #include <Xm/FileSB.h>

     VERSION
          This page documents Motif 2.1.

     DESCRIPTION
          FileSelectionBox traverses through directories, views the
          files and subdirectories in them, and then selects files.

          A FileSelectionBox has five main areas:

             o  A text input field for displaying and editing a
                directory mask used to select the files to be
                displayed

             o  An optional text input field for displaying and
                editing a filter mask used to select the files to be
                displayed.

             o  A scrollable list of filenames

             o  A scrollable list of subdirectories

             o  A text input field for displaying and editing a
                filename

             o  A group of PushButtons, labeled OK, Filter, Cancel,
                and Help.  The layout direction of the buttons depends
                on the XmNlayoutDirection resource.

          ####Additional children may be added to the FileSelectionBox
          after creation.  FileSelectionBox inherits the layout
          functionality provided by SelectionBox for any additional
          children.  To remove the list of filenames, the list of
          subdirectories, or both from the FileSelectionBox after
          creation, unmanage the appropriate widgets and their labels.
          The list and label widgets are obtained through a call to
          the XmFileSelectionBoxGetChild function.  To remove either
          the directory list or the file list, unmanage the parent of
          the appropriate list widget and unmanage the corresponding
          label.

          The user can specify resources in a resource file for the
          automatically created widgets and gadgets of
          FileSelectionBox. The following list identifies the names of
          these widgets (or gadgets) and the associated
          FileSelectionBox areas:

          FilterLabel
                    FilterText

          Filter Text
                    TextField

          Directory List
                    DirList

          Directory List Label
                    Dir

          DirL      Label

          DirText   TextField

          The directory mask is a string specifying the base directory
          to be examined and a search pattern.  Ordinarily, the
          directory list displays the subdirectories of the base
          directory, as well as the base directory itself and its
          parent directory.  The file list ordinarily displays all
          files and/or subdirectories in the base directory that match
          the search pattern.

          Optionally, the search pattern mask and the base directory
          can be displayed in two separate text fields. This option is
          controlled by the XmNpathMode resource. Using this alternate
          display does not change the meaning of resources that
          control the content of these fields: XmNdirectory,
          XmNdirMask, XmNpattern.

          A procedure specified by the XmNqualifySearchDataProc
          resource extracts the base directory and search pattern from
          the directory mask.  If the directory specification is
          empty, the current working directory is used.  If the search
          pattern is empty, a pattern that matches all files is used.

          An application can supply its own XmNqualifySearchDataProc
          as well as its own procedures to search for subdirectories
          and files.  The default XmNqualifySearchDataProc works as
          follows:  The directory mask is a pathname that can contain
          zero or more wildcard characters in its directory portion,
          its file portion, or both.  The directory components of the
          directory mask - up to, but not including, the first
          component with a wildcard character - specify the directory
          to be searched, relative to the current working directory.
          The remaining components specify the search pattern.  If the
          directory mask is empty or if its first component contains a
          wildcard character, the current working directory is
          searched.  If no component of the directory mask contains a
          wildcard character, the entire directory mask is the
          directory specification, and all files in that directory are
          matched.

          The user can select a new directory to examine by scrolling
          through the list of directories and selecting the desired
          directory or by editing the directory mask.  Selecting a new
          directory from the directory list does not change the search
          pattern.  A user can select a new search pattern by editing
          the directory mask or, when the FileSelectionBox has the
          optional XmNpathMode XmPATH_MODE_RELATIVE display, the
          filter text field.  Double clicking or pressing KActivate on
          a directory in the directory list initiates a search for
          files and subdirectories in the new directory, using the
          current search pattern.

          The user can select a file by scrolling through the list of
          filenames and selecting the desired file or by entering the
          filename directly into the text edit area.  Selecting a file
          from the list causes that filename to appear in the file
          selection text edit area.

          The user may select a new file as many times as desired.
          The application is not notified until the user takes one of
          the following actions:

             o  Selects the OK PushButton

             o  Presses KActivate while the selection text edit area
                has the keyboard focus

             o  Double clicks or presses KActivate on an item in the
                file list

          FileSelectionBox initiates a directory and file search when
          any of the following occurs:

             o  The FileSelectionBox is initialized

             o  The function XtSetValues is used to change XmNdirMask,
                XmNdirectory, XmNpattern, or XmNfileTypeMask

             o  The user activates the Filter PushButton

             o  The user double clicks or presses KActivate on an item
                in the directory list

             o  The application calls XmFileSelectionDoSearch

             o  The user presses KActivate while the directory mask
                text edit area has the keyboard focus

          When a file search is initiated, the FileSelectionBox takes
          the following actions:
             o  Constructs an XmFileSelectionBoxCallbackStruct
                structure with values appropriate for the action that
                initiated the search

             o  Calls the XmNqualifySearchDataProc with the callback
                structure as the data input argument

             o  Sets XmNdirectoryValid and XmNlistUpdated to False

             o  Calls the XmNdirSearchProc with the qualified data
                returned by the XmNqualifySearchDataProc

          If XmNdirectoryValid is True, the FileSelectionBox takes the
          following additional actions:

             o  Sets XmNlistUpdated to False

             o  Calls the XmNfileSearchProc with the qualified data
                returned by the XmNqualifySearchDataProc (and possibly
                modified by the XmNdirSearchProc)

             o  If XmNlistUpdated is True and the file list is empty,
                displays the XmNnoMatchString in the file list and
                clears the selection text and XmNdirSpec

             o  If XmNlistUpdated is True and the file list is not
                empty, sets the selection text and XmNdirSpec to the
                qualified dir returned by the XmNqualifySearchDataProc
                (and possibly modified by the XmNdirSearchProc)

             o  Sets the directory mask text and XmNdirMask to the
                qualified mask returned by the
                XmNqualifySearchDataProc (and possibly modified by the
                XmNdirSearchProc)

             o  Sets XmNdirectory to the qualified dir returned by the
                XmNqualifySearchDataProc (and possibly modified by the
                XmNdirSearchProc)

             o  Sets XmNpattern to the qualified pattern returned by
                the XmNqualifySearchDataProc (and possibly modified by
                the XmNdirSearchProc)

          FileSelectionBox uses the XmQTactivatable trait.

        Data Transfer Behavior
          Child widgets of a FileSelectionBox support the data
          transfer operations and targets associated with their widget
          classes.

          In addition, if the source of a data transfer is the
          directory list and if XmNdirSearchProc has its default
          value, the directory list supports the FILE and FILE_NAME
          targets.

          If the source of a data transfer is the file list and if
          XmNfileSearchProc has its default value, the file list
          supports the FILE and FILE_NAME targets.

          In either case, FileSelectionBox adds an
          XmNconvertCallbackprocedure to the appropriate list.  This
          procedure adds FILE and FILE_NAME to the TARGETSreturned by
          the list.  It treats requests for conversion of a selection
          to FILE and FILE_NAME exactly like requests for conversion
          to TEXT.

          If an application changes XmNdirSearchProc or
          XmNfileSearchProc and wants to support the FILE and
          FILE_NAME targets on the corresponding list, it must provide
          support itself by adding a procedure to the list's
          XmNconvertCallback list.

        Descendants
          FileSelectionBox automatically creates the descendants shown
          in the following table.  An application can use
          XtNameToWidget to gain access to the named descendant. In
          addition, a user or an application can use the named
          descendant when specifying resource values.
          Named Descendant   Class                   Identity
          _____________________________________________________________________________
          Apply              XmPushButtonGadget      Apply button
          Cancel             XmPushButtonGadget      Cancel button
          Dir                XmLabelGadget           title above list of directories
          DirList            XmList                  list of directories
          DirListSW          XmScrolledWindow        ScrolledWindow parent of DirList
          FilterLabel        XmLabelGadget           title above filter box
          FilterText         XmText or XmTextField   text within filter box
          Help               XmPushButtonGadget      Help button
          Items              XmLabelGadget           title above list of filenames
          ItemsList          XmList                  list of filenames
          ItemsListSW        XmScrolledWindow        ScrolledWindow parent of ItemsList
          OK                 XmPushButtonGadget      OK button
          Selection          XmLabelGadget           title above selection box
          Separator          XmSeparatorGadget       optional dividing line
          Text               XmText or XmTextField   text within selection box

        Classes
          FileSelectionBox inherits behavior, resources, and traits
          from Core, Composite, Constraint, XmManager,
          XmBulletinBoard, and XmSelectionBox.

          The class pointer is xmFileSelectionBoxWidgetClass.

          The class name is XmFileSelectionBox.
        New Resources
          The following table defines a set of widget resources used
          by the programmer to specify data. The programmer can also
          set the resource values for the inherited classes to set
          attributes for this widget. To reference a resource by name
          or by class in a .Xdefaults file, remove the XmN or XmC
          prefix and use the remaining letters. To specify one of the
          defined values for a resource in a .Xdefaults file, remove
          the Xm prefix and use the remaining letters (in either
          lowercase or uppercase, but include any underscores between
          words).  The codes in the access column indicate if the
          given resource can be set at creation time (C), set by using
          XtSetValues (S), retrieved by using XtGetValues (G), or is
          not applicable (N/A).

                                          XmFileSelectionBox Resource Set
          Name                       Class                      Type            Default             Access
          XmNdirectory               XmCDirectory               XmString        dynamic             CSG
          XmNdirectoryValid          XmCDirectoryValid          Boolean         dynamic             SG
          XmNdirListItems            XmCDirListItems            XmStringTable   dynamic             SG
          XmNdirListItemCount        XmCDirListItemCount        int             dynamic             SG
          XmNdirListLabelString      XmCDirListLabelString      XmString        dynamic             CSG
          XmNdirMask                 XmCDirMask                 XmString        dynamic             CSG
          XmNdirSearchProc           XmCDirSearchProc           XmSearchProc    default procedure   CSG
          XmNdirSpec                 XmCDirSpec                 XmString        dynamic             CSG
          XmNdirTextLabelString      XmCDirTextLabelString      XmString        NULL                C
          XmNfileFilterStyle         XmCFileFilterStyle         XtEnum          XmFILTER_NONE       C
          XmNfileListItems           XmCItems                   XmStringTable   dynamic             SG
          XmNfileListItemCount       XmCItemCount               int             dynamic             SG
          XmNfileListLabelString     XmCFileListLabelString     XmString        dynamic             CSG
          XmNfileSearchProc          XmCFileSearchProc          XmSearchProc    default procedure   CSG
          XmNfileTypeMask            XmCFileTypeMask            unsigned char   XmFILE_REGULAR      CSG
          XmNfilterLabelString       XmCFilterLabelString       XmString        dynamic             CSG
          XmNlistUpdated             XmCListUpdated             Boolean         dynamic             SG
          XmNnoMatchString           XmCNoMatchString           XmString        " [    ] "          CSG
          XmNpathMode                XmCPathMode                XtEnum          XmPATH_MODE_FULL    C
          XmNpattern                 XmCPattern                 XmString        dynamic             CSG
          XmNqualifySearchDataProc   XmCQualifySearchDataProc   XmQualifyProc   default procedure   CSG

          XmNdirectory
                    Specifies the base directory used in combination
                    with XmNpatternin determining the files and
                    directories to be displayed.  The default value is
                    determined by the XmNqualifySearchDataProcand
                    depends on the initial values of XmNdirMask,
                    XmNdirectory, and XmNpattern.  If the default is
                    NULL or empty, the current working directory is
                    used.

          XmNdirectoryValid
                    Specifies an attribute that is set only by the
                    directory search procedure.  The value is set to
                    True if the directory passed to the directory
                    search procedure can actually be searched.  If
                    this value is False the file search procedure is
                    not called, and XmNdirMask, XmNdirectory, and
                    XmNpattern are not changed.

          XmNdirListItems
                    Specifies the items in the directory list.
                    XtGetValues for this resource returns the list
                    items themselves, not a copy of the list items.
                    The application must not free the returned items.

          XmNdirListItemCount
                    Specifies the number of items in the directory
                    list.  The value must not be negative.

          XmNdirListLabelString
                    Specifies the label string of the directory list.
                    The default for this resource depends on the
                    locale.  In the C locale the default is
                    Directories.

                    Now that some default localized label strings are
                    provided through message catalogs for the children
                    of composite widgets, the labelString resources
                    cannot be set on the child through default
                    resource files.  Instead, the resource provided at
                    the parent level must be used.

          XmNdirMask
                    Specifies the directory mask used in determining
                    the files and directories to be displayed.  The
                    default value is determined by the
                    XmNqualifySearchDataProcand depends on the initial
                    values of XmNdirMask, XmNdirectory, and
                    XmNpattern.

          XmNdirSearchProc
                    Specifies a directory search procedure to replace
                    the default directory search procedure.
                    FileSelectionBox's default directory search
                    procedure fulfills the needs of most applications.
                    Because it is impossible to cover the requirements
                    of all applications, you can replace the default
                    search procedure.

                    The directory search procedure is called with two
                    arguments:  the FileSelectionBox widget and a
                    pointer to an XmFileSelectionBoxCallbackStruct
                    structure.  The callback structure is generated by
                    the XmNqualifySearchDataProc and contains all
                    information required to conduct a directory
                    search, including the directory mask and a
                    qualified base directory and search pattern.  Once
                    called, it is up to the search routine to generate
                    a new list of directories and update the
                    FileSelectionBox widget by using XtSetValues.

                    The search procedure must set XmNdirectoryValid
                    and XmNlistUpdated.  If it generates a new list of
                    directories, it must also set XmNdirListItems and
                    XmNdirListItemCount.

                    If the search procedure cannot search the
                    specified directory, it must warn the user and set
                    XmNdirectoryValid and XmNlistUpdatedto False,
                    unless it prompts and subsequently obtains a valid
                    directory.  If the directory is valid but is the
                    same as the current XmNdirectory, the search
                    procedure must set XmNdirectoryValid to True, but
                    it may elect not to generate a new list of
                    directories.  In this case, it must set
                    XmNlistUpdated to False.

                    If the search procedure generates a new list of
                    directories, it must set XmNdirListItems to the
                    new list of directories and XmNdirListItemCount to
                    the number of items in the list.  If there are no
                    directories, it sets XmNdirListItems to NULL and
                    XmNdirListItemCount to 0 (zero).  In either case,
                    it must set XmNdirectoryValid and XmNlistUpdated
                    to True.

                    The search procedure ordinarily should not change
                    the callback structure.  But if the original
                    directory is not valid, the search procedure may
                    obtain a new directory from the user.  In this
                    case, it should set the dir member of the callback
                    structure to the new directory, call the
                    XmNqualifySearchDataProc with the callback struct
                    as the input argument, and copy the qualified data
                    returned by the XmNqualifySearchDataProc into the
                    callback struct.

          XmNdirSpec
                    Specifies the full file path specification.  This
                    is the XmNtextString resource in SelectionBox,
                    renamed for FileSelectionBox.  The default value
                    is determined by the FileSelectionBox after
                    conducting the initial directory and file search.

          XmNdirTextLabelString
                    Uses the specified XmString as the label above the
                    TextField directory. The resource takes effect
                    when the XmNpathModeresource has a value of
                    XmPATH_MODE_RELATIVE. It is ignored when the
                    XmNpathMode resource has a value of
                    XmPATH_MODE_FULL.

                    Now that some default localized label strings are
                    provided through message catalogs for the children
                    of composite widgets, the labelString resources
                    cannot be set on the child through default
                    resource files.  Instead, the resource provided at
                    the parent level must be used.

          XmNfileFilterStyle
                    Specifies whether or not the "hidden" files (those
                    whose names begin with . (period) in POSIX
                    systems) will be listed in the file and directory
                    scrolling lists (where the default directory
                    search procedure is used).  The possible values
                    are:

                    XmFILTER_NONE
                              Does not filter hidden files.

                    XmFILTER_HIDDEN_FILES
                              Restricts the list of possible file
                              names, such as those beginning with .
                              (period).

          XmNfileListItems
                    Specifies the items in the file list.  This is the
                    XmNlistItems resource in SelectionBox, renamed for
                    FileSelectionBox.  XtGetValues for this resource
                    returns the list items themselves, not a copy of
                    the list items.  The application must not free the
                    returned items.

          XmNfileListItemCount
                    Specifies the number of items in the file list.
                    This is the XmNlistItemCount resource in
                    SelectionBox, renamed for FileSelectionBox.  The
                    value must not be negative.

          XmNfileListLabelString
                    Specifies the label string of the file list.  This
                    is the XmNlistLabelString resource in
                    SelectionBox, renamed for FileSelectionBox.  The
                    default for this resource depends on the locale.
                    In the C locale the default is Files.

                    Now that some default localized label strings are
                    provided through message catalogs for the children
                    of composite widgets, the labelString resources
                    cannot be set on the child through default
                    resource files.  Instead, the resource provided at
                    the parent level must be used.

          XmNfileSearchProc
                    Specifies a file search procedure to replace the
                    default file search procedure.  FileSelectionBox's
                    default file search procedure fulfills the needs
                    of most applications.  Because it is impossible to
                    cover the requirements of all applications, you
                    can replace the default search procedure.

                    The file search procedure is called with two
                    arguments:  the FileSelectionBox widget and a
                    pointer to an XmFileSelectionBoxCallbackStruct
                    structure.  The callback structure is generated by
                    the XmNqualifySearchDataProc (and possibly
                    modified by the XmNdirSearchProc).  It contains
                    all information required to conduct a file search,
                    including the directory mask and a qualified base
                    directory and search pattern.  Once this procedure
                    is called, it is up to the search routine to
                    generate a new list of files and update the
                    FileSelectionBox widget by using XtSetValues.

                    The search procedure must set XmNlistUpdated.  If
                    it generates a new list of files, it must also set
                    XmNfileListItems and XmNfileListItemCount.

                    It is recommended that the search procedure always
                    generate a new list of files.  If the mask member
                    of the callback structure is the same as the mask
                    member of the callback struct in the preceding
                    call to the search procedure, the procedure may
                    elect not to generate a new list of files.  In
                    this case it must set XmNlistUpdated to False.

                    If the search procedure generates a new list of
                    files, it must set XmNfileListItems to the new
                    list of files and XmNfileListItemCount to the
                    number of items in the list.  If there are no
                    files, it sets XmNfileListItems to NULL and
                    XmNfileListItemCount to 0 (zero).  In either case
                    it must set XmNlistUpdated to True.

                    In constructing the list of files, the search
                    procedure should include only files of the types
                    specified by the widget's XmNfileTypeMask.

                    Setting XmNdirSpec is optional, but recommended.
                    Set this attribute to the full file specification
                    of the directory searched.  The directory
                    specification is displayed below the directory and
                    file lists.

          XmNfileTypeMask
                    Specifies the type of files listed in the file
                    list.  The possible values are

                    XmFILE_REGULAR
                              Restricts the file list to contain only
                              regular files.

                    XmFILE_DIRECTORY
                              Restricts the file list to contain only
                              directories.

                    XmFILE_ANY_TYPE
                              Allows the list to contain all file
                              types including directories.

          XmNfilterLabelString
                    Specifies the label string for the text entry
                    field for the directory mask.  The default for
                    this resource depends on the locale.  In the C
                    locale the default is Filter.

                    Now that some default localized label strings are
                    provided through message catalogs for the children
                    of composite widgets, the labelString resources
                    cannot be set on the child through default
                    resource files.  Instead, the resource provided at
                    the parent level must be used.

          XmNlistUpdated
                    Specifies an attribute that is set only by the
                    directory and file search procedures.  This
                    resource is set to True if the search procedure
                    updated the directory or file list.

          XmNnoMatchString
                    Specifies a string to be displayed in the file
                    list if the list of files is empty.

          XmNpattern
                    Specifies the search pattern used in combination
                    with XmNdirectoryin determining the files and
                    directories to be displayed.  The default value is
                    determined by XmNqualifySearchDataProcand depends
                    on the initial values of XmNdirMask, XmNdirectory,
                    and XmNpattern.  If the default is NULL or empty,
                    a pattern that matches all files is used.

          XmNpathMode
                    Specifies whether or not an additional text field
                    will be used to display and edit the filter. The
                    possible values are

                    XmPATH_MODE_FULL
                              Specifies that no additional text field
                              will be used to display the filter.
                              There will just be a single text field
                              to display XmNdirMask.

                    XmPATH_MODE_RELATIVE
                              Specifies that there will be two text
                              field displays, one to display the
                              XmNdirectory and one to display the
                              XmNpattern. In this instance, the
                              XmNfilterLabelString resource applies to
                              the text field for XmNpattern and
                              XmNdirTextLabelString applies to the
                              text field for XmNdirectory.

          XmNqualifySearchDataProc
                    Specifies a search data qualification procedure to
                    replace the default data qualification procedure.
                    FileSelectionBox's default data qualification
                    procedure fulfills the needs of most applications.
                    Because it is impossible to cover the requirements
                    of all applications, you can replace the default
                    procedure.

                    The data qualification procedure is called to
                    generate a qualified directory mask, base
                    directory, and search pattern for use by the
                    directory and file search procedures.  It is
                    called with three arguments:  the FileSelectionBox
                    widget and pointers to two
                    XmFileSelectionBoxCallbackStruct structures.  The
                    first callback structure contains the input data.
                    The second callback structure contains the output
                    data, to be filled in by the data qualification
                    procedure.

                    If the input dir and pattern members are not NULL,
                    the procedure must copy them to the corresponding
                    members of the output callback structure.

                    If the input dir is NULL, the procedure constructs
                    the output dir as follows:  If the input mask
                    member is NULL, the procedure uses the widget's
                    XmNdirectory as the output dir; otherwise, it
                    extracts the output dir from the input mask.  If
                    the resulting output dir is empty, the procedure
                    uses the current working directory instead.
                    If the input pattern is NULL, the procedure
                    constructs the output pattern as follows:  If the
                    input mask member is NULL, the procedure uses the
                    widget's XmNpattern as the output pattern;
                    otherwise, it extracts the output pattern from the
                    input mask.  If the resulting output pattern is
                    empty, the procedure uses a pattern that matches
                    all files instead.

                    The data qualification procedure constructs the
                    output mask from the output dir and pattern.  The
                    procedure must ensure that the output dir,
                    pattern, and mask are fully qualified.

                    If the input value member is not NULL, the
                    procedure must copy it to the output value member;
                    otherwise, the procedure must copy the widget's
                    XmNdirSpec to the output value.

                    The data qualification procedure must calculate
                    the lengths of the output value, mask, dir, and
                    pattern members and must fill in the corresponding
                    length members of the output callback struct.

                    The data qualification procedure must copy the
                    input reason and event members to the
                    corresponding output members.

          The values of the XmNdirSearchProc and XmNfileSearchProcare
          procedure pointers of type XmSearchProc, defined as follows:

          void (* XmSearchProc) (w, search_data)
                  Widget w;
                  XtPointer search_data;

          w         The FileSelectionBox widget

          search_data
                    Pointer to an XmFileSelectionBoxCallbackStruct
                    containing information for conducting a search

          The value of the XmNqualifySearchDataProc resource is a
          procedure pointer of type XmQualifyProc, defined as follows:

          void (* XmQualifyProc) (w, input_data, output_data)
                  Widget w;
                  XtPointer input_data;
                  XtPointer output_data;

          w         The FileSelectionBox widget

          input_data
                    Pointer to an XmFileSelectionBoxCallbackStruct
                    containing input data to be qualified

          output_data
                    Pointer to an XmFileSelectionBoxCallbackStruct
                    containing output data to be filled in by the
                    qualification procedure

        Inherited Resources
          FileSelectionBox inherits behavior and resources from the
          superclasses described in the following tables.  For a
          complete description of each resource, refer to the
          reference page for that superclass.

                                               XmSelectionBox Resource Set
          Name                      Class                     Type             Default                   Access
          XmNapplyCallback          XmCCallback               XtCallbackList   NULL                      C
          XmNapplyLabelString       XmCApplyLabelString       XmString         dynamic                   CSG
          XmNcancelCallback         XmCCallback               XtCallbackList   NULL                      C
          XmNcancelLabelString      XmCCancelLabelString      XmString         dynamic                   CSG
          XmNchildPlacement         XmCChildPlacement         unsigned char    XmPLACE_ABOVE_SELECTION   CSG
          XmNdialogType             XmCDialogType             unsigned char    XmDIALOG_FILE_SELECTION   G
          XmNhelpLabelString        XmCHelpLabelString        XmString         dynamic                   CSG
          XmNlistItemCount          XmCItemCount              int              dynamic                   CSG
          XmNlistItems              XmCItems                  XmStringTable    dynamic                   CSG
          XmNlistLabelString        XmCListLabelString        XmString         dynamic                   CSG
          XmNlistVisibleItemCount   XmCVisibleItemCount       int              dynamic                   CSG
          XmNminimizeButtons        XmCMinimizeButtons        Boolean          False                     CSG
          XmNmustMatch              XmCMustMatch              Boolean          False                     CSG
          XmNnoMatchCallback        XmCCallback               XtCallbackList   NULL                      C
          XmNokCallback             XmCCallback               XtCallbackList   NULL                      C
          XmNokLabelString          XmCOkLabelString          XmString         dynamic                   CSG
          XmNselectionLabelString   XmCSelectionLabelString   XmString         dynamic                   CSG
          XmNtextAccelerators       XmCTextAccelerators       XtAccelerators   default                   C
          XmNtextColumns            XmCColumns                short            dynamic                   CSG
          XmNtextString             XmCTextString             XmString         dynamic                   CSG

                                      XmBulletinBoard Resource Set
          Name                   Class                  Type             Default         Access
          XmNallowOverlap        XmCAllowOverlap        Boolean          True            CSG
          XmNautoUnmanage        XmCAutoUnmanage        Boolean          False           CG
          XmNbuttonFontList      XmCButtonFontList      XmFontList       dynamic         CSG
          XmNbuttonRenderTable   XmCButtonRenderTable   XmRenderTable    dynamic         CSG
          XmNcancelButton        XmCWidget              Widget           Cancel button   SG
          XmNdefaultButton       XmCWidget              Widget           OK button       SG
          XmNdefaultPosition     XmCDefaultPosition     Boolean          True            CSG
          XmNdialogStyle         XmCDialogStyle         unsigned char    dynamic         CSG
          XmNdialogTitle         XmCDialogTitle         XmString         NULL            CSG
          XmNfocusCallback       XmCCallback            XtCallbackList   NULL            C
          XmNlabelFontList       XmCLabelFontList       XmFontList       dynamic         CSG

          XmNlabelRenderTable    XmCLabelRenderTable    XmRenderTable    dynamic         CSG
          XmNmapCallback         XmCCallback            XtCallbackList   NULL            C
          XmNmarginHeight        XmCMarginHeight        Dimension        10              CSG
          XmNmarginWidth         XmCMarginWidth         Dimension        10              CSG
          XmNnoResize            XmCNoResize            Boolean          False           CSG
          XmNresizePolicy        XmCResizePolicy        unsigned char    XmRESIZE_ANY    CSG
          XmNshadowType          XmCShadowType          unsigned char    XmSHADOW_OUT    CSG
          XmNtextFontList        XmCTextFontList        XmFontList       dynamic         CSG
          XmNtextRenderTable     XmCTextRenderTable     XmRenderTable    dynamic         CSG
          XmNtextTranslations    XmCTranslations        XtTranslations   NULL            C
          XmNunmapCallback       XmCCallback            XtCallbackList   NULL            C

                                                XmManager Resource Set
          Name                      Class                   Type                Default                Access
          XmNbottomShadowColor      XmCBottomShadowColor    Pixel               dynamic                CSG
          XmNbottomShadowPixmap     XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
          XmNforeground             XmCForeground           Pixel               dynamic                CSG
          XmNhelpCallback           XmCCallback             XtCallbackList      NULL                   C
          XmNhighlightColor         XmCHighlightColor       Pixel               dynamic                CSG
          XmNhighlightPixmap        XmCHighlightPixmap      Pixmap              dynamic                CSG
          XmNinitialFocus           XmCInitialFocus         Widget              dynamic                CSG
          XmNlayoutDirection        XmCLayoutDirection      XmDirection         dynamic                CG
          XmNnavigationType         XmCNavigationType       XmNavigationType    XmTAB_GROUP            CSG
          XmNpopupHandlerCallback   XmCCallback             XtCallbackList      NULL                   C
          XmNshadowThickness        XmCShadowThickness      Dimension           dynamic                CSG
          XmNstringDirection        XmCStringDirection      XmStringDirection   dynamic                CG
          XmNtopShadowColor         XmCTopShadowColor       Pixel               dynamic                CSG
          XmNtopShadowPixmap        XmCTopShadowPixmap      Pixmap              dynamic                CSG
          XmNtraversalOn            XmCTraversalOn          Boolean             True                   CSG
          XmNunitType               XmCUnitType             unsigned char       dynamic                CSG
          XmNuserData               XmCUserData             XtPointer           NULL                   CSG

                                  Composite Resource Set
          Name                Class               Type          Default   Access
          XmNchildren         XmCReadOnly         WidgetList    NULL      G
          XmNinsertPosition   XmCInsertPosition   XtOrderProc   NULL      CSG
          XmNnumChildren      XmCReadOnly         Cardinal      0         G

                                                        Core Resource Set
          Name                            Class                           Type             Default                Access
          XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                N/A
          XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
          XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
          XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
          XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
          XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
          XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
          XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
          XmNdepth                        XmCDepth                        int              dynamic                CG
          XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C

          XmNheight                       XmCHeight                       Dimension        dynamic                CSG
          XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
          XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
          XmNscreen                       XmCScreen                       Screen *         dynamic                CG
          XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
          XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
          XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
          XmNx                            XmCPosition                     Position         0                      CSG
          XmNy                            XmCPosition                     Position         0                      CSG

        Callback Information
          A pointer to the following structure is passed to each
          callback:

          typedef struct
          {
                  int reason;
                  XEvent * event;
                  XmString value;
                  int length;
                  XmString mask;
                  int mask_length;
                  XmString dir;
                  int dir_length;
                  XmString pattern;
                  int pattern_length;
          } XmFileSelectionBoxCallbackStruct;

          reason    Indicates why the callback was invoked

          event     Points to the XEvent that triggered the callback

          value     Specifies the current value of XmNdirSpec

          length    Specifies the number of bytes in valueThis member
                    is obsolete and exists for compatibility with
                    earlier releases.

          mask      Specifies the current value of XmNdirMask

          mask_length
                    Specifies the number of bytes in maskThis member
                    is obsolete and exists for compatibility with
                    earlier releases.

          dir       Specifies the current base directory

          dir_length
                    Specifies the number of bytes in dirThis member is
                    obsolete and exists for compatibility with earlier
                    releases.

          pattern   Specifies the current search pattern

          pattern_length
                    Specifies the number of bytes in patternThis
                    member is obsolete and exists for compatibility
                    with earlier releases.

        Translations
          XmFileSelectionBox inherits translations from
          XmSelectionBox.

        Accelerators
          The XmNtextAccelerators from XmSelectionBox are added to the
          selection and directory mask (filter) Text descendants of
          XmFileSelectionBox.

        Action Routines
          The XmFileSelectionBox action routines are

          SelectionBoxUpOrDown(Previous|Next|First|Last):
                    If neither the selection text nor the directory
                    mask (filter) text has the focus, this action does
                    nothing.

                    If the selection text has the focus, the term list
                    in the following description refers to the file
                    list, and the term textrefers to the selection
                    text.  If the directory mask text has the focus,
                    list refers to the directory list, and text refers
                    to the directory mask text.

                    When called with an argument of Previous, or 0
                    (zero) for compatibility, this action selects the
                    previous item in the list and replaces the text
                    with that item.

                    When called with an argument of Next, or 1 for
                    compatibility, this action selects the next item
                    in the list and replaces the text with that item.

                    When called with an argument of First, or 2 for
                    compatibility, this action selects the first item
                    in the list and replaces the text with that item.

                    When called with an argument of Last, or 3 for
                    compatibility, this action selects the last item
                    in the list and replaces the text with that item.

          SelectionBoxRestore():
                    If neither the selection text nor the directory
                    mask (filter) text has the focus, this action does
                    nothing.
                    If the selection text has the focus, this action
                    replaces the selection text with the selected item
                    in the file list.  If no item in the file list is
                    selected, it clears the selection text.

                    If the directory mask text has the focus, this
                    action replaces the directory mask text with a new
                    directory mask constructed from the
                    XmNdirectoryand XmNpattern resources.

        Additional Behavior
          The FileSelectionBox widget has the following additional
          behavior:

          <Key><osfCancel>:
                    Calls the activate callbacks for the cancel button
                    if it is sensitive.  If no cancel button exists
                    and the parent of the FileSelectionBox is a
                    manager, it passes the event to the parent.

          <Key><osfActivate> in Selection Text:
                    Calls the selection text widget's
                    XmNactivateCallback callbacks.  If XmNmustMatch is
                    True and the selection text does not match an item
                    in the file list, it calls the
                    XmNnoMatchCallbackcallbacks with reason
                    XmCR_NO_MATCH.  Otherwise, it calls the
                    XmNokCallback callbacks with reason XmCR_OK.

          <Key><osfActivate> in Directory Mask Text:
                    Calls the directory mask text widget's
                    XmNactivateCallbackcallbacks, initiates a
                    directory and file search, and calls the
                    XmNapplyCallback callbacks with reason XmCR_APPLY.

          <Btn1Down>(2+) or <Key><osfActivate> in Directory List:
                    Calls the directory list widget's
                    XmNdefaultActionCallbackcallbacks, initiates a
                    directory and file search, and calls the
                    XmNapplyCallback callbacks with reason XmCR_APPLY.

          <Btn1Down>(2+) or <Key><osfActivate> in File List:
                    Calls the file list widget's
                    XmNdefaultActionCallbackcallbacks and calls the
                    XmNokCallback callbacks with reason XmCR_OK.

          <Key><osfSelect> in Directory List:
                    Generates a new directory mask, using the selected
                    list item as the directory and the pattern
                    extracted from the current directory mask text as
                    the search pattern.  If the search pattern is
                    empty, it uses a pattern that matches all files in
                    the directory.  Replaces the directory mask text
                    with the new directory mask.

          <Key><osfSelect> in File List:
                    Replaces the selection text with the selected list
                    item.

          <Btn2Down> in File List:
                    Drags the content of one or more selected list
                    items using the drag and drop facility. If
                    <Btn2Down is pressed on an unselected item, drags
                    only that item, excluding any other selected
                    items.

                    This action sets the XmNconvertProc of the
                    DragContext to a function that calls the
                    XmNconvertCallback procedures of the file list,
                    possibly multiple times, for the _MOTIF_DROP
                    selection.

          <Btn2Down> in Directory List:
                    Drags the content of one or more selected list
                    items using the drag and drop facility. If
                    <Btn2Down is pressed on an unselected item, it
                    drags only that item, excluding any other selected
                    items.

                    This action sets the XmNconvertProc of the
                    DragContext to a function that calls the
                    XmNconvertCallback procedures of the directory
                    list, possibly multiple times, for the
                    _MOTIF_DROPselection.

          <Apply Button Activated>:
                    Initiates a directory and file search.  Calls the
                    XmNapplyCallback callbacks with reason XmCR_APPLY.

          <OK Button Activated>:
                    If XmNmustMatch is True and the selection text
                    does not match an item in the file list, calls the
                    XmNnoMatchCallback callbacks with reason
                    XmCR_NO_MATCH.  Otherwise, calls the XmNokCallback
                    callbacks with reason XmCR_OK.

          <Cancel Button Activated>:
                    Calls the XmNcancelCallback callbacks with reason
                    XmCR_CANCEL.

          <Help Button Activated>:
                    Calls the XmNhelpCallback callbacks with reason
                    XmCR_HELP.

          <Key><osfActivate>:
                    If no button, list widget, or text widget has the
                    keyboard focus, if XmNmustMatch is True and the
                    selection text does not match an item in the file
                    list, it calls the XmNnoMatchCallback callbacks
                    with reason XmCR_NO_MATCH.  Otherwise, it calls
                    the XmNokCallback callbacks with reason XmCR_OK.

        Virtual Bindings
          The bindings for virtual keys are vendor specific.  For
          information about bindings for virtual buttons and keys, see
          VirtualBindings(3).

     RELATED
          Composite(3), Constraint(3), Core(3), XmBulletinBoard(3),
          XmCreateFileSelectionBox(3), XmCreateFileSelectionDialog(3),
          XmFileSelectionBoxGetChild(3), XmFileSelectionDoSearch(3),
          XmManager(3), and XmSelectionBox(3).