man m17nFace () - A face is an object to control appearance of M-text.

NAME

Face - A face is an object to control appearance of M-text.

Data Structures

struct MFaceHLineProp

Type of horizontal line spec of face. struct MFaceBoxProp

Type of box spec of face.

Variables: Keys of face property

MSymbol Mforeground

Key of a face property specifying foreground color. MSymbol Mbackground

Key of a face property specifying background color. MSymbol Mvideomode

Key of a face property specifying video mode. MSymbol Mratio

Key of a face property specifying font size ratio. MSymbol Mhline

Key of a face property specifying horizontal line. MSymbol Mbox

Key of a face property specifying box. MSymbol Mfontset

Key of a face property specifying fontset. MSymbol Mhook_func

Key of a face property specifying hook. MSymbol Mhook_arg

Key of a face property specifying argument of hook.

Variables: Possible values of #Mvideomode property of face

MSymbol Mnormal

MSymbol Mreverse

Variables: Predefined faces

MFace * mface_normal_video

Normal video face. MFace * mface_reverse_video

Reverse video face. MFace * mface_underline

Underline face. MFace * mface_medium

Medium face. MFace * mface_bold

Bold face. MFace * mface_italic

Italic face. MFace * mface_bold_italic

Bold italic face. MFace * mface_xx_small

Smallest face. MFace * mface_x_small

Smaller face. MFace * mface_small

Small face. MFace * mface_normalsize

Normalsize face. MFace * mface_large

Large face. MFace * mface_x_large

Larger face. MFace * mface_xx_large

Largest face. MFace * mface_black

Black face. MFace * mface_white

White face. MFace * mface_red

Red face. MFace * mface_green

Green face. MFace * mface_blue

Blue face. MFace * mface_cyan

Cyan face. MFace * mface_yellow

yellow face. MFace * mface_magenta

Magenta face.

Variables: The other symbols for face handling.

MSymbol Mface

Key of a text property specifying a face.

Typedefs

typedef MFace MFace

Type of faces. typedef void(* MFaceHookFunc )(MFace *face, void *arg, void *info)

Type of hook function of face.

Functions

MFace * mface ()

Create a new face. MFace * mface_copy (MFace *face)

Make a copy of a face. MFace * mface_merge (MFace *dst, MFace *src)

Merge faces. MFace * mface_from_font (MFont *font)

Make a face from a font. void * mface_get_prop (MFace *face, MSymbol key)

Get the value of a face property. int mface_put_prop (MFace *face, MSymbol key, void *val)

Set a value of a face property. void mface_update (MFrame *frame, MFace *face)

Update a face.

Detailed Description

A face is an object of the type MFace and controls how to draw M-texts. A face has a fixed number of face properties. Like other types of properties, a face property consists of a key and a value. A key is one of the following symbols:

Mforeground, Mbackground, Mvideomode, Mhline, Mbox, Mfoundry, Mfamily, Mweight, Mstyle, Mstretch, Madstyle, Msize, Mfontset, Mratio, Mhook_func, Mhook_arg

The M-text drawing functions first search an M-text for the text property whose key is the symbol Mface, then draw the M-text using the value of that text property. This value must be a pointer to a face object.

If there are multiple text properties whose key is Mface, and they are not conflicting one another, properties of those faces are merged and used.

If no faces specify a certain property, the value of the default face is used.

Data Structure Documentation

MFaceHLineProp

Type of horizontal line spec of face.

Public Types:

enum MFaceHLineType { MFACE_HLINE_BOTTOM, MFACE_HLINE_UNDER, MFACE_HLINE_STRIKE_THROUGH, MFACE_HLINE_OVER, MFACE_HLINE_TOP }

FIELD DOCUMENTATION:

enum MFaceHLineProp::MFaceHLineType MFaceHLineProp::type

Type of the horizontal line.

unsigned MFaceHLineProp::width

Width of the line in pixels.

MSymbol MFaceHLineProp::color

Color of the line. If the value is Mnil, foreground color of a merged face is used.

MFaceBoxProp

Type of box spec of face.

FIELD DOCUMENTATION:

unsigned MFaceBoxProp::width

Width of the box line in pixels.

MSymbol MFaceBoxProp::color_top

MSymbol MFaceBoxProp::color_bottom

MSymbol MFaceBoxProp::color_left

MSymbol MFaceBoxProp::color_right

unsigned MFaceBoxProp::inner_hmargin

unsigned MFaceBoxProp::inner_vmargin

unsigned MFaceBoxProp::outer_hmargin

unsigned MFaceBoxProp::outer_vmargin

Typedef Documentation

typedef struct MFace MFace

The type MFace is the structure of face objects. The internal structure is concealed from an application program.

typedef void(* MFaceHookFunc)(MFace *face, void *arg, void *info)

The type MFaceHookFunc is to specify the #Mhook property of a face. The value of the property must be function of this type.

Variable Documentation

MSymbol Mforeground

The variable Mforeground is used as a key of face property. The property value must be a symbol whose name is a color name, or Mnil.

Mnil means that the face does not specify a foreground color. Otherwise, the foreground of an M-text is drawn by the specified color.

MSymbol Mbackground

The variable Mbackground is used as a key of face property. The property value must be a symbol whose name is a color name, or Mnil.

Mnil means that the face does not specify a background color. Otherwise, the background of an M-text is drawn by the specified color.

MSymbol Mvideomode

The variable Mvideomode is used as a key of face property. The property value must be Mnormal, Mreverse, or Mnil.

Mnormal means that an M-text is drawn in normal video mode (i.e. the foreground is drawn by foreground color, the background is drawn by background color).

Mreverse means that an M-text is drawn in reverse video mode (i.e. the foreground is drawn by background color, the background is drawn by foreground color).

Mnil means that the face does not specify a video mode.

MSymbol Mratio

The variable Mratio is used as a key of face property. The value RATIO must be an integer.

The value 0 means that the face does not specify a font size ratio. Otherwise, an M-text is drawn by a font of size (FONTSIZE RATIO / 100) where FONTSIZE is a font size specified by the face property Msize.

MSymbol Mhline

The variable Mhline is used as a key of face property. The value must be a pointer to an object of type MFaceHLineProp, or NULL.

The value NULL means that the face does not specify this property. Otherwise, an M-text is drawn with a horizontal line by a way specified by the object that the value points to.

MSymbol Mbox

The variable Mbox is used as a key of face property. The value must be a pointer to an object of type MFaceBoxProp, or NULL.

The value NULL means that the face does not specify a box. Otherwise, an M-text is drawn with a surrounding box by a way specified by the object that the value points to.

MSymbol Mfontset

The variable Mfontset is used as a key of face property. The value must be a pointer to an object of type Mfontset, or NULL.

The value NULL means that the face does not specify a fontset. Otherwise, an M-text is drawn with a font selected from what specified in the fontset.

MSymbol Mhook_func

The variable Mhook_func is used as a key of face property. The value must be a function of type MFaceHookFunc, or NULL.

The value NULL means that the face does not specify a hook. Otherwise, the specified function is called before the face is realized.

MSymbol Mhook_arg

The variable Mhook_arg is used as a key of face property. The value can be anything that is passed a hook function specified by the face property Mhook_func.

MSymbol Mnormal

See the documentation of the variable Mvideomode.

MSymbol Mreverse

See the documentation of the variable Mvideomode.

MFace* mface_normal_video

The variable mface_normal_video points to a face that has the Mvideomode property with value Mnormal. The other properties are not specified. An M-text drawn with this face appear normal colors (i.e. the foreground is drawn by foreground color, and background is drawn by background color).

MFace* mface_reverse_video

The variable mface_reverse_video points to a face that has the Mvideomode property with value Mreverse. The other properties are not specified. An M-text drawn with this face appear in reversed colors (i.e. the foreground is drawn by background color, and background is drawn by foreground color).

MFace* mface_underline

The variable mface_underline points to a face that has the Mhline property with value a pointer to an object of type MFaceHLineProp. The members of the object are as follows:

member value ----- ----- type MFACE_HLINE_UNDER width 1 color Mnil

The other properties are not specified. An M-text that has this face is drawn with an underline.

MFace* mface_medium

The variable mface_medium points to a face that has the Mweight property with value a symbol of name 'medium'. The other properties are not specified. An M-text that has this face is drawn with a font of medium weight.

MFace* mface_bold

The variable mface_bold points to a face that has the Mweight property with value a symbol of name 'bold'. The other properties are not specified. An M-text that has this face is drawn with a font of bold weight.

MFace* mface_italic

The variable mface_italic points to a face that has the Mstyle property with value a symbol of name 'italic'. The other properties are not specified. An M-text that has this face is drawn with a font of italic style.

MFace* mface_bold_italic

The variable mface_bold_italic points to a face that has the Mweight property with value a symbol of name 'bold', and Mstyle property with value a symbol of name 'italic'. The other properties are not specified. An M-text that has this face is drawn with a font of bold weight and italic style.

MFace* mface_xx_small

The variable mface_xx_small points to a face that has the Mratio property with value 50. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 50% of a normal font.

MFace* mface_x_small

The variable mface_x_small points to a face that has the Mratio property with value 66. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 66% of a normal font.

MFace* mface_small

The variable mface_x_small points to a face that has the Mratio property with value 75. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 75% of a normal font.

MFace* mface_normalsize

The variable mface_normalsize points to a face that has the Mratio property with value 100. The other properties are not specified. An M-text that has this face is drawn with a font whose size is the same as a normal font.

MFace* mface_large

The variable mface_large points to a face that has the Mratio property with value 120. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 120% of a normal font.

MFace* mface_x_large

The variable mface_x_large points to a face that has the Mratio property with value 150. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 150% of a normal font.

MFace* mface_xx_large

The variable mface_xx_large points to a face that has the Mratio property with value 200. The other properties are not specified. An M-text that has this face is drawn with a font whose size is 200% of a normal font.

MFace* mface_black

The variable mface_black points to a face that has the Mforeground property with value a symbol of name 'black'. The other properties are not specified. An M-text that has this face is drawn with black foreground.

MFace* mface_white

The variable mface_white points to a face that has the Mforeground property with value a symbol of name 'white'. The other properties are not specified. An M-text that has this face is drawn with white foreground.

MFace* mface_red

The variable mface_red points to a face that has the Mforeground property with value a symbol of name 'red'. The other properties are not specified. An M-text that has this face is drawn with red foreground.

MFace* mface_green

The variable mface_green points to a face that has the Mforeground property with value a symbol of name 'green'. The other properties are not specified. An M-text that has this face is drawn with green foreground.

MFace* mface_blue

The variable mface_blue points to a face that has the Mforeground property with value a symbol of name 'blue'. The other properties are not specified. An M-text that has this face is drawn with blue foreground.

MFace* mface_cyan

The variable mface_cyan points to a face that has the Mforeground property with value a symbol of name 'cyan'. The other properties are not specified. An M-text that has this face is drawn with cyan foreground.

MFace* mface_yellow

The variable mface_yellow points to a face that has the Mforeground property with value a symbol of name 'yellow'. The other properties are not specified. An M-text that has this face is drawn with yellow foreground.

MFace* mface_magenta

The variable mface_magenta points to a face that has the Mforeground property with value a symbol of name 'magenta'. The other properties are not specified. An M-text that has this face is drawn with magenta foreground.

MSymbol Mface

The variable Mface is a symbol of name 'face'. A text property whose key is this symbol must have a pointer to an object of type MFace. This is a managing key.