dtfpfile

special file

`dtfpfile`

format and locations of front panel configuration files

    set DtDbVersion=version_number
    set VariableName=variable_value
    RecordType record_name
    {
            # Comment
            Keyword Value
            Keyword Value
            ...
    }

## DESCRIPTION

The `dtfpfile` front panel database provides definitions for the components that define the content and functionality of the front panel. Files containing front panel definitions must end with the `.fp` suffix. Like the action and data type database, the front panel database is constructed by reading all files ending in the `.fp` suffix found in the search path specified by the `DTDATABASESEARCHPATH` environment variable.

See &cdeman.dtdtfile; for a complete description of the directory locations where these database files are found and for a description of the specific syntax for the database files.

### File Format

The general syntax of the front panel configuration files is as described above in the SYNOPSIS section of this man page.

The Comments, Versions and Variables fields are described in &cdeman.dtdtfile;.

The front panel record types each have a set of Keyword and Value pairs. There are six record types defined: `PANEL`, `BOX`, `SUBPANEL`, `SWITCH`, `CONTROL` and `ANIMATION`. Each record type has a set of keywords defined for it. Many of the keywords are used for multiple record types.

### Record Types

PANEL front panel name

- The `PANEL` record type defines the outermost container of the front panel. It can contain one or more `BOX`es and optionally repositioning handles, a menu and a minimize button. The keywords defined for `PANEL` are described in the following table.

`PANEL Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
CONTROL_BEHAVIOR | (`double_click`/ `single_click`) | single_click
DISPLAY_CONTROL_LABELS | (`True`/`False`) | False
DISPLAY_HANDLES | (`True`/`False`) | True
DISPLAY_MENU | (`True`/`False`) | True
DISPLAY_MINIMIZE | (`True`/`False`) | True
HELP_STRING | string | NULL
HELP_TOPIC | topic name | NULL
HELP_VOLUME | volume name | FPanel
LOCKED | (`True`/`False`) | False
PANEL_GEOMETRY | {+-}xoffset[{+-}yoffset] | NULL
RESOLUTION | (`high`/`medium` /`low`/`match_display`) | match_display
SUBPANEL_UNPOST | (`True`/`False`) | True

BOX box name

- The `BOX` record type defines a container within a `PANEL` that can hold a row of `CONTROLS` and at most one `SWITCH` container. Multiple `BOX`es within a `PANEL` are stacked vertically. The keywords defined for `BOX` are described in the following table.

`BOX Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
CONTAINER_NAME | front panel name | NULL (required)
DELETE | (`True`/`False`) | False
HELP_STRING | string | NULL
HELP_TOPIC | topic name | NULL
HELP_VOLUME | volume name | FPanel
LOCKED | (`True`/`False`) | False
POSITION_HINTS | (`first`/`last`/integer ≥ 1) | first

SUBPANEL subpanel name

- The `SUBPANEL` record type defines a secondary container for `CONTROL`s that slide up from the front panel. `SUBPANEL` s can also contain a drop zone where new controls can be dynamically added. The keywords defined for `SUBPANEL` are described in the following table.

`SUBPANEL Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
CONTAINER_NAME | control name | NULL (required)
CONTROL_INSTALL | (`True`/`False`) | True
DELETE | (`True`/`False`) | False
HELP_STRING | string | NULL
HELP_TOPIC | topic name | NULL
HELP_VOLUME | volume name | FPanel
LOCKED | (`True`/`False`) | False
TITLE | string | NULL

SWITCH switch name

- The `SWITCH` record type defines a container within a `BOX` that contains a set of push buttons, each of which give access to a corresponding workspace. See &cdeman.dtwm; for a description of the multiple workspace capabilities. Also contained within the `SWITCH` container is an optional set of `CONTROL`s. These are presented in a column on each side of the push buttons. The keywords defined for `SWITCH` are described in the following table.

`SWITCH Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
CONTAINER_NAME | box name | NULL (required)
DELETE | (`True`/`False`) | False
HELP_STRING | string | NULL
HELP_TOPIC | topic name | NULL
HELP_VOLUME | volume name | FPanel
LOCKED | (`True`/`False`) | False
NUMBER_OF_ROWS | integer | 2
POSITION_HINTS | (`first`/`last`/integer ≥ 1) | first

CONTROL control name

- The `CONTROL` record type defines the main functional component of the front panel. `CONTROL`s typically have actions defined for them that are invoked on selection or drag and drop or both. `CONTROL` s are displayed with icons or labels or both and can have iconic animations associated with them. The keywords defined for `CONTROL` are described in the following table.

`CONTROL Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
ALTERNATE_ICON | image name | NULL
CLIENT_GEOMETRY | width `x` height | NULL
CLIENT_NAME | client name | NULL
CONTAINER_NAME | (box name/ switch name/subpanel name) | NULL (required)
CONTAINER_TYPE | (BOX/SWITCH/ SUBPANEL) | NULL (required)
DATE_FORMAT | format string | %b%n%e
DELETE | (`True`/`False`) | False
DROP_ACTION | action_name | NULL
DROP_ANIMATION | animation name | NULL
FILE_NAME | pathname | NULL
HELP_STRING | string | NULL
HELP_TOPIC | topic name | NULL
HELP_VOLUME | volume name | FPanel
ICON | image name | NULL
LABEL | string | NULL
LOCKED | (`True`/`False`) | False
MONITOR_TYPE | (`none`/`mail`/ `file`) | none
POSITION_HINTS | (`first`/`last`/integer ≥ 1) | first
PUSH_ACTION | action_name | NULL
PUSH_ANIMATION | animation name | NULL
PUSH_RECALL | (`True`/`False`) | False
TYPE | (`blank`/`busy`/ `client`/`clock`/`date`/ `file`/`icon`) | icon

ANIMATION animation name

- The `ANIMATION` record types are a sequence of image name and time delay pairs that are displayed by a `CONTROL` on a `PUSH_ACTION` or `DROP_ACTION`.

`ANIMATION Record Type Keywords and Values`
`Keyword` | `Value` | `Default`
ANIMATION | image name [ millisecond delay] | None [200]

### Keyword and Value Descriptions

The following list contains a description of each of the keywords defined by the front panel.

ALTERNATE_ICON

- Used with record types of: `CONTROL`.

  Used with control types of: `busy` and `icon`.

  `ALTERNATE_ICON` defines an image to be used to replace the normal image within a control with a mail or file value for the `MONITOR_TYPE`. The image is displayed when the file being monitored changes. For the `busy` control, `ALTERNATE_ICON` is cycled with `ICON` to give the blinking effect.

ANIMATION

- Used with record types of: `ANIMATION`.

  Used with control keywords of: `PUSH_ANIMATION` and `DROP_ANIMATION`.

  `ANIMATION` defines a sequence of images to be displayed for either a `PUSH_ACTION` or `DROP_ACTION`. Each animation within the list is displayed in order with a default time separation of 200 milliseconds. For a slower or faster sequence, the image name value can be followed by the amount of time to display the image. If no time value is specified, the previously specified value is used.

CLIENT_GEOMETRY

- Used with record types of: `CONTROL`.

  Used with control type of: `client`.

  Used with control keywords of: `CLIENT_NAME`.

  `CLIENT_GEOMETRY` specifies the size (in pixels) needed for the window of a client displayed within the front panel.

CLIENT_NAME

- Used with record types of: `CONTROL`.

  Used with control types of: `client` or `icon`.

  Used with control keywords of: `PUSH_RECALL`.

  `CLIENT_NAME` specifies a name used to associate a control with an executable. It is necessary for control types of `client` (an X client running within the front panel) and for `icon` when the keyword `PUSH_RECALL` is True. The value client name is the name of the executable or can be set via a command-line argument for some clients (such as `xterm` `-name` panelterm). The client name for a running client can be found by executing xprop. The first string of the `WM_CLASS` property is the value used.

CONTAINER_NAME

- Used with record types of: `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  `CONTAINER_NAME` associates a component with its parent. For example, the `CONTAINER_NAME` value for a `SWITCH` tells the front panel into which `BOX` it should be placed. Since controls can reside in several different component types, `CONTAINER_NAME` is used in conjunction with `CONTAINER_TYPE` to define a control's parent.

CONTAINER_TYPE

- Used with record types of: `CONTROL`.

  `CONTAINER_TYPE` defines a control's parent type. This is used to identify a control uniquely so that it can be created within the proper parent.

CONTROL_BEHAVIOR

- Used with record types of: `PANEL`.

  `CONTROL_BEHAVIOR` provides the mechanism for setting the user model for front panel controls. Controls can be set to invoke their `PUSH_ACTION` by either a single or double click.

CONTROL_INSTALL

- Used with record types of: `SUBPANEL`.

  `CONTROL_INSTALL` enables or disables dynamic control installation into subpanels. A value of True causes the control installation area to be displayed within the subpanel.

DATE_FORMAT

- Used with record types of: `CONTROL`.

  Used with control types of: `date`.

  `DATE_FORMAT` specifies the layout of the date string for a control of type `date`. The format is the same used by the UNIX `strftime`(3) function.

DELETE

- Used with record types of: `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  `DELETE` is used to override and remove a non-locked component from the front panel. This is necessary to eliminate system default front panel components without replacing the default files. To use `DELETE`, a copy of the component definition with the additional `DELETE` keyword is stored in a file with an `.fp` suffix in the user's or application type's directory.

DISPLAY_CONTROL_LABELS

- Used with record types of: `PANEL`.

  `DISPLAY_CONTROL_LABELS` specifies whether the controls contained within the front panel's boxes have their labels displayed.

DISPLAY_HANDLES

- Used with record types of: `PANEL`.

  If `DISPLAY_HANDLES` is set to True, the move handles are displayed along the left and right edges of the front panel.

DISPLAY_MENU

- Used with record types of: `PANEL`.

  If `DISPLAY_MENU` is set to True, and `DISPLAY_HANDLES` is also set to True, the system menu button is displayed in the upper left hand corner of the front panel.

DISPLAY_MINIMIZE

- Used with record types of: `PANEL`.

  If `DISPLAY_MINIMIZE` is set to True, and `DISPLAY_HANDLES` is also set to True, the minimize button is displayed in the upper right hand corner of the front panel.

DROP_ACTION

- Used with record types of: `CONTROL`.

  `DROP_ACTION` specifies the function that is invoked when a drop occurs on the control.

DROP_ANIMATION

- Used with record types of: `CONTROL`.

  Used with all control types except: `client`.

  `DROP_ANIMATION` specifies the name of an animation record to be displayed when a drop occurs on the control. The control must have a `DROP_ACTION` defined for the animation to be used.

FILE_NAME

- Used with record types of: `CONTROL`.

  Used with control types of: `icon` and `file`.

  For the control type of `file`, `FILE_NAME` is the pathname of the file to be used for the control. The file's file type, actions and images are extracted from the action database for the control.

  For `MONITOR_TYPE` `mail` and `file`, `FILE_NAME` specifies the pathname of the file the front panel monitors for either mail arrival or some other user-defined data.

  For `MONITOR_TYPE` `file`, the `ALTERNATE_ICON` image is displayed when the monitored file is non-empty. The `ICON` image is displayed if the file is empty or non-existent.

  For `MONITOR_TYPE` `mail`, the `ALTERNATE_ICON` image is displayed when the file increases in size.

HELP_STRING

- Used with record types of: `PANEL`, `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  `HELP_STRING` specifies an on-line help string to display when help is requested over a front panel component. Since each component type can have a help string associated with it, there is a precedence used in deciding which help string to display. Control help takes precedence over box help, switch help and subpanel help. Box help takes precedence over subpanel help. The `HELP_STRING` value is used only if no `HELP_TOPIC` value is defined.

HELP_TOPIC

- Used with record types of: `PANEL`, `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  `HELP_TOPIC` specifies an on-line help topic that is used with either the default help volume or a help volume specified by the `HELP_VOLUME` keyword to display help information when requested over a front panel component. Like the `HELP_STRING` keyword, each component type can have a help topic associated with it and the same precedence rules are used.

HELP_VOLUME

- Used with record types of: `PANEL`, `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  When `HELP_VOLUME` is used in conjunction with `HELP_TOPIC`, it defines the help information to be displayed for a front panel component.

ICON

- Used with record types of: `CONTROL`.

  Used with control types of: `icon`, `file` and `busy`.

  `ICON` specifies the image to be displayed within a control.

LABEL

- Used with record types of: `CONTROL`.

  Used with control types of: `icon`, `file`, `clock` and `busy`.

  `LABEL` specifies the string to be displayed when a control is in a subpanel.

LOCKED

- Used with record types of: `PANEL`, `BOX`, `SUBPANEL`, `SWITCH` and `CONTROL`.

  `LOCKED` provides the mechanism to prevent a component definition of identical type, name and parent from overriding (replacing) this definition. Since the front panel can be defined within multiple configuration files, it provides the flexibility to override components found earlier in the search path. Like actions and file types, this allows the front panel to be customized at several levels.

MONITOR_TYPE

- Used with record types of: `CONTROL`.

  Used with control types of: `icon` and `file`

  `MONITOR_TYPE` specifies the method of checking the file being monitored, specified by the keyword `FILE_NAME`.

NUMBER_OF_ROWS

- Used with record types of: `SWITCH`.

  `NUMBER_OF_ROWS` provides control over the layout of the workspace switch buttons. The switch buttons are arranged in a row and column layout with the `NUMBER_OF_ROWS` keyword defining the number of rows in the layout. The number of columns is derived from this value and the total number of switch buttons.

PANEL_GEOMETRY

- Used with record types of: `PANEL`.

  `PANEL_GEOMETRY` specifies a non-default location to position the front panel when it is created. By default, the front panel is centered along the bottom of the display.

POSITION_HINTS

- Used with record types of: `BOX`, `SWITCH` and `CONTROL`.

  `POSITION_HINTS` specifies the ordering of boxes in the front panel, the switch and controls in boxes, and controls in subpanels. When two components have the same value for `POSITION_HINTS`, the first one read from the configuration file is placed first.

PUSH_ACTION

- Used with record types of: `CONTROL`.

  `PUSH_ACTION` specifies the function that is invoked when a selection occurs on the control.

PUSH_ANIMATION

- Used with record types of: `CONTROL`.

  Used with all control types except: `client`.

  `PUSH_ANIMATION` specifies the name of an animation record to be displayed when a selection occurs on the control. The control must have a `PUSH_ACTION` defined for the animation to be used.

PUSH_RECALL

- Used with record types of: `CONTROL`.

  Used with control keywords of: `CLIENT_NAME`.

  When `PUSH_RECALL` is set to True, it specifies that only one process can be started by the control. If the process is already running, it is displayed within the current workspace and shuffled to the top of the window stack. The value for the `CLIENT_NAME` keyword is used to identify the process for push recall behavior.

RESOLUTION

- Used with record types of: `PANEL`.

  `RESOLUTION` allows the icon set for the front panel to be forced to a particular set. By default, the front panel determines the display resolution at runtime and chooses the high resolution icon set if the display width is 1024 pixels or wider.

SUBPANEL_UNPOST

- Used with record types of: `PANEL`.

  When `SUBPANEL_UNPOST` is set to True, it causes a subpanel to hide itself whenever a `PUSH_ACTION` occurs on one of the subpanel controls. If the subpanel has been torn off of the front panel, the behavior of the subpanel is forced to remain posted on `PUSH_ACTION`.

TITLE

- Used with record types of: `SUBPANEL`.

  `TITLE` specifies the string to be displayed in the title area of the subpanel.

TYPE

- Used with record types of: `CONTROL`.

  A number of different control types are defined by the front panel:

  `blank`

- Space-holder control

`busy`

- Busy light

`client`

- A client window

`clock`

- Front panel clock

`date`

- Front panel date

`file`

- References a file on the file system and uses that file's actions and image

`icon`

- Front panel general control

## FILES

The default front panel configuration file is `/usr/dt/appconfig/types/C/dtwm.fp`.

Files containing the attributes of dynamically created front panel components are in the directory `$HOME/.dt/types/fp_dynamic`.

## APPLICATION USAGE

Errors encountered when loading front panel database files are written to the user's `$HOME/.dt/errorlog` file.

## SEE ALSO

&cdeman.dtwm;, `strftime`(3), &cdeman.dtdtfile;.