XmScreen

library call

`XmScreen`

The Screen widget class

    &npzwc;#include <Xm/Screen.h>

## DESCRIPTION

The XmScreen object is used by Motif widgets to store information that is specific to a screen. It also allows the toolkit to store certain information on widget hierarchies that would otherwise be unavailable. Each client has one XmScreen object for each screen that it accesses.

An XmScreen object is automatically created when the application creates the first shell on a screen (usually accomplished by a call to `XtAppInitialize` or `XtAppCreateShell`). It is not necessary to create an XmScreen object by any other means. An application can use the function `XmGetXmScreen` to obtain the widget ID of the XmScreen object for a given screen.

An application cannot supply initial values for XmScreen resources as arguments to a call to any function that creates widgets. The application or user can supply initial values in a resource file. After creating the first shell on the screen, the application can use `XmGetXmScreen` to obtain the widget ID of the XmScreen object and then call `XtSetValues` to set the XmScreen resources.

### Classes

Screen inherits behavior and resources from `Core`.

The class pointer is xmScreenClass.

The class name is `XmScreen`.

### New Resources

The following table defines a set of widget resources used by the programmer to specify data. The programmer can also set the resource values for the inherited classes to set attributes for this widget. To reference a resource by name or by class in an `&npzwc;.Xdefaults` file, remove the `XmN` or `XmC` prefix and use the remaining letters. To specify one of the defined values for a resource in an `&npzwc;.Xdefaults` file, remove the `Xm` prefix and use the remaining letters (in either lowercase or uppercase, but include any underscores between words). The codes in the access column indicate if the given resource can be set at creation time (C), set by using `XtSetValues` (S), retrieved by using `XtGetValues` (G), or is not applicable (N/A).

`XmScreen Resource Set`
`Name` | `Class` | `Type` | `Default` | `Access`
XmNbitmapConversionModel | XmCBitmapConversionModel | XtEnum | XmPIXMAP | CSG??
XmNcolorAllocationProc | XmCColorAllocationProc | XtProc | NULL | CSG??
XmNcolorCalculationProc | XmCColorCalculationProc | XtProc | NULL | CSG??
XmNdarkThreshold | XmCDarkThreshold | int | dynamic | C
XmNdefaultCopyCursorIcon | XmCDefaultCopyCursorIcon | Widget | NULL | CSG
XmNdefaultInvalidCursorIcon | XmCDefaultInvalidCursorIcon | Widget | NULL | CSG
XmNdefaultLinkCursorIcon | XmCDefaultLinkCursorIcon | Widget | NULL | CSG
XmNdefaultMoveCursorIcon | XmCDefaultMoveCursorIcon | Widget | NULL | CSG
XmNdefaultNoneCursorIcon | XmCDefaultNoneCursorIcon | Widget | NULL | CSG
XmNdefaultSourceCursorIcon | XmCDefaultSourceCursorIcon | Widget | NULL | CSG
XmNdefaultValidCursorIcon | XmCDefaultValidCursorIcon | Widget | NULL | CSG
XmNfont | XmCFont | XFontStruct * | NULL | CSG
XmNforegroundThreshold | XmCForegroundThreshold | int | dynamic | C
XmNhorizontalFontUnit | XmCHorizontalFontUnit | int | dynamic | CSG
XmNinsensitiveStippleBitmap | XmCinsensitiveStippleBitmap | Bitmap | "50_foreground" | CSG
XmNlightThreshold | XmCLightThreshold | int | dynamic | C
XmNmenuCursor | XmCCursor | Cursor | arrow | C
XmNmoveOpaque | XmCMoveOpaque | Boolean | False | CSG
XmNunpostBehavior | XmCUnpostBehavior | unsigned char | XmUNPOST_AND_REPLAY | CSG
XmNuseColorObject | XmCUseColorObject | Boolean | False | C
XmNuserData | XmCUserData | XtPointer | NULL | CSG
XmNverticalFontUnit | XmCVerticalFontUnit | int | dynamic | CSG

`XmNbitmapConversionModel`

- Provides a policy for the conversion of xbm and xpm files to the `Pixmap` type. This resource takes the following values:

  `XmMATCH_DEPTH`

- From a supplied xbm or xpm file, generates a converted pixmap file having the same depth as the widget.

`XmDYNAMIC_DEPTH`

- Converts an input xbm file to a `Pixmap` of depth 1, or converts an input xpm file to a `Pixmap` having the same depth as the widget.

`XmNcolorAllocationProc`

- Identifies the procedure to be used for color allocation. Normally, this procedure is an application-defined color allocation procedure. However, if no application-defined color allocation procedure is set, the system uses Motif's predefined color allocation procedure.

`XmNcolorCalculationProc`

- Identifies the procedure to be used for per-widget color calculation. Normally, this procedure is an application-defined color calculation procedure. However, if no application-defined color calculation procedure is set, the system uses Motif's predefined color calculation procedure.

`XmNdarkThreshold`

- An integer between 0 (zero) and 100, inclusive, that specifies a level of perceived brightness for a color. If the perceived brightness of the background color is below this level, Motif treats the background as "dark" when computing default shadow and select colors. If this resource is specified for a particular screen, it applies to widgets created on that screen; otherwise it applies to widgets created on all screens. The default value is implementation specific.

`XmNdefaultCopyCursorIcon`

- Specifies the DragIcon used during a drag operation when the operation is a copy and no other pixmap is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultInvalidCursorIcon`

- Specifies the DragIcon used to indicate that the cursor is over an invalid drop site during a drag operation when no other pixmap symbol is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultLinkCursorIcon`

- Specifies the DragIcon used during a drag operation when the operation is a link and no other pixmap is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultMoveCursorIcon`

- Specifies the DragIcon used during a drag operation when the operation is a move and no other pixmap is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultNoneCursorIcon`

- Specifies the DragIcon used to indicate that the cursor is not over a drop site during a drag operation when no other pixmap is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultSourceCursorIcon`

- Specifies the depth-1 pixmap used as a cursor when an `XmNsourceCursorIcon` is not provided by the DragContext, or it is not usable. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNdefaultValidCursorIcon`

- Specifies the DragIcon used to indicate that the cursor is over a valid drop site during a drag operation when no other pixmap is specified by the application. If this resource is NULL, a system default icon is used. The system default icon is determined by the Display resource `XmNenableDragIcon`.

`XmNfont`

- Specifies a font for use in computing values for `XmNhorizontalFontUnit` and `XmNverticalFontUnit`. When an application is initialized, this resource can be supplied in a resource file or through the standard command line options `−fn`, `−font`, and `−xrm`. Note that this resource is used only for the calculation of the font unit values. To specify a font to be used to display text, use a widget's render table resource (`XmNrenderTable`).

`XmNforegroundThreshold`

- An integer between 0 (zero) and 100, inclusive, that specifies a level of perceived brightness for a color. If the perceived brightness of the background color is equal to or below this level, Motif treats the background as "dark" when computing the default foreground and highlight colors. If the perceived brightness of the background color is above this level, Motif treats the background as "light" when computing the default foreground and highlight colors. When the background is "dark," the default foreground and highlight is white; when the background is "light," the default foreground and highlight is black. If this resource is specified for a particular screen, it applies to widgets created on that screen; otherwise, it applies to widgets created on all screens. The default value is implementation specific.

`XmNhorizontalFontUnit`

- Specifies the horizontal component of the font units used by `XmConvertUnits`, and is used to interpret the values of geometry resources when the `XmNshellUnitType` resource of VendorShell or the `XmNunitType` resource of Gadget, Manager, or Primitive has the value Xm100TH_FONT_UNITS. If no initial value is supplied for this resource, the default is computed from the font specified in `XmNfont`. If no initial value is supplied for this resource or for `XmNfont`, the default is 10.

  If a call to `XtSetValues` specifies a value for `XmNhorizontalFontUnit`, this resource is set to that value. If a call to `XtSetValues` specifies a value for `XmNfont` but not for `XmNhorizontalFontUnit`, this resource is set to a value computed from the new `XmNfont`.

  A horizontal font unit is derived from a font as follows:

  - If the font has an AVERAGE_WIDTH property, the horizontal font unit is the AVERAGE_WIDTH property divided by 10.

  - If the font has no AVERAGE_WIDTH property but has a QUAD_WIDTH property, the horizontal font unit is the QUAD_WIDTH property.

  - If the font has no AVERAGE_WIDTH or QUAD_WIDTH property, the horizontal font unit is the sum of the font structure's min_bounds.width and max_bounds.width divided by 2.3.

`XmNinsensitiveStippleBitmap`

- Provides widgets with the bitmap to use when generating the insensitive visual. This bitmap is to be used as the stipple for the rendering of insensitive visuals.

`XmNlightThreshold`

- An integer between 0 (zero) and 100, inclusive, that specifies a level of perceived brightness for a color. If the perceived brightness of the background color is above this level, Motif treats the background as "light" when computing default shadow and select colors. If this resource is specified for a particular screen, it applies to widgets created on that screen; otherwise, it applies to widgets created on all screens. The default value is implementation specific.

`XmNmenuCursor`

- Sets a variable that controls the cursor used whenever this application posts a menu. This resource can be specified only once at application startup time, either by placing it within a defaults file or by using the `−xrm` command line argument. For example:

  `myProg −xrm "*menuCursor: arrow"`

  The menu cursor can also be selected in the program through the function `XmSetMenuCursor`. The following list shows acceptable cursor names. If the application does not specify a cursor or if an invalid name is supplied, the default cursor (an arrow pointing up and to the right) is used.

  `X_cursor`

- leftbutton

arrow

- `ll_angle`

`based_arrow_down`

- `lr_angle`

`based_arrow_up`

- man

boat

- middlebutton

bogosity

- mouse

`bottom_left_corner`

- pencil

`bottom_right_corner`

- pirate

`bottom_side`

- plus

`bottom_tee`

- `question_arrow`

`box_spiral`

- `right_ptr`

`center_ptr`

- `right_side`

circle

- `right_tee`

clock

- rightbutton

`coffee_mug`

- `rtl_logo`

cross

- sailboat

`cross_reverse`

- `sb_down_arrow`

crosshair

- `sb_h_double_arrow`

`diamond_cross`

- `sb_left_arrow`

dot

- `sb_right_arrow`

dotbox

- `sb_up_arrow`

`double_arrow`

- `sb_v_double_arrow`

`draft_large`

- shuttle

`draft_small`

- sizing

`draped_box`

- spider

exchange

- spraycan

fleur

- star

gobbler

- target

gumby

- tcross

`hand1`

- `top_left_arrow`

`hand2`

- `top_left_corner`

heart

- `top_right_corner`

icon

- `top_side`

`iron_cross`

- `left_ptr`

`left_side`

- `top_tee`

`left_tee`

- trek

`ul_angle`

- umbrella

`ur_angle`

- watch

`xterm`

`XmNmoveOpaque`

- Specifies whether an interactive operation that moves a window, such as tearing off and dragging a tear-off menu or moving a window in MWM, displays an outline of the window or a representation of the window itself during the move. If the value is True, the operation displays a representation of the window during the move. If the value is False, the operation displays an outline of the window.

`XmNunpostBehavior`

- Specifies the behavior of an active menu posted in traversal mode when a subsequent menu button selection is made outside the posted menu. When the value is `XmUNPOST_AND_REPLAY`, the resource unposts the menu hierarchy and causes the server to replay the event to the window in which the pointer is located. When the value is `XmUNPOST`, the resource unposts the hierarchy without replaying the event.

XmNuseColorObject

- Enables and disables the sharing of colors between widgets, and the dynamic changing of colors. A value of False disables this, and a value of True enables it.

`XmNuserData`

- Allows the application to attach any necessary specific data to the widget. This is an internally unused resource.

`XmNverticalFontUnit`

- Specifies the vertical component of the font units used by `XmConvertUnits` and used to interpret the values of geometry resources when the `XmNshellUnitType` resource of VendorShell or the `XmNunitType` resource of Gadget, Manager, or Primitive has the value Xm100TH_FONT_UNITS. If no initial value is supplied for this resource, the default is computed from the font specified in `XmNfont`. If no initial value is supplied for this resource or for `XmNfont`, the default is 10.

  If a call to `XtSetValues` specifies a value for `XmNverticalFontUnit`, this resource is set to that value. If a call to `XtSetValues` specifies a value for `XmNfont` but not for `XmNverticalFontUnit`, this resource is set to a value computed from the new `XmNfont`.

  A vertical font unit is derived from a font as follows:

  - If the font has a PIXEL_SIZE property, the vertical font unit is the PIXEL_SIZE property divided by 1.8.

  - If the font has no PIXEL_SIZE property but has POINT_SIZE and RESOLUTION_Y properties, the vertical font unit is the product of the POINT_SIZE and RESOLUTION_Y properties divided by 1400.

  - If the font has no PIXEL_SIZE, POINT_SIZE, or RESOLUTION_Y properties, the vertical font unit is the sum of the font structure's max_bounds.ascent and max_bounds.descent divided by 2.2.

### Inherited Resources

All of the superclass resources inherited by `XmScreen` are designated N/A (not applicable).

## RELATED

&cdeman.Core;, &cdeman.XmDisplay;, &cdeman.XmGetXmScreen;, and &cdeman.XmSetMenuCursor;,