XF(1X) X Version 11 XF(1X) 17 July 1988 NAME xf - X window filename tool SYNOPSIS xf [-a] [directory_name ...] DESCRIPTION The xf program is a visual tool for generating a collection of filenames from a variety of directories, typically as the command-line input to a program like rm(1) or chmod(1). Xf has two different window types, a directory window and a dialog window. The directory window is labeled with a directory name, and the directory's files are displayed in a matrix (the Set widget); any number of entries may be highlighted by calling the Set widget's Toggle() translation function (bound to None<Btn1Down> by default). Note that this is different from the Athena List widget (from which Set was derived). Highlighting a Set widget entry has nothing to do with the Xt selection mechanism -- no selection is exported from xf. The directory window has four buttons: "Up" which opens a directory window on the next higher directory; "Done" which causes the set of all highlighted file names in all current xf windows to appear on stdout, and the program to exit; "Quit" which simply causes the program to exit; and "Enter Filename" which causes a pathname-prompt window to be opened. The pathname-prompt window allows entry of an absolute or relative (to the directory from which xf was called) pathname, and causes an xf window to be opened in the specified directory. It has only one button, "Confirm" which is pressed when the typed in filename is correct. Typing Return within the prompt window has the same effect as pressing the "Confirm" button. The default behavior of the Text child of the Dialog widget is determined by the app-defaults file (see below). OPTIONS Xf accepts all of the standard X Toolkit command line options along with the additional options listed below: -a File names that begin with '.' will not be suppressed. This is reminiscent of ls(1). The following standard X Toolkit command line arguments are commonly used with xf: -bg color This option specifies the color to use for the background of the window. The default is white. - 1 - Formatted: January 15, 2025 XF(1X) X Version 11 XF(1X) 17 July 1988 -bd color This option specifies the color to use for the border of the window. The default is black. -bw number This option specifies the width in pixels of the border surrounding the window. -fg color This option specifies the color to use for displaying text. The default is black. -fn font This option specifies the font to be used for displaying normal text. The default is 6x10. -rv This option indicates that reverse video should be simulated by swapping the foreground and background colors. -display host:display This option specifies the X server to contact. -xrm resourcestring This option specifies a resource string to be used. X DEFAULTS The xf directory window is based upon the Set widget, a variant of the List widget (from the Athena widget set). The directory window consists of a Form widget ("form") containing a Label widget ("label"), a Set widget ("set"), and four Command widgets ("up", "quit", "done", "dir_name"). The dialog window is a Dialog widget ("dialog") with a child Command widget ("confirm"). Xf understands all of the core and relevant Athena resource names and classes for both of its window types. The Set widget recognizes the following additional names and classes: columnSpacing (class Spacing) Specifies the space between columns in the Set widget. The default is 6 in the Set widget, 10 in xf. rowSpacing (class Spacing) Specifies the space between rows in the Set widget. The default is 4 in the Set widget, 4 in xf. defaultColumns (class Columns) Specifies the number of columns the contents of the Set widget will be displayed in. forceColumns (class Boolean) Force the Set widget to use exactly defaultColumns columns. - 2 - Formatted: January 15, 2025 XF(1X) X Version 11 XF(1X) 17 July 1988 The default resources for xf are: ! ! *** The dialog.label string must be padded with ! blanks to get the right effect from the funky Dialog widget... ! Xf*dialog.label: \ Enter Directory Name * Xf*dialog.maximumLength: 128 Xf*dialog.confirm.label: Confirm Xf*value.translations: #replace0 Ctrl<Key>U: beginning-of-line() kill-to-end-of-line()0 Ctrl<Key>H: delete-previous-character()0 <Key>Delete: delete-previous-character()0 <Key>Return: 0 <Key>: insert-char() Xf*confirm.accelerators: #override 0 <Key>Return: set() notify() unset() ! ! The directory box... ! Xf*form.set.defaultColumns: 5 Xf*form.set.columnSpacing: 10 Xf*form.set.verticalSet: on ! ! What the Set widget should do... ! Xf*form.set.translations:\ None <Btn1Down>: Toggle()0 None <Btn2Down>: Toggle()0 None <Btn2Up>: Toggle() NotifyB() ! Xf*form.up.label: Up Xf*form.quit.label: Quit Xf*form.done.label: Done Xf*form.dir_name.label: Enter Directory Name ! ! ! *** The dialog.label string must be padded with ! blanks to get the right effect from the funky Dialog widget... ! Xf*dialog.label: \ Enter Directory Name * Xf*dialog.maximumLength: 128 Xf*dialog.confirm.label: Confirm Xf*value.translations: #replace0 Ctrl<Key>U: beginning-of-line() kill-to-end-of-line()0 Ctrl<Key>H: delete-previous-character()0 <Key>Delete: delete-previous-character()0 <Key>Return: 0 <Key>: insert-char() Xf*confirm.accelerators: #override 0 <Key>Return: set() notify() unset() ! ! The directory box... ! Xf*form.set.defaultColumns: 5 Xf*form.set.columnSpacing: 10 Xf*form.set.verticalSet: on ! ! What the Set widget should do... ! Xf*form.set.translations:\ None <Btn1Down>: Toggle()0 None <Btn2Down>: Toggle()0 None <Btn2Up>: Toggle() NotifyB() ! Xf*form.up.label: Up Xf*form.quit.label: Quit Xf*form.done.label: Done Xf*form.dir_name.label: Enter Directory Name ! X TRANSLATIONS The Set widget supports the following translation functions Toggle() Toggles the foreground and background colors on the entry in the Set widget element which was clicked on. NotifyA(), NotifyB(), NotifyC() Different callbacks may be bound to each of these functions, they have no other side effects. Xf uses NotifyB() to open the subdirectory which was clicked on. An error is printed if the clicked-on entry was not a subdirectory. - 3 - Formatted: January 15, 2025 XF(1X) X Version 11 XF(1X) 17 July 1988 The default translations are set in the resource defaults described above. SEE ALSO ls(1), X(1), xrdb(1), Athena List, Command, Label, and Dialog widgets BUGS Xf should support the selection mechanism. Somehow. Very large directories can cause the window to grow right off the screen -- rather inconvenient since then the buttons disappear. COPYRIGHT Copyright 1989 Regents of the University of California. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies. The University of California makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. Some parts of xf are copyright MIT, 1988. AUTHORS Gary Shea (UC Berkeley) Chris D. Peterson (MIT-Athena) - 4 - Formatted: January 15, 2025