Jump to content

PMGuide - Presentation Parameters

From EDM2

A presentation parameter is a piece of data that can be attached to a window to influence the way it is painted. An application can use system-defined presentation parameters to change the colors used by the various PM controls. It can also use a presentation parameter to change the font used for text. If you want to create your own presentation parameters, you must use indexes above PP_USER.

About Presentation Parameters

An application can attach any presentation parameter to a window. However, the window's implementation determines whether or not the presentation parameter will have an effect on the window. For example, if a window does not contain any text, the window will ignore the setting of a font presentation parameter. In general, a well-behaved window should support the more commonly used presentation parameters, such as those for setting the foreground and background colors and the text font. OS/2 uses presentation parameters to let users change window fonts and colors by dragging colors and fonts from Workplace Shell palettes and dropping them in the window. If a window does not support the correct presentation parameters, it can appear unresponsive to the user's actions.

By default, presentation parameter values are inherited from the window's owner. Suppose you create a dialog window that has radio buttons. You don't have to set the same background color in both the dialog window and the radio buttons because the radio button will inherit its background color from the dialog window. Any time the dialog's background color is changed, the radio button's color changes automatically.

WinSetPresParam is used to attach a presentation parameter to a window. Although any presentation parameter index can be used, windows typically support only a small subset of the possible values. For example, the Presentation Manager controls support the PP_FONTNAMESIZE presentation parameter and several of the color and color index presentation parameters. Setting a supported presentation parameter to a window will cause the window to repaint itself, making use of the new value.

Setting a color presentation parameter to a window does not automatically change a color. It is up to the window's implementation to query the presentation parameter's value, and then use it when updating the window.

Querying and Setting Presentation Parameters

To implement support for a presentation parameter in a window, you need to find out what its value is and when that value has been changed. To query a presentation parameter's value use WinQueryPresParam, passing in the index of the presentation parameter and a buffer large enough for the value to be returned in. For presentation parameters that have string values, the buffer should be large enough to include the null termination character.

The flag QPF_NOINHERIT can be specified if the presentation parameter should not be inherited from the window's owner. Otherwise the system looks up the window's owner chain until it finds an occurrence of the same presentation parameter index.

When a presentation parameter is set or changed, the window receives a WM_PRESPARAMCHANGED message. If only one value is changed, that presentation parameter's index is passed with the message. If more than one value is changed, zero is passed. In the latter case, the window must query all its presentation parameters to find out which ones have changed. In response to the WM_PRESPARAMCHANGED message, the receiving window should repaint itself according to the new values received. It is not possible to reject a presentation parameter change; the new value has already been set by the time the notification message has been received.

WinRemovePresParam is available for removing a presentation parameter from a window.

/*******************************************************************/
/* Set the background color of the window                          */
/*******************************************************************/

lColor = RGB_RED;                         /* RGB color value       */

WinSetPresParam(hwndMain,                 /* window handle         */
                PP_BACKGROUNDCOLOR,       /* background pres param */
                sizeof(lColor),           /* length of pres param  */
                &lColor);                 /* pres param value      */

/* ... in window procedure for hwndMain ... */

case WM_PRESPARAMCHANGED:
/****************************************************************/
/* Message received when a presparam has been changed.          */
/* Invalidate the window to repaint with new color.             */
/****************************************************************/
   WinInvalidateRect(hwndMain, NULL, FALSE);
   break;

case WM_PAINT:
/****************************************************************/
/* Repaint the window                                           */
/****************************************************************/
   hps = WinBeginPaint(hwndMain, NULLHANDLE, NULL);

/****************************************************************/
/* Put presentation space into RGB mode                         */
/****************************************************************/
   GpiCreateLogColorTable(hps, 0, LCOLF_RGB, 0, 0, NULL);

/****************************************************************/
/* Query presentation parameter value for background color      */
/****************************************************************/
   WinQueryPresParam(hwndMain,            /* Window handle         */
                     PP_BACKGROUNDCOLOR,  /* Background presparam  */
                     0,
                     NULL,
                     sizeof(lColor),      /* Length of data buffer */
                     &lColor,             /* Data buffer returned  */
                     0);

/****************************************************************/
/* Fill window with background color retrieved from presparam   */
/****************************************************************/
   WinQueryWindowRect(hwndMain, &rectMain);
   WinFillRect(hps, &rectMain, lColor);

/* ... rest of painting code ... */

   WinEndPaint(hps);
   break;

Creating a Window with a Presentation Parameter

It is possible to pass in presentation parameters when creating a window, using WinCreateWindow. The last parameter pPresParams is a pointer to a PRESPARAMS structure containing an array of PARAM structures, which in turn contain the presentation parameter indexes and values. The size field in PRESPARAMS should be set to the size of the array being passed.

/*******************************************************************/
/* Set a presentation parameter when creating a window             */
/*******************************************************************/

PPRESPARAMS ppresMain;

lColor = RGB_RED;

/*******************************************************************/
/* Allocate space for PRESPARAMS structure and one presparam       */
/*******************************************************************/

ppresMain = (PPRESPARAMS)malloc(sizeof(ULONG) * 4);

/*******************************************************************/
/* Set up PRESPARAMS structure with a background color             */
/*******************************************************************/

ppresMain->cb = sizeof(ULONG) * 3;
ppresMain->aparam[0].id = PP_BACKGROUNDCOLOR;
ppresMain->aparam[0].cb = sizeof(lColor);

memcpy(&ppresMain->aparam[0].ab, &lColor, sizeof(lColor));

/*******************************************************************/
/* Create the window and pass in the background color presparam    */
/*******************************************************************/

hwndMain = WinCreateWindow(hwndFrame,
                           "MainWindow",
                           0,
                           0,
                           0, 0, 0, 0,
                           0,
                           HWND_TOP,
                           FID_CLIENT,
                           NULL,
                           ppresMain);    /* Pass presparam data   */

Specifying PRESPARAMS in a Dialog Template

If you are creating a dialog window, you can specify presentation parameters inside the dialog template. For any window in a dialog template (including the dialog window itself) you may add one or more PRESPARAMS statements to the template following the definition of the control.

Note: For the dialog window, place the PRESPARAMS statement immediately after the DIALOG statement in the template.

DLGTEMPLATE DLG_MYDIALOG
BEGIN
    DIALOG  "Add Expression", DLG_MYDIALOG, 30, 25, 205, 55,
            WS_VISIBLE, FCF_SYSMENU | FCF_TITLEBAR
    /* Set font to be used in dialog */
    PRESPARAMS  PP_FONTNAMESIZE, "10.Helv"
    BEGIN
        LTEXT       "Enter new expression:", -1, 5, 40, 195, 8
        /* Set above static control to yellow text on red background */
        PRESPARAMS  PP_BACKGROUNDCOLOR, RGB_RED
        PRESPARAMS  PP_FOREGROUNDCOLORINDEX, CLR_YELLOW
        ENTRYFIELD  "", -1, 7, 27, 191, 8, ES_MARGIN
        PUSHBUTTON  "OK", DID_OK, 5, 5, 45, 14
    END
END

Querying Color Presentation Parameter Pairs

Many of the color presentation parameters come in pairs. For example, the background color of a window can be set using either PP_BACKGROUNDCOLOR, which takes an RGB color value (for example, RGB_RED), or PP_BACKGROUNDCOLORINDEX, which takes a color index (for example, CLR_RED). The newer presentation parameters do not have a color index equivalent, so it is recommended that you use RGB values wherever possible. RGB presentation parameters will also work with SYSCLR_ index values and negative CLR_ indexes (for example, CLR_BLACK).

WinQueryPresParam can be used to query a pair of color presentation parameters at once. The first parameter takes precedence over the second, and should normally be the RGB presentation parameter. The color index should be the second. If you are querying a color index presentation parameter and you want the color value to be returned as an RGB value, you can specify either QPF_ID1COLORINDEX or QPF_ID2COLORINDEX to convert a color index value to an RGB value.

If a window does not have a presentation parameter set for a particular color, the window must select a default color to use. For example, if there is no value set for PP_FOREGROUNDCOLOR or PP_FOREGROUNDCOLORINDEX, the window has to choose a default foreground color when it paints. The usual practice is to select a corresponding system color (for example, SYSCLR_WINDOWTEXT) and use that to paint the foreground of the window.

The decision of which system color to use is an important one, as system colors can be changed by the user with a Scheme Palette. Your choice should always be appropriate to the functionality of the window. If the user does change a system color, your window will receive a WM_SYSCOLORCHANGED message to notify you that your default colors might have been changed.

If there is no appropriate system color available, you will need to select a hard-coded color value as the default instead.

/****************************************************************/
/* Query presentation parameter value for background color      */
/****************************************************************/

if (WinQueryPresParam(
        hwndMain,                /* Window handle               */
        PP_BACKGROUNDCOLOR,      /* Background presparam (RGB)  */
        PP_BACKGROUNDCOLORINDEX, /* Background presparam (Index)*/
        NULL,
        sizeof(lColor),          /* Length of data buffer       */
        &lColor,                 /* Data buffer returned        */
        QPF_ID2COLORINDEX) == 0) /* Convert 2nd presparam to RGB*/
{
   /*************************************************************/
   /* No presparam found - query default background color       */
   /*************************************************************/

   lColor = WinQuerySysColors(
        HWND_DESKTOP,            /* Desktop window handle       */
        SYSCLR_BACKGROUND,       /* System default background   */
        0);                      /* Reserved                    */
}

GpiSetBackColor(hps, lColor);

Setting a Font Presentation Parameter

There is one font presentation parameter, PP_FONTNAMESIZE, which is used to select the default font for a window. If this presentation parameter is attached to a window, the specified font is automatically selected as the default and is the one used when text-drawing PM functions are called (for example, WinDrawText and GpiCharStringAt).

The format of the font name string is as follows:

<point size>.<face name>[.<modifer>[.<modifier> ...]

where:

  • <point size> is the point size of the font
  • <face name> is the face name of the font
  • <modifier> is one of the following:
 * Bold
 * Italic
 * Underscore
 * Outline
 * Strikeout

Examples are "12.New Times Roman" and "10.Helvetica.Bold.Italic".

Note: Modifiers can be used to create a font with a combination of the listed attributes. Do not use modifiers if a true font of that type is already available. For example, use "10.Helvetica Bold" instead of "10.Helvetica.Bold".

/*******************************************************************/
/* Set the text font for the window                                */
/*******************************************************************/

szFont = "10.Helvetica Bold Italic";

WinSetPresParam(hwndMain,                 /* window handle         */
                PP_FONTNAMESIZE,          /* background pres param */
                strlen(szFont) + 1,       /* length of pres param  */
                szFont);                  /* pres param value      */

Colors Used by PM Controls

PM controls make extensive use of presentation parameters for determining the fonts and colors to paint with. All the controls that display text strings use the font set by the PP_FONTNAMESIZE presentation parameter. The colors used in the controls can be set using presentation parameters. Each control responds to a subset of the color presentation parameters, depending on the type of painting it is required to do. Some of the color presentation parameters are specific to a single control; others are used by many or all of the controls.

When there are no presentation parameters set, a control selects the default colors to use. If nothing else is available, the control will use the default system colors (obtained by calling WinQuerySysColor). When no system color is available, it will use a hard-coded RGB color.

In summary, the colors a control window uses depends on what has been set by the application and the user. The order of precedence (from first to last) for a PM control's choice of colors is as follows:

  • Presentation parameters
  • Application-specific control colors
  • Global control colors
  • Default colors (system colors, where available)

For a list of the default colors used by a system PM control, select its name from the following list:

  • Static Bitmap
  • Static Text
  • Group Box
  • Push Button
  • Check Box
  • Radio Button
  • Entry Field
  • List Box
  • Combo Box
  • Title Bar
  • Menu
  • Frame
  • Scroll Bar
  • Spin Button
  • Slider
  • Circular Slider
  • MLE
  • Value Set
  • Notebook
  • Container

Static Bitmap (CCT_STATIC)

Color Usage Description

  • Background
  • Background (in dialog)
  • Foreground
  • Disabled background

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Background Color (in dialog)

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Foreground Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_BACKGROUND
Remarks None

Static Text (CCT_STATICTEXT)

Color Usage Description

  • Background
  • Background (in dialog)
  • Text

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Background Color (in dialog)

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWSTATICTEXT
Remarks None

Group Box (CCT_GROUPBOX)

Color Usage Description

  • Background
  • Background (in dialog)
  • Text
  • Light Border
  • Dark Border

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks Not inherited

Background Color (in dialog)

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks Not inherited

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWSTATICTEXT
Remarks Not inherited

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks Not inherited

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Push Button (CCT_PUSHBUTTON)

Color Usage Description

  • Background
  • Text
  • Disabled background
  • Disabled text
  • Default border
  • Light border
  • Dark border

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks Not inherited

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks Not inherited

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks Not inherited

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks Not inherited

Default Border Color

Control Color Index CI_BORDERDEFAULT
Presentation Parameter P_BORDERDEFAULTCOLOR
System Default SYSCLR_BUTTONDEFAULT
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Check Box (CCT_CHECKBOX)

Color Usage Description

  • Background
  • Background (in dialog)
  • Text
  • Disabled background
  • Disabled background (in dialog)
  • Disabled text
  • Highlight background
  • Highlight background (in dialog)
  • Highlight text

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Background (in dialog) Color

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Disabled Background (in dialog) Color

Control Color Index CI_DISABLEDBACKGROUNDDIALOG
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Highlight Background (in dialog) Color

Control Color Index CI_HIGHLIGHTBACKGROUNDDIALOG
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Radio Button (CCT_RADIOBUTTON)

Color Usage Description

  • Background
  • Background (in dialog)
  • Text
  • Disabled background
  • Disabled background (in dialog)
  • Disabled text
  • Highlight background
  • Highlight background (in dialog)
  • Highlight text

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Background (in dialog) Color

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Disabled Background (in dialog) Color

Control Color Index CI_DISABLEDBACKGROUNDDIALOG
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Highlight Background (in dialog) Color

Control Color Index CI_HIGHLIGHTBACKGROUNDDIALOG
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks None

Entry Field (CCT_ENTRYFIELD)

Color Usage Description

  • Background
  • Text
  • Read-only text
  • Disabled background
  • Disabled text
  • Disabled read-only text
  • Highlight background
  • Highlight text
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks Not inherited

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks Pure RGB color

Read-only Text Color

Control Color Index CI_FOREGROUNDREADONLY
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_OUTPUTTEXT
Remarks Pure RGB color

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks Not inherited

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks Pure RGB color

Disabled Read-only Text Color

Control Color Index CI_DISABLEDFOREGROUNDREADONLY
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_OUTPUTTEXT
Remarks Pure RGB color

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_HILITEFOREGROUND
Remarks Pure RGB color

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_LIGHTGRAY
Remarks GB_LIGHTGRAY not defined in S/2 header files. Its value is 0x00cccccc.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

List Box (CCT_LISTBOX)

Color Usage Description

  • Background
  • Text
  • Disabled background
  • Disabled text
  • Highlight background
  • Highlight text
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Corner between scroll bars

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks Not inherited

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_DISABLEDBACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks Not inherited

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_DISABLEDFOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_HILITEFOREGROUND
Remarks Pure RGB color

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_LIGHTGRAY
Remarks GB_LIGHTGRAY not defined in S/2 header files. Its value is 0x00cccccc.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Corner Between Scroll Bars Color

Control Color Index CI_FIELDBACKGROUND
Presentation Parameter P_FIELDBACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Combo Box (CCT_COMBOBOX)

Color Usage Description

  • Background
  • Text
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Button background
  • Button light border
  • Button dark border
  • Arrow

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks Not inherited

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_LIGHTGRAY
Remarks GB_LIGHTGRAY not defined in S/2 header files. Its value is 0x00cccccc.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_BUTTONBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Button Light Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Button Dark Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLACK
Remarks None

Title Bar (CCT_TITLEBAR)

Color Usage Description

  • Inactive text
  • Inactive background
  • Inactive text background
  • Active text
  • Active background
  • Active text background
  • Light border
  • Dark border

Inactive Text Color

Control Color Index CI_INACTIVEFOREGROUND
Presentation Parameter P_INACTIVETEXTFGNDGROUNDCOLOR
System Default SYSCLR_INACTIVETITLETEXT
Remarks Not inherited

Inactive Background Color

Control Color Index CI_INACTIVEBACKGROUND
Presentation Parameter P_INACTIVECOLOR
System Default SYSCLR_INACTIVETITLE
Remarks Not inherited

Inactive Text Background Color

Control Color Index CI_INACTIVEBACKGROUNDTEXT
Presentation Parameter P_INACTIVETEXTBGNDCOLOR
System Default SYSCLR_INACTIVETITLETEXT
Remarks Not inherited

Active Text Color

Control Color Index CI_ACTIVEFOREGROUND
Presentation Parameter P_ACTIVETEXTFGNDCOLOR
System Default SYSCLR_ACTIVETITLETEXT
Remarks Not inherited

Active Background Color

Control Color Index CI_ACTIVEBACKGROUND
Presentation Parameter P_ACTIVECOLOR
System Default SYSCLR_ACTIVETITLE
Remarks Not inherited

Active Text Background Color

Control Color Index CI_ACTIVEBACKGROUNDTEXT
Presentation Parameter P_ACTIVETEXTBGNDCOLOR
System Default SYSCLR_ACTIVETITLETEXTBGND
Remarks Not inherited

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Menu (CCT_MENU)

Color Usage Description

  • Background
  • Text
  • Disabled background
  • Disabled text
  • Highlight background
  • Highlight text
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Arrow
  • Light arrow border
  • Dark arrow border
  • Light check mark
  • Middle check mark
  • Dark check mark

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_MENUBACKGROUNDCOLOR
System Default SYSCLR_MENU
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_MENUFOREGROUNDCOLOR
System Default SYSCLR_MENUTEXT
Remarks Pure RGB color

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_MENUDISABLEDBGNDCOLOR
System Default SYSCLR_MENU
Remarks None

Disabled Text Color

Control Color Index CI_DISABLEDFOREGROUND
Presentation Parameter P_MENUDISABLEDFGNDCOLOR
System Default SYSCLR_MENUDISABLEDTEXT
Remarks Pure RGB color

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_MENUHILITEBGNDCOLOR
System Default SYSCLR_MENUHILITEBGND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_MENUHILITEFGNDCOLOR
System Default SYSCLR_MENUHILITE
Remarks Pure RGB color

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Arrow Border Color

Control Color Index CI_ARROWBORDERLIGHT
Presentation Parameter P_ARROWBORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Arrow Border Color

Control Color Index CI_ARROWBORDERDARK
Presentation Parameter P_ARROWBORDERDARKCOLOR
System Default GB_BLACK
Remarks None

Light Check Mark Color

Control Color Index CI_CHECKLIGHT
Presentation Parameter P_CHECKLIGHTCOLOR
System Default GB_WHITE
Remarks None

Middle Check Mark Color

Control Color Index CI_CHECKMIDDLE
Presentation Parameter P_CHECKMIDDLECOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Dark Check Mark Color

Control Color Index CI_CHECKDARK
Presentation Parameter P_CHECKDARKCOLOR
System Default GB_BLACK
Remarks None

Frame (CCT_FRAME)

Color Usage Description

  • Background
  • Dialog background
  • Inactive size border
  • Inactive dialog border
  • Active size border
  • Active dialog border
  • Thin border
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Icon text
  • Icon text background
  • Icon text background (on desktop)
  • Icon text highlight
  • Icon text background highlight

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Dialog Background Color

Control Color Index CI_BACKGROUNDDIALOG
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_DIALOGBACKGROUND
Remarks None

Inactive Size Border Color

Control Color Index CI_INACTIVEFOREGROUND
Presentation Parameter P_INACTIVECOLOR
System Default SYSCLR_INACTIVEBORDER
Remarks None

Inactive Dialog Border Color

Control Color Index CI_INACTIVEFOREGROUNDDIALOG
Presentation Parameter P_INACTIVECOLOR
System Default SYSCLR_INACTIVEBORDER
Remarks Not inherited

Active Size Border Color

Control Color Index CI_ACTIVEFOREGROUND
Presentation Parameter P_ACTIVECOLOR
System Default SYSCLR_ACTIVEBORDER
Remarks None

Active Dialog Border Color

Control Color Index CI_ACTIVEFOREGROUNDDIALOG
Presentation Parameter P_ACTIVECOLOR
System Default SYSCLR_ACTIVEBORDER
Remarks Not inherited

Thin Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Icon Text Color

Control Color Index CI_ICONFOREGROUND
Presentation Parameter P_INACTIVETEXTFGNDCOLOR
System Default SYSCLR_ICONTEXT
Remarks Not inherited

Icon Text Background Color

Control Color Index CI_ICONBACKGROUND
Presentation Parameter P_INACTIVETEXTBGNDCOLOR
System Default SYSCLR_APPWORKSPACE
Remarks Not inherited

Icon Text Background Color (on Desktop)

Control Color Index CI_ICONBACKGROUNDDESKTOP
Presentation Parameter P_INACTIVETEXTBGNDCOLOR
System Default SYSCLR_BACKGROUND
Remarks Not inherited

Icon Text Highlight Color

Control Color Index CI_ICONHILITEFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_HILITEFOREGROUND
Remarks Not inherited

Icon Text Background Highlight Color

Control Color Index CI_ICONHILITEBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks Not inherited

Scroll Bar (CCT_SCROLLBAR)

Color Usage Description

  • Background
  • Disabled background
  • Border
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Button background
  • Button light border
  • Button dark border
  • Arrow

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_SCROLLBAR
Remarks Not inherited

Disabled Background Color

Control Color Index CI_DISABLEDBACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks Not inherited

Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks Not inherited

Button Light Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks Not inherited

Button Dark Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks Not inherited

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLACK
Remarks None

Spin Button (CCT_SPINBUTTON)

Color Usage Description

  • Interior border
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Button background
  • Button light border
  • Button dark border
  • Arrow

Interior Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default GB_BLACK
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in S/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_LIGHTGRAY
Remarks GB_LIGHTGRAY not defined in S/2 header files. Its value is 0x00cccccc.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_BUTTONBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Button Light Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Button Dark Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLACK
Remarks None


Slider (CCT_SLIDER)

Color Usage Description

  • Background
  • Text / detent
  • Shaft ribbon color
  • Focus highlight
  • Light border
  • Dark border
  • Light tick mark
  • Dark tick mark
  • Button background
  • Button light border
  • Button dark border
  • Arrow

Text / Detent Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Shaft Ribbon Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default 0x000000AA
Remarks None

Focus Highlight Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default GB_BLACK
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

Light Tick Mark Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Tick Mark Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_BUTTONBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Button Light Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Button Dark Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLACK
Remarks None

Circular Slider (CCT_CIRCULARSLIDER)

Color Usage Description

  • Background
  • Text
  • Border
  • Light border
  • Dark border
  • Disabled border
  • Disabled light border
  • Disabled dark border
  • Button background
  • Button light border
  • Button dark border
  • Arrow/tick marks
  • Disabled arrow/tick marks

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default GB_BLACK
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

Disabled Border Color

Control Color Index CI_BORDER2
Presentation Parameter P_BORDER2COLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Disabled Light Border Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_WHITE
Remarks None

Disabled Dark Border Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_BUTTONBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Button Light Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Button Dark Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Arrow/Tick Marks Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLACK
Remarks None

Disabled Arrow/Tick Marks Color

Control Color Index CI_DISABLEDARROW
Presentation Parameter P_ARROWDISABLEDCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

MLE (CCT_MLE)

Color Usage Description

  • Background
  • Text
  • Read-only text
  • Highlight background
  • Highlight text
  • Light border
  • Dark border
  • Light border 2
  • Dark border 2
  • Corner between scroll bars

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_ENTRYFIELD
Remarks Not inherited

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Read-only Text Color

Control Color Index CI_FOREGROUNDREADONLY
Presentation Parameter P_FOREGROUNDREADONLYCOLOR
System Default SYSCLR_OUTPUTTEXT
Remarks None

Highlight Background Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks None

Highlight Text Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_HILITEFOREGROUND
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

Light Border 2 Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_LIGHTGRAY
Remarks GB_LIGHTGRAY not defined in OS/2 header files. Its value is 0x00CCCCCC.

Dark Border 2 Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_BLACK
Remarks None

Corner Between Scroll Bars Color

Control Color Index CI_FIELDBACKGROUND
Presentation Parameter P_FIELDBACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Value Set (CCT_VALUESET)

Color Usage Description

  • Background
  • Text
  • Border
  • Default border

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Default Border Color

Control Color Index CI_BORDERDEFAULT
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks None

Notebook (CCT_NOTEBOOK)

Color Usage Description

  • Background
  • Text
  • Status line background
  • Page background
  • Selection cursor
  • Outline
  • Light border
  • Dark border
  • New notebook border background
  • Light tab border
  • Dark tab border
  • Major tab background
  • Major tab text
  • Minor tab background
  • Minor tab text
  • Dog-ear dark shadow
  • Arrow

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Status Line Background Color

Control Color Index CI_FIELDBACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Page Background Color

Control Color Index CI_PAGEBACKGROUND
Presentation Parameter P_PAGEBACKGROUNDCOLOR
System Default SYSCLR_PAGEBACKGROUND
Remarks None

Selection Cursor Color

Control Color Index CI_BORDERDEFAULT
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_BUTTONDEFAULT
Remarks None

Outline Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Light Border Color

Control Color Index CI_BORDERLIGHT
Presentation Parameter P_BORDERLIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Border Color

Control Color Index CI_BORDERDARK
Presentation Parameter P_BORDERDARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

New Notebook Border Background Color

Control Color Index CI_BORDER2
Presentation Parameter P_BORDER2COLOR
System Default SYSCLR_FIELDBACKGROUND
Remarks None

Light Tab Border Color

Control Color Index CI_BORDER2LIGHT
Presentation Parameter P_BORDER2LIGHTCOLOR
System Default GB_WHITE
Remarks None

Dark Tab Border Color

Control Color Index CI_BORDER2DARK
Presentation Parameter P_BORDER2DARKCOLOR
System Default GB_DARKGRAY
Remarks GB_DARKGRAY not defined in OS/2 header files. Its value is 0x00808080.

Major Tab Background Color

Control Color Index CI_MAJORTABBACKGROUND
Presentation Parameter P_MAJORTABBACKGROUNDCOLOR
System Default SYSCLR_PAGEBACKGROUND
Remarks None

Major Tab Text Color

Control Color Index CI_MAJORTABFOREGROUND
Presentation Parameter P_MAJORTABFOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Minor Tab Background Color

Control Color Index CI_MINORTABBACKGROUND
Presentation Parameter P_MINORTABBACKGROUNDCOLOR
System Default SYSCLR_PAGEBACKGROUND
Remarks None

Minor Tab Text Color

Control Color Index CI_MINORTABFOREGROUND
Presentation Parameter P_MINORTABFOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Dog-ear Dark Shadow Color

Control Color Index CI_CHECKDARK
Presentation Parameter P_CHECKDARKCOLOR
System Default GB_BLACK
Remarks None

Arrow Color

Control Color Index CI_ARROW
Presentation Parameter P_ARROWCOLOR
System Default GB_BLUE
Remarks None

Container (CCT_CONTAINER)

Color Usage Description

  • Background
  • Text
  • Icon text
  • Icon text background
  • Background highlight
  • Text highlight
  • Border
  • Edit background
  • Edit text
  • Tree view light button border
  • Tree view dark button border
  • Tree view outer button border
  • Tree view button background
  • Record emphasis
  • Edge window

Background Color

Control Color Index CI_BACKGROUND
Presentation Parameter P_BACKGROUNDCOLOR
System Default SYSCLR_WINDOW
Remarks None

Text Color

Control Color Index CI_FOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_WINDOWTEXT
Remarks None

Icon Text Color

Control Color Index CI_ICONFOREGROUND
Presentation Parameter P_FOREGROUNDCOLOR
System Default SYSCLR_ICONTEXT
Remarks Pure RGB color and not inherited

Icon Text Background Color

Control Color Index CI_ICONBACKGROUND
Presentation Parameter P_ICONTEXTBACKGROUNDCOLOR
System Default CLR_ERROR (transparent)
Remarks None

Background Highlight Color

Control Color Index CI_HIGHLIGHTBACKGROUND
Presentation Parameter P_HILITEBACKGROUNDCOLOR
System Default SYSCLR_HILITEBACKGROUND
Remarks None

Text Highlight Color

Control Color Index CI_HIGHLIGHTFOREGROUND
Presentation Parameter P_HILITEFOREGROUNDCOLOR
System Default SYSCLR_HILITEFOREGROUND
Remarks None

Border Color

Control Color Index CI_BORDER
Presentation Parameter P_BORDERCOLOR
System Default SYSCLR_WINDOWFRAME
Remarks None

Edit Background Color

Control Color Index CI_PAGEBACKGROUND
Presentation Parameter P_PAGEBACKGROUNDCOLOR
System Default GB_WHITE
Remarks None

Edit Foreground Color

Control Color Index CI_PAGEFOREGROUND
Presentation Parameter P_PAGEFOREGROUNDCOLOR
System Default GB_BLACK
Remarks None

Tree View Light Button Border Color

Control Color Index CI_BUTTONBORDERLIGHT
Presentation Parameter P_BUTTONBORDERLIGHTCOLOR
System Default SYSCLR_BUTTONLIGHT
Remarks None

Tree View Dark Button Border Color

Control Color Index CI_BUTTONBORDERDARK
Presentation Parameter P_BUTTONBORDERDARKCOLOR
System Default SYSCLR_BUTTONDARK
Remarks None

Tree View Outer Button Border Color

Control Color Index CI_BORDERDEFAULT
Presentation Parameter P_BORDERDEFAULTCOLOR
System Default GB_BLACK
Remarks None

Tree View Button Background Color

Control Color Index CI_BUTTONBACKGROUND
Presentation Parameter P_BUTTONBACKGROUNDCOLOR
System Default SYSCLR_BUTTONMIDDLE
Remarks None

Record Emphasis Color

Control Color Index CI_BORDER2
Presentation Parameter P_BORDER2COLOR
System Default GB_BLACK
Remarks None

Edge Window Color

Control Color Index CI_FIELDBACKGROUND
Presentation Parameter P_FIELDBACKGROUNDCOLOR
System Default SYSCLR_SCROLLBAR
Remarks None

Overriding the Default Colors Used by PM Controls

There is a way to override the default colors used by PM controls. WinSetControlColors can be used to set one or more **control colors**. Control colors can be set globally for all instances of the control class (`CCF_GLOBAL`), or for all instances of the control created on the same thread (`CCF_APPLICATION`). For example, you can set the background color of all the push buttons in your application to brown without affecting the global default push button background color (normally light-gray). Setting a control color for an individual control window causes the appropriate presentation parameter to be set. Each control has a control color type, and a set of control color indexes are used for each type to provide access to the colors used in the control.

WinQueryControlColors allows an application to query one or more of the colors being used by a PM control. When your application uses this function in conjunction with `WinSetControlColors`, it can query and then set all of the colors used in a PM system control window at one time. This is more convenient than using presentation parameters, but it is not backwardly compatible with versions earlier than OS/2 Warp Version 4.0.

`WM_CTLCOLORCHANGE` is sent to a window when a control color has been changed (similar to `WM_SYSCOLORCHANGE`), and `WM_QUERYCTLTYPE` can be sent to a window to find out which, if any, control colors it responds to (a control returns a non-zero index value corresponding to a `CCT_` constant).

/******************************************************************/
/* Query the number of colors used by a push button.              */
/******************************************************************/

cCount = WinQueryControlColors(
              HWND_DESKTOP,             /* Desktop window handle  */
              CCT_PUSHBUTTON,           /* Select push button     */
              CCF_COUNTCOLORS,          /* Count number of colors */
              0, 0);

pactlColor = (PCTLCOLOR)malloc(sizeof(CTLCOLOR) * cCount);

/******************************************************************/
/* Query all the colors used by push buttons in application.      */
/******************************************************************/

WinQueryControlColors(HWND_DESKTOP,     /* Desktop window handle  */
              CCT_PUSHBUTTON,           /* Select push button     */
              CCF_ALLCOLORS |           /* Return all colors ...  */
              CCF_APPLICATION,          /* ... for application    */
              cCount,                   /* Size of array          */
              pactlColor);              /* Buffer for color data  */

/******************************************************************/
/* Give the global push button borders a red color.               */
/******************************************************************/

for (i = 0; i < cCount; i++)
{
    switch (pactlColor[i].clrIndex)
    {
       case CCI_BORDERLIGHT:
          pactlColor[i].clrValue = 0x00FFC0C0;   /* Light red     */
          break;

       case CCI_BORDERDARK:
          pactlColor[i].clrValue = 0x00C00000;   /* Dark red      */
          break;

       default:
          pactlColor[i].clrValue = CCV_DEFAULT;  /* Default color */
          break;
    }
}

/******************************************************************/
/* Set the new border colors for all push buttons in application. */
/******************************************************************/

WinSetControlColors(HWND_DESKTOP,       /* Desktop window handle  */
              CCT_PUSHBUTTON,           /* Select push button     */
              CCF_APPLICATION,          /* Application colors     */
              cCount,                   /* Number of colors       */
              pactlColor);              /* Buffer for color data  */