home *** CD-ROM | disk | FTP | other *** search
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- NNAAMMEE
- XLoadFont, XQueryFont, XLoadQueryFont, XFreeFont, XGet-
- FontProperty, XUnloadFont, XCharStruct, XFontProp,
- XChar2b, XFontStruct - load or unload fonts and font met-
- ric structures
-
- SSYYNNTTAAXX
- Font XLoadFont(_d_i_s_p_l_a_y, _n_a_m_e)
- Display *_d_i_s_p_l_a_y;
- char *_n_a_m_e;
-
- XFontStruct *XQueryFont(_d_i_s_p_l_a_y, _f_o_n_t___I_D)
- Display *_d_i_s_p_l_a_y;
- XID _f_o_n_t___I_D;
-
- XFontStruct *XLoadQueryFont(_d_i_s_p_l_a_y, _n_a_m_e)
- Display *_d_i_s_p_l_a_y;
- char *_n_a_m_e;
-
- XFreeFont(_d_i_s_p_l_a_y, _f_o_n_t___s_t_r_u_c_t)
- Display *_d_i_s_p_l_a_y;
- XFontStruct *_f_o_n_t___s_t_r_u_c_t;
-
- Bool XGetFontProperty(_f_o_n_t___s_t_r_u_c_t, _a_t_o_m, _v_a_l_u_e___r_e_t_u_r_n)
- XFontStruct *_f_o_n_t___s_t_r_u_c_t;
- Atom _a_t_o_m;
- unsigned long *_v_a_l_u_e___r_e_t_u_r_n;
-
- XUnloadFont(_d_i_s_p_l_a_y, _f_o_n_t)
- Display *_d_i_s_p_l_a_y;
- Font _f_o_n_t;
-
- AARRGGUUMMEENNTTSS
- _a_t_o_m Specifies the atom for the property name you
- want returned.
-
- _d_i_s_p_l_a_y Specifies the connection to the X server.
-
- _f_o_n_t Specifies the font.
-
- _f_o_n_t___I_D Specifies the font ID or the _G_C_o_n_t_e_x_t ID.
-
- _f_o_n_t___s_t_r_u_c_t
- Specifies the storage associated with the font.
-
- _g_c Specifies the GC.
-
- _n_a_m_e Specifies the name of the font, which is a null-
- terminated string.
-
- _v_a_l_u_e___r_e_t_u_r_n
- Returns the value of the font property.
-
-
-
-
-
- X Version 11 Release 6.1 1
-
-
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- DDEESSCCRRIIPPTTIIOONN
- The _X_L_o_a_d_F_o_n_t function loads the specified font and
- returns its associated font ID. If the font name is not
- in the Host Portable Character Encoding, the result is
- implementation-dependent. Use of uppercase or lowercase
- does not matter. When the characters ``?'' and ``*'' are
- used in a font name, a pattern match is performed and any
- matching font is used. In the pattern, the ``?'' charac-
- ter will match any single character, and the ``*'' charac-
- ter will match any number of characters. A structured
- format for font names is specified in the X Consortium
- standard _X _L_o_g_i_c_a_l _F_o_n_t _D_e_s_c_r_i_p_t_i_o_n _C_o_n_v_e_n_t_i_o_n_s. If
- _X_L_o_a_d_F_o_n_t was unsuccessful at loading the specified font,
- a _B_a_d_N_a_m_e error results. Fonts are not associated with a
- particular screen and can be stored as a component of any
- GC. When the font is no longer needed, call _X_U_n_l_o_a_d_F_o_n_t.
-
- _X_L_o_a_d_F_o_n_t can generate _B_a_d_A_l_l_o_c and _B_a_d_N_a_m_e errors.
-
- The _X_Q_u_e_r_y_F_o_n_t function returns a pointer to the
- _X_F_o_n_t_S_t_r_u_c_t structure, which contains information associ-
- ated with the font. You can query a font or the font
- stored in a GC. The font ID stored in the _X_F_o_n_t_S_t_r_u_c_t
- structure will be the _G_C_o_n_t_e_x_t ID, and you need to be
- careful when using this ID in other functions (see
- _X_G_C_o_n_t_e_x_t_F_r_o_m_G_C). If the font does not exist, _X_Q_u_e_r_y_F_o_n_t
- returns NULL. To free this data, use _X_F_r_e_e_F_o_n_t_I_n_f_o.
-
- _X_L_o_a_d_Q_u_e_r_y_F_o_n_t can generate a _B_a_d_A_l_l_o_c error.
-
- The _X_L_o_a_d_Q_u_e_r_y_F_o_n_t function provides the most common way
- for accessing a font. _X_L_o_a_d_Q_u_e_r_y_F_o_n_t both opens (loads)
- the specified font and returns a pointer to the appropri-
- ate _X_F_o_n_t_S_t_r_u_c_t structure. If the font name is not in the
- Host Portable Character Encoding, the result is implemen-
- tation-dependent. If the font does not exist, _X_L_o_a_d_Q_u_e_r_y_-
- _F_o_n_t returns NULL.
-
- The _X_F_r_e_e_F_o_n_t function deletes the association between the
- font resource ID and the specified font and frees the
- _X_F_o_n_t_S_t_r_u_c_t structure. The font itself will be freed when
- no other resource references it. The data and the font
- should not be referenced again.
-
- _X_F_r_e_e_F_o_n_t can generate a _B_a_d_F_o_n_t error.
-
- Given the atom for that property, the _X_G_e_t_F_o_n_t_P_r_o_p_e_r_t_y
- function returns the value of the specified font property.
- _X_G_e_t_F_o_n_t_P_r_o_p_e_r_t_y also returns _F_a_l_s_e if the property was
- not defined or _T_r_u_e if it was defined. A set of prede-
- fined atoms exists for font properties, which can be found
- in <_X_1_1_/_X_a_t_o_m_._h>. This set contains the standard proper-
- ties associated with a font. Although it is not guaran-
- teed, it is likely that the predefined font properties
-
-
-
- X Version 11 Release 6.1 2
-
-
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- will be present.
-
- The _X_U_n_l_o_a_d_F_o_n_t function deletes the association between
- the font resource ID and the specified font. The font
- itself will be freed when no other resource references it.
- The font should not be referenced again.
-
- _X_U_n_l_o_a_d_F_o_n_t can generate a _B_a_d_F_o_n_t error.
-
- SSTTRRUUCCTTUURREESS
- The _X_F_o_n_t_S_t_r_u_c_t structure contains all of the information
- for the font and consists of the font-specific information
- as well as a pointer to an array of _X_C_h_a_r_S_t_r_u_c_t structures
- for the characters contained in the font. The
- _X_F_o_n_t_S_t_r_u_c_t, _X_F_o_n_t_P_r_o_p, and _X_C_h_a_r_S_t_r_u_c_t structures con-
- tain:
-
- typedef struct {
- short lbearing; /* origin to left edge of raster */
- short rbearing; /* origin to right edge of raster */
- short width; /* advance to next char's origin */
- short ascent; /* baseline to top edge of raster */
- short descent; /* baseline to bottom edge of raster */
- unsigned short attributes;/* per char flags (not predefined) */
- } XCharStruct;
-
- typedef struct {
- Atom name;
- unsigned long card32;
- } XFontProp;
-
- typedef struct { /* normal 16 bit characters are two bytes */
- unsigned char byte1;
- unsigned char byte2;
- } XChar2b;
-
- typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- Font fid; /* Font id for this font */
- unsigned direction; /* hint about the direction font is painted */
- unsigned min_char_or_byte2;/* first character */
- unsigned max_char_or_byte2;/* last character */
- unsigned min_byte1; /* first row that exists */
- unsigned max_byte1; /* last row that exists */
- Bool all_chars_exist; /* flag if all characters have nonzero size */
- unsigned default_char; /* char to print for undefined character */
- int n_properties; /* how many properties there are */
- XFontProp *properties; /* pointer to array of additional properties */
- XCharStruct min_bounds; /* minimum bounds over all existing char */
- XCharStruct max_bounds; /* maximum bounds over all existing char */
- XCharStruct *per_char; /* first_char to last_char information */
- int ascent; /* logical extent above baseline for spacing */
- int descent; /* logical decent below baseline for spacing */
- } XFontStruct;
-
-
-
- X Version 11 Release 6.1 3
-
-
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- X supports single byte/character, two bytes/character
- matrix, and 16-bit character text operations. Note that
- any of these forms can be used with a font, but a single
- byte/character text request can only specify a single byte
- (that is, the first row of a 2-byte font). You should
- view 2-byte fonts as a two-dimensional matrix of defined
- characters: byte1 specifies the range of defined rows and
- byte2 defines the range of defined columns of the font.
- Single byte/character fonts have one row defined, and the
- byte2 range specified in the structure defines a range of
- characters.
-
- The bounding box of a character is defined by the
- _X_C_h_a_r_S_t_r_u_c_t of that character. When characters are absent
- from a font, the default_char is used. When fonts have
- all characters of the same size, only the information in
- the _X_F_o_n_t_S_t_r_u_c_t min and max bounds are used.
-
- The members of the _X_F_o_n_t_S_t_r_u_c_t have the following seman-
- tics:
-
- +o The direction member can be either _F_o_n_t_L_e_f_t_T_o_R_i_g_h_t or
- _F_o_n_t_R_i_g_h_t_T_o_L_e_f_t. It is just a hint as to whether
- most _X_C_h_a_r_S_t_r_u_c_t elements have a positive
- (_F_o_n_t_L_e_f_t_T_o_R_i_g_h_t) or a negative (_F_o_n_t_R_i_g_h_t_T_o_L_e_f_t)
- character width metric. The core protocol defines no
- support for vertical text.
-
- +o If the min_byte1 and max_byte1 members are both zero,
- min_char_or_byte2 specifies the linear character
- index corresponding to the first element of the
- per_char array, and max_char_or_byte2 specifies the
- linear character index of the last element.
-
- If either min_byte1 or max_byte1 are nonzero, both
- min_char_or_byte2 and max_char_or_byte2 are less than
- 256, and the 2-byte character index values corre-
- sponding to the per_char array element N (counting
- from 0) are:
-
- byte1 = N/D + min_byte1
- byte2 = N\D + min_char_or_byte2
-
- where:
-
- D = max_char_or_byte2 - min_char_or_byte2 + 1
- / = integer division
- \ = integer modulus
-
- +o If the per_char pointer is NULL, all glyphs between
- the first and last character indexes inclusive have
- the same information, as given by both min_bounds and
- max_bounds.
-
-
-
-
- X Version 11 Release 6.1 4
-
-
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- +o If all_chars_exist is _T_r_u_e, all characters in the
- per_char array have nonzero bounding boxes.
-
- +o The default_char member specifies the character that
- will be used when an undefined or nonexistent charac-
- ter is printed. The default_char is a 16-bit charac-
- ter (not a 2-byte character). For a font using
- 2-byte matrix format, the default_char has byte1 in
- the most-significant byte and byte2 in the least sig-
- nificant byte. If the default_char itself specifies
- an undefined or nonexistent character, no printing is
- performed for an undefined or nonexistent character.
-
- +o The min_bounds and max_bounds members contain the
- most extreme values of each individual _X_C_h_a_r_S_t_r_u_c_t
- component over all elements of this array (and ignore
- nonexistent characters). The bounding box of the
- font (the smallest rectangle enclosing the shape
- obtained by superimposing all of the characters at
- the same origin [x,y]) has its upper-left coordinate
- at:
- [x + min_bounds.lbearing, y - max_bounds.ascent]
-
- Its width is:
- max_bounds.rbearing - min_bounds.lbearing
-
- Its height is:
- max_bounds.ascent + max_bounds.descent
-
- +o The ascent member is the logical extent of the font
- above the baseline that is used for determining line
- spacing. Specific characters may extend beyond this.
-
- +o The descent member is the logical extent of the font
- at or below the baseline that is used for determining
- line spacing. Specific characters may extend beyond
- this.
-
- +o If the baseline is at Y-coordinate y, the logical
- extent of the font is inclusive between the Y-
- coordinate values (y - font.ascent) and (y +
- font.descent - 1). Typically, the minimum interline
- spacing between rows of text is given by ascent +
- descent.
-
- For a character origin at [x,y], the bounding box of a
- character (that is, the smallest rectangle that encloses
- the character's shape) described in terms of _X_C_h_a_r_S_t_r_u_c_t
- components is a rectangle with its upper-left corner at:
-
- [x + lbearing, y - ascent]
-
- Its width is:
-
-
-
-
- X Version 11 Release 6.1 5
-
-
-
-
-
- XLoadFont(3X11) XLIB FUNCTIONS XLoadFont(3X11)
-
-
- rbearing - lbearing
-
- Its height is:
-
- ascent + descent
-
- The origin for the next character is defined to be:
-
- [x + width, y]
-
- The lbearing member defines the extent of the left edge of
- the character ink from the origin. The rbearing member
- defines the extent of the right edge of the character ink
- from the origin. The ascent member defines the extent of
- the top edge of the character ink from the origin. The
- descent member defines the extent of the bottom edge of
- the character ink from the origin. The width member
- defines the logical width of the character.
-
- DDIIAAGGNNOOSSTTIICCSS
- _B_a_d_A_l_l_o_c The server failed to allocate the requested
- resource or server memory.
-
- _B_a_d_F_o_n_t A value for a Font or GContext argument does not
- name a defined Font.
-
- _B_a_d_N_a_m_e A font or color of the specified name does not
- exist.
-
- SSEEEE AALLSSOO
- XCreateGC(3X11), XListFonts(3X11), XSetFontPath(3X11)
- _X_l_i_b _- _C _L_a_n_g_u_a_g_e _X _I_n_t_e_r_f_a_c_e
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X Version 11 Release 6.1 6
-
-
-