OpenVMS Directory Name | UNIX Path Specification |
---|---|
CDE$USER_DEFAULTS:[000000] | /etc/dt |
CDE$USER_DEFAULTS:[APPCONFIG] | /etc/dt/appconfig |
CDE$USER_DEFAULTS: - [APPCONFIG.APPMANAGER.lang] |
/etc/dt/appconfig/appmanager/<lang> |
CDE$USER_DEFAULTS:[APPCONFIG.HELP.lang] | /etc/dt/appconfig/help/<lang> |
CDE$USER_DEFAULTS:[APPCONFIG.ICONS.lang] | /etc/dt/appconfig/icons/<lang> |
CDE$USER_DEFAULTS:[APPCONFIG.TYPES.lang] | /etc/dt/appconfig/types/<lang> |
CDE$USER_DEFAULTS:[BACKDROPS] | /etc/dt/backdrops |
CDE$USER_DEFAULTS:[CONFIG] | /etc/dt/config |
CDE$USER_DEFAULTS:[CONFIG.lang] | /etc/dt/config/<lang> |
CDE$USER_DEFAULTS:[PALETTES] | /etc/dt/palettes |
Table A-3 shows the directories that are used for individual users' customizations.
OpenVMS Directory Name | UNIX Path Specification |
---|---|
disk$:[user.DT] | $HOME/.dt |
disk$:[user.DT.APPMANAGER] | $HOME/.dt/appmanager |
disk$:[user.DT.HELP] | $HOME/.dt/help |
disk$:[user.DT.ICONS] | $HOME/.dt/icons |
disk$:[user.DT.PALETTES] | $HOME/.dt/palettes |
disk$:[user.DT.SESSIONS] | $HOME/.dt/sessions |
disk$:[user.DT.TMP] | $HOME/.dt/tmp |
disk$:[user.DT.TYPES] | $HOME/.dt/types |
The font directories of the New Desktop and the corresponding UNIX path specifications are shown in Table A-4.
OpenVMS Directory Name | UNIX Path Specification |
---|---|
CDE$SYSTEM_DEFAULTS:[CONFIG.XFONTS.C.100DPI] | /usr/dt/config/xfonts/C/100dpi |
CDE$SYSTEM_DEFAULTS:[CONFIG.XFONTS.C.75DPI] | /usr/dt/config/xfonts/C/75dpi |
This appendix describes the New Desktop support for multiple screens
and what you need to do to enable this support.
B.1 Overview of Multiple Screens With a Single Display
The New Desktop supports a single X display with multiple screens, as shown in Figure B-1. This configuration is sometimes called a dual-headed display. Figures B-1 Single X Display With Multiple Screens
With this configuration, each screen served by the X server is a desktop. The Front Panel appears on only one desktop (usually screen 0 of display 0). You can move the pointer from screen to screen by moving it beyond the left and right sides of the desktop. You can place icons on a screen's desktop only if File Manager or Application Manager (dtfile) has been started on that screen. Icons cannot be dragged from one screen and dropped on another.
You can add certain functions to the Window Manager configuration file that make configuring and manipulating multiple screens easier and quicker. These functions (described in Section B.2) enable you to create and change workspaces on any screen.
In a multiple-screen configuration, one screen is the default or current screen. You establish the default screen with the Set Default Screen application in Application Manager's Desktop Tools group. All applications that are subsequently started from either the Front Panel or File Manager will be started on the default screen.
File Manager, Application Manager, and Trash Can are actually windows from the same dtfile application. Only one dtfile application will be active in your session. The first invocation of File Manager, Application Manager, or Trash Can defines the screen used for all future invocations of these tools. They will always be on the same screen.
The Window Manager functions that are required for using multiple screens are described in Table B-1.
Function | Description |
---|---|
f.screen [next|prev|back| screen_number] |
Causes the pointer to move to a specific screen number or to the next, previous, or last-visited (back) screen. The arguments to this function are mutually exclusive. The screen_number argument indicates the screen to which the pointer is to go. Screen numbers start with screen 0. Next or prev causes the pointer to move to the next or previous managed screen (skipping over any unmanaged screens). Specifying back causes the pointer to move to the last-visited screen. |
f.create_workspace | Creates a new workspace on the screen. The new workspace name is generated automatically and takes the form ws_n, where n is an integer. |
f.delete_workspace | Deletes the current workspace. Windows that reside only in this workspace are moved to the next workspace. If the last workspace is being deleted, then windows are moved to the first workspace. |
f.goto_workspace workspace-name | Causes Workspace Manager to switch to the named workspace. If no workspace exists by the specified name, then no action occurs. Note that adding and deleting workspaces dynamically affects this function. |
f.next_workspace | Causes the workspace manager to switch to the next workspace on the screen. If the last workspace is currently active, then this function switches to the first workspace. |
f.prev_workspace | Causes the Workspace Manager to switch to the previous workspace on the screen. If the first workspace is currently active, then this function switches to the last workspace. |
f.action | Causes the specified action to be invoked on the screen. |
You can edit the Window Manager configuration file for managing multiple screens for systemwide use or for use by a single user. To set up a customized workspace menu (also known as a root window menu) for all users on a multiple-screen system, copy the system's default Window Manager configuration file to the user's default area and modify the file there, as shown in the following example:
$ COPY CDE$SYSTEM_DEFAULTS:[CONFIG.C]SYS.DTWMRC - _$ CDE$USER_DEFAULTS:[CONFIG.C]SYS.DTWMRC $ EDIT CDE$USER_DEFAULTS:[CONFIG.C]SYS.DTWMRC
To set up a customized workspace menu for one user, copy the user's default Window Manager configuration file to disk$:[user.DT]DTWMRC.DAT and modify the file there, as shown in the following example:
$ COPY CDE$USER_DEFAULTS:[CONFIG.C]SYS.DTWMRC - _$ disk$:[user.DT]DTWMRC.DAT $ EDIT disk$:[user.DT]DTWMRC.DAT
By default, the workspace menu is defined in SYS.DTWMRC, as shown in the following source code:
### # Root Menu Description ### Menu DtRootMenu { "Workspace Menu" f.title "Shuffle Up" f.circle_up "Shuffle Down" f.circle_down "Refresh" f.refresh "Minimize/Restore Front Panel" f.toggle_frontpanel no-label f.separator "Restart Workspace Manager..." f.restart no-label f.separator "Log out..." f.action ExitSession }
The following example shows what the workspace menu definition might look like after it has been customized for use in a multiple-screen configuration:
### # Root Menu Description ### Menu DtRootMenu { "Workspace Menu" f.title "Shuffle Up" f.circle_up "Shuffle Down" f.circle_down "Refresh" f.refresh "Minimize/Restore Front Panel" f.toggle_frontpanel no-label f.separator "Next Screen" f.screen next "Previous Screen" f.screen prev "Create Workspace" f.create_workspace "Next Workspace" f.next_workspace "Previous Workspace" f.prev_workspace "Delete Workspace" f.delete_workspace no-label f.separator "Style Manager" f.action dtstyle "File Manager" f.action DtfileHome no-label f.separator "Restart Workspace Manager..." f.restart no-label f.separator "Log out..." f.action ExitSession }
B.4 Using Style Manager on Multiple Screens
Style Manager provides controls for customizing several aspects of your desktop. When using Style Manager on multiple screens, two controls---color and backdrop---must be set for each workspace on each screen; the remaining controls apply to all workspaces on all screens.
Only one instance of Style Manager can be running at any time. Changes will apply to the workspace and screen on which Style Manager is running.
Initially, all screens except the default
screen display a gray patterned background with the default X
server colormap installed. You can
then choose from any of the color palettes in Style Manager's
Color dialog box to set the colors for the initial workspace of the
screen.
If you create additional workspaces on the screen, you must select a
color
palette from the Style Manager for each one. Backdrops function
similarly.
B.5 Customizing Applications for a Specific Screen
In addition to the screen-specific attributes that you can customize
with Style Manager,
you can customize applications on a screen-specific basis by using
command line options and screen-specific resources.
B.5.1 Using Command Line Options
The Window Manager supports the following command line options for managing multiple screens:
The following example names the second screen "screen1" and displays the icon box on it, using the name in a screen-specific resource.
$ MCR CDE$PATH:DTWM -screens "screen0" "screen1" -xrm - _$ "*screen1*useIconBox: true"
These options are not required for managing multiple screens with Window Manager.
All the CDE applications included in the New Desktop support the following command line options:
Screen-specific resources are Window Manager resources that apply only to the clients that appear on a particular screen. Workspace-specific resources are Window Manager resources that apply only to the clients that appear on a particular workspace.
The syntax for screen-specific resources is:
*screenname*resource_id: resource_value
By default, the screen number is used as the screen name.
In the following example, Style Manager specifies the color palette resource for all clients on screen 0.
*0*ColorPalette: palette_name
The syntax for workspace-specific resources is:
Dtwm[*screen_name]*workspace_name*resource_id: resource_value
The following example specifies the workspace title for workspace wk1. This title is the value that appears in the workspace button representing workspace wk1 on the Front Panel.
Dtwm*0*ws1*title: MYWORKSPACE
You can specify an application for a specific screen by editing its action definition file to include a specific screen number. The following example is a screen-specific action definition for the X Window Dump (xwd) application. When this action is invoked, the application prompts the user for a screen number and dumps only that screen's image to the file DISK$WORK:SCREENDUMP.XWD. The -display command line option in this example causes the prompt to be displayed.
ACTION screendump { LABEL Screen Dump ICON Dtactn TYPE COMMAND ARG_COUNT 0 EXEC_STRING decw$utils:xwd \ -display :0.%"Screen Number: "% \ -root -screen -out DISK$WORK:SCREENDUMP.XWD WINDOW_TYPE NO_STDIO DESCRIPTION Dump the image on the Screen to DISK$WORK:SCREENDUMP.XWD }
This appendix lists all the CDE API routines. They are grouped by shareable libraries (pointed to by the logical SYS$LIBRARY) and by the header files within those libraries. The routines are defined in their respective header files. Each library of routines is shown in a separate table.
A few CDE API routines are not included in the New Desktop. They are indicated in each table by a footnote.
Detailed information describing the parameters and use of these routines is available from their respective manpages. You can either select the Man Page Viewer from the Desktop Apps application group or run it from the command line, as shown in the following example:
$ DTHELPVIEW == "$CDE$PATH:DTHELPVIEW" $ DTHELPVIEW "-manPage" DtInitialize
The CDE Desktop Services API routines in CDE$LIBDTSVC.EXE are shown in Table C-1.
API | Header File | Routines |
---|---|---|
API initialization | Dt.h | DtInitialize |
DtAppInitialize | ||
Action processing | Action.h | DtActionExists |
DtActionLabel | ||
DtActionDescription | ||
DtDbReloadNotify¹ | ||
DtDbLoad | ||
DtActionInvoke | ||
DtActionIcon | ||
Data typing | Dts.h | DtDtsLoadDataTypes |
DtDtsRelease | ||
DtDtsDataToDataType | ||
DtDtsFileToDataType | ||
DtDtsFileToAttributeValue | ||
DtDtsFileToAttributeList | ||
DtDtsBufferToDataType¹ | ||
DtDtsBufferToAttributeValue¹ | ||
DtDtsBufferToAttributeList¹ | ||
DtDtsDataTypeToAttributeValue | ||
DtDtsDataTypeToAttributeList | ||
DtDtsFreeDataTypeNames | ||
DtDtsFreeAttributeList | ||
DtDtsFreeAttributeValue | ||
DtDtsFreeDataType | ||
DtDtsDataTypeNames | ||
DtDtsFindAttribute | ||
DtDtsSetDataType | ||
DtDtsDataTypeIsAction | ||
Drag-and-drop convenience | Dnd.h | DtDndCreateSourceIcon |
DtDndDragStart | ||
DtDndVaDragStart | ||
DtDndDropRegister | ||
DtDndVaDropRegister | ||
DtDndDropUnregister | ||
Workspace Manager | Wsm.h | DtWsmAddWorkspaceFunctions |
DtWsmRemoveWorkspaceFunctions | ||
DtWsmGetWorkspaceInfo | ||
DtWsmFreeWorkspaceInfo | ||
DtWsmGetWorkspaceList | ||
DtWsmGetCurrentWorkspace | ||
DtWsmAddCurrentWorkspaceCallback¹ | ||
DtWsmRemoveWorkspaceCallback¹ | ||
DtWsmSetCurrentWorkspace¹ | ||
DtWsmGetWorkspacesOccupied | ||
DtWsmSetWorkspacesOccupied | ||
DtWsmOccupyAllWorkspaces | ||
DtWsmAddWorkspaceModifiedCallback¹ | ||
DtWsmGetCurrentBackdropWindow | ||
Session save/restore support | Session.h | DtSessionSavePath |
DtSessionRestorePath | ||
Screen saver | Saver.h | DtSaverGetWindows |
C.2 CDE Help Widget Support Routines
The CDE Help Widget support routines in CDE$LIBDTHELP are shown in Table C-2.
API | Header File | Routines |
---|---|---|
Help utility routines | Help.h | DtHelpSetCatalogName¹ |
DtHelpReturnSelectedWidgetId | ||
General help dialog support | HelpDialog.h | DtCreateHelpDialog |
Quick help dialog support | HelpQuickD.h | DtCreateHelpQuickDialog |
DtHelpQuickDialogGetChild |
The CDE custom widget support routines in CDE$LIBDTWIDGET are shown in Table C-3.
API | Header File | Routines |
---|---|---|
DtSpinBox widget support | SpinBox.h | DtCreateSpinBox |
DtSpinBoxAddItem | ||
DtSpinBoxDeletePos | ||
DtSpinBoxSetItem | ||
DtComboBox widget support | ComboBox.h | DtCreateComboBox |
DtComboBoxAddItem | ||
DtComboBoxDeletePos | ||
DtComboBoxSetItem | ||
DtComboBoxSelectItem | ||
DtMenuButton widget support | MenuButton.h | DtCreateMenuButton |
DtEditor Text Editor widget support | Editor.h | DtCreateEditor |
DtEditorAppend | ||
DtEditorAppendFromFile | ||
DtEditorChange | ||
DtEditorCheckForUnsavedChanges | ||
DtEditorClearSelection | ||
DtEditorCopyToClipboard | ||
DtEditorCutToClipboard | ||
DtEditorClearSelection | ||
DtEditorCopyToClipboard | ||
DtEditorCutToClipboard | ||
DtEditorDeleteSelection | ||
DtEditorDeselect | ||
DtEditorDisableRedisplay | ||
DtEditorEnableRedisplay | ||
DtEditorFind | ||
DtEditorFormat | ||
DtEditorGetContents | ||
DtEditorGetInsertionPosition | ||
DtEditorGetLastPosition | ||
DtEditorGetMessageTextFieldID | ||
DtEditorGetSizeHints | ||
DtEditorGoToLine | ||
DtEditorInsert | ||
DtEditorInsertFromFile | ||
DtEditorInvokeFindChangeDialog | ||
DtEditorInvokeFormatDialog | ||
DtEditorInvokeSpellDialog¹ | ||
DtEditorPasteFromClipboard | ||
DtEditorReplace | ||
DtEditorReplaceFromFile | ||
DtEditorReset | ||
DtEditorSaveContentsToFile | ||
DtEditorSelectAll | ||
DtEditorSetContents | ||
DtEditorSetContentsFromFile | ||
DtEditorSetInsertionPosition | ||
DtEditorTraverseToEditor | ||
DtEditorUndoEdit |