The color customizer demonstration program allows users
to dynamically control the colors of their workstation
environment. Window colors, icon colors, window manager
colors, and more can all be changed individually or as
part of an entire palette switch. The user has control over
the mapping between resources and color cells, as well as
the size and contents of the palette set. Also, automatic
shadowing through the standard Motif shadowing algorithms
is supported.
o Supported Displays
The color customizer supports any display using pseudocolor
or grayscale visuals. This includes most 4- and 8-plane
workstation displays.
o Supported Applications
The color customizer can affect the colors of any
applications that use the current release of the Digital X
Toolkit (Xt) library. Applications that run against another
vendor's X Toolkit Library will be unaffected. Applications
that run against previous versions of Digital's X Toolkit
library will be unaffected.
________________________ Note ________________________
If the color customizer is used to control the
colors of applications that have their own color
customization dialog boxes (like the Session
Manager, Window Manager, and DECwindows Mail), those
application-specific color customization dialog boxes
may not reflect the correct current color values while
the customizer is running the application. This is
normal; use the customizer instead of the application-
specific dialog box to change these values.
______________________________________________________
1 – building
To build the color customizer on OpenVMS systems, perform
the following steps:
1. Copy the files to a private directory.
$ SET DEFAULT SYS$LOGIN
$ CREATE/DIRECTORY [.CUSTOMIZER]
$ SET DEFAULT [.CUSTOMIZER]
$ COPY DECW$EXAMPLES:CUSTOM.C []
$ COPY DECW$EXAMPLES:CUSTOM.UIL []
$ COPY DECW$EXAMPLES:CUSTOMIMAGE.DAT []
$ COPY DECW$EXAMPLES:XSETROOT_CUST.C []
$ COPY DECW$EXAMPLES:BUILD_CUSTOMIZER.COM []
2. Build the customizer.
$ @BUILD_CUSTOMIZER.COM
This command procedure creates the following output files:
o CUSTOM.UID
o CUSTOM.EXE
o XSETROOT_CUST.EXE
2 – running
To run the color customizer, perform the following steps:
1. Copy the files CUSTOM.UID and CUSTOM.EXE, which were
created during the building of the customizer, to the
directory from which the customizer will be run. A
typical location is SYS$LOGIN or DECW$USER_DEFAULTS.
2. Copy the files CUSTOM.DAT and DXMDEFAULTS.DAT from
DECW$EXAMPLES to the same location as in step 1.
Typically SYS$LOGIN or DECW$USER_DEFAULTS.
3. Run the executable file CUSTOM.EXE.
$ RUN CUSTOM
________________________ Note ________________________
Only the colors of applications invoked after the
customizer starts will be affected. For this reason,
make the customizer the first X application to start
during the login process.
______________________________________________________
o Modifying DECW$LOGIN.COM
The color customizer should be the first X application
started during the login process. This can be accomplished
by starting it as a subprocess from within your file
DECW$LOGIN.COM. You will also want to add a command to
wait, approximately 10 seconds, to allow the customizer
to get started before starting other applications. Add the
following lines to DECW$LOGIN.COM:
$! Starting the color customizer
$ DISPLAY = F$LOGICAL("DECW$DISPLAY")
$ SPAWN/NOWAIT/OUTPUT='DISPLAY' RUN SYS$LOGIN:CUSTOM.EXE
$ WAIT 0:0:10
See Using DECwindows Motif for OpenVMS and Managing
DECwindows Motif for OpenVMS Systems for more information
on the file DECW$LOGIN.COM.
3 – inter_sum
A list of available palettes is in the upper left section
of the screen-click on the desired palette to see it take
effect.
Below that are two arrays of colored buttons, representing
the dynamically allocated color cells for normal and shadow
colors. To find out what resources are being affected by a
color cell, click and hold the arrow button next to it. As
a shortcut, you can click on the screen facsimile in the
upper right corner of the dialog box. If the portion you
click on is colored by one of resource values controlled by
the customizer, the popup for the appropriate color button
will be displayed.
To modify a single color cell, click on the corresponding
color button. A colormix widget will pop up, and, as
you modify the color, you will see these modifications
reflected in your workstation environment. Use the colormix
widget reset button to return to the starting color at any
time. You can also change the color cell you are modifying
by clicking on a different color button while the colormix
widget is displayed.
The automatic shadowing option causes shadow and select
colors to be automatically updated when their corresponding
background colors are changed. The standard Motif shadowing
algorithms are used for these calculations.
Use the File menu to modify, add, and delete color palettes
as follows:
o To modify an existing palette, select the palette,
change to the desired colors, and choose Save Palette
from the File menu.
o To add a new palette to the list box, select an existing
palette, modify the colors as necessary, and choose Save
Palette As... from the File menu. A message box prompts
you for the name of the new palette.
o To delete a palette, select the palette in the listbox
and choose Delete Palette from the File menu.
Changes made through the File menu will automatically
update the file that contains the resource defaults,
CUSTOM.DAT.
The File menu Exit button causes the customizer application
to exit. A warning dialog is displayed first. Note that the
color cells allocated by the customizer (and used by the
currently running applications) will be freed. After the
customizer exits, if the colors of the currently running
applications are not correct, the applications will need to
be restarted to restore normal colors. Normally, there is
no need to exit the color customizer-it is typically kept
running all the time, like the Session Manager.
4 – chngcolmap
The file DXMDEFAULTS.DAT allows you to control how many
dynamic color cells are allocated and what resources are
affected. This file contains resource specifications like
the following:
*background: DXmDynamicWindowBackground
*foreground: DXmDynamicWindowForeground
*topShadowColor: DXmDynamicWindowTopShadow
When the customizer is started, the file DXMDEFAULTS.DAT is
written to a property on the root window. Any application
that is subsequently run, which uses the correct X Toolkit
library, will merge these resources with its normal
resource database. Resource specifications in this file
will take precedence over specifications with equivalent
left-hand sides in other resource defaults files.
The color values for the right side, within the file
DXMDEFAULTS.DAT, have a special format. For each unique
color value in this file that begins with the string
"DXmDynamic", a color button is created in the color
customizer. If the string "Shadow" is encountered in a
name, the color button is placed in the shadow button
box rather than the normal color button box. If a color
value string ends with the suffix "Background", it is
linked to any color buttons with identical prefixes and
suffixes of "TopShadow", "BottomShadow", or "SelectColor"
for purposes of automatic shadowing. If a color value named
"DXmDynamicScreenBackground" is encountered, the color cell
allocated is used by the customizer to set the root window
background color.
You can edit the file DXMDEFAULTS.DAT and define many
resources to use the same color cells. You can have
separate dynamic color cells, especially for scrollbar
widgets or for your Mail application, by adding lines like
the following:
Mail*background: DXmDynamicMyMailBackground
Mail*foreground: DXmDynamicMyMailForeground
Mail*topShadowColor: DXmDynamicMyMailTopShadow
Mail*bottomShadowColor: DXmDynamicMyMailBottomShadow
Doing this and restarting the customizer causes four new
color cells to be allocated and four new color buttons to
be added to the customizer interface. These buttons are
assigned default color values (usually black or white) for
each palette. These defaults can then be modified for each
palette through the customizer interface.
________________________ Note ________________________
The text of the DXMDEFAULTS.DAT file is read and
parsed by the color customizer. The parsing algorithm
does not allow comments, incorrect spacing, or
incorrect resource specifications. If this file or
the CUSTOM.DAT resource file become corrupt, the
customizer cannot start correctly. Copy the shipped
versions of CUSTOM.DAT and DXMDEFAULTS.DAT from
DECW$EXAMPLES into your login directory to resolve
the problem.
______________________________________________________
5 – decterms
The color customizer does not affect the colors of DECterm
windows, set up as described previously. To affect
the colors of DECterm windows, copy the DECterm resource
specifications from the file DXMDEFAULTS.DAT and add
them to the DECterm resource defaults file DECW$USER_
DEFAULTS:DECW$TERMINAL_DEFAULT.DAT. For example, add the
following lines to the DECterm resource defaults file:
.
.
DECW$TERMINAL.main.terminal.background: DXmDynamicTerminalBackground
DECW$TERMINAL.main.terminal.foreground: DXmDynamicTerminalForeground
This will allow the DECterm window colors to be customized
with the color customizer.
6 – auto_shadow
The default value of the Automatic shadowing toggle button
can be set using the Custom.autoShadow resource in the
CUSTOM.DAT file as follows:
Custom.autoShadowing: False
The default value is True.
7 – multihead
The color customizer only affects applications started on
the same screen as the customizer. On multihead systems,
you can start a different color customizer for each screen
and have a different palette in effect on each screen.
The color customizer can be configured so that it is
invoked once and affects all applications regardless of
where they are started. This mode can be turned on by
modifying the Custom.multiScreen resource in the CUSTOM.DAT
defaults file as follows:
Custom.multiScreen: True
The default value is False.
8 – xsetrootcust
The XSETROOT_CUST.EXE demonstration program, created
during the building of the customizer, is a modified
version of xsetroot that can be used to set a bitmap on
the root window. The XSETROOT_CUST.EXE program will use
DXmDynamicScreenBackground and DXmDynamicScreenForeground
as the background and foreground colors of the specified
bitmap. If your DXMDEFAULTS.DAT file contains entries
for these two dynamic colors, then use the customizer to
dynamically modify the colors of your bitmap.
for example:
$ XSETROOT_CUST :== "$SYS$LOGIN:XSETROOT_CUST.EXE"
$ XSETROOT_CUST -BITMAP your_xbm_file.XBM