## Tcl9.0.3/Tk9.0.3 Documentation > Tk C API > MeasureChar

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tk_MeasureChars, Tk_MeasureCharsInContext, Tk_TextWidth, Tk_DrawChars, Tk_DrawCharsInContext,Tk_UnderlineChars, Tk_UnderlineCharsInContext — 単純な一行文字の測定と表示の業務譜　 routines to measure and display simple single-line strings.
  SYNOPSIS
    #include <tk.h>
    int
    Tk_MeasureChars(tkfont, string, numBytes, maxPixels, flags, lengthPtr)
    int
    Tk_MeasureCharsInContext(tkfont, string, numBytes, rangeStart, rangeLength, maxPixels, flags, lengthPtr)
    int
    Tk_TextWidth(tkfont, string, numBytes)
    Tk_DrawChars(display, drawable, gc, tkfont, string, numBytes, x, y)
    Tk_DrawCharsInContext(display, drawable, gc, tkfont, string, numBytes, rangeStart, rangeLength, x, y)
    Tk_UnderlineChars(display, drawable, gc, tkfont, string, x, y, firstByte, lastByte)
    Tk_UnderlineCharsInContext(display, drawable, gc, tkfont, string, numBytes, x, y, firstByte, lastByte)
  引数 ARGUMENTS
    Tk_Font tkfont (入力in)
    const char *string (入力in)
    Tcl_Size numBytes (入力in)
    int maxPixels (入力in)
    int flags (in)
    int *lengthPtr (出力out)
    Display *display (入力in)
    Drawable drawable (入力in)
    GC gc (入力in)
    int x, y (入力in)
    int firstByte (入力in)
    int lastByte (入力in)
    Tcl_Size rangeStart (入力in)
    Tcl_Size rangeLength (入力in)
  説明 DESCRIPTION
  SEE ALSO
  KEYWORDS

### NAME

Tk_MeasureChars, Tk_MeasureCharsInContext, Tk_TextWidth, Tk_DrawChars, Tk_DrawCharsInContext,Tk_UnderlineChars, Tk_UnderlineCharsInContext — 単純な一行文字の測定と表示の業務譜　 routines to measure and display simple single-line strings.

### SYNOPSIS

#include <tk.h>
int
Tk_MeasureChars(tkfont, string, numBytes, maxPixels, flags, lengthPtr)
int
Tk_MeasureCharsInContext(tkfont, string, numBytes, rangeStart, rangeLength, maxPixels, flags, lengthPtr)
int
Tk_TextWidth(tkfont, string, numBytes)
Tk_DrawChars(display, drawable, gc, tkfont, string, numBytes, x, y)
Tk_DrawCharsInContext(display, drawable, gc, tkfont, string, numBytes, rangeStart, rangeLength, x, y)
Tk_UnderlineChars(display, drawable, gc, tkfont, string, x, y, firstByte, lastByte)
Tk_UnderlineCharsInContext(display, drawable, gc, tkfont, string, numBytes, x, y, firstByte, lastByte)

### 引数 ARGUMENTS

Tk_Font tkfont (入力in)
  字母の為の字句､その中に文書が描かれるか測定される｡Tk_GetFont への事前の呼出しにより返されたものでなければならない｡　 Token for font in which text is to be drawn or measured. Must have been returned by a previous call to Tk_GetFont.

const char *string (入力in)
  測定又は表示すべき文書｡ヌル文字終端でなくても好い｡文字列内の､どの非-印刷 汎-文字(譬ば､タブ文字や､改行文字やその他の制御文字)も､OSに依存しない方法で測定又は表示される｡　 Text to be measured or displayed. Need not be null terminated. Any non-printing meta-characters in the string (such as tabs, newlines, and other control characters) will be measured or displayed in a platform-dependent manner.

Tcl_Size numBytes (入力in)
  文字列の測定又は描写の時に考慮すべきバイトの最大数｡0 又は､それより大きくなければならない｡ The maximum number of bytes to consider when measuring or drawing string. Must be greater than or equal to 0.

int maxPixels (入力in)
  もしmaxPixels is >= 0 の場合､許容しうる行長の画素単位の最長を指し示す｡文字列からの文字はこの幾つかの画素が覆っている限りに於いてのみ処理される｡もし maxPixels < 0 の場合､行長は束縛されず､旗印引数は無視される｡　 If maxPixels is >= 0, it specifies the longest permissible line length in pixels. Characters from string are processed only until this many pixels have been covered. If maxPixels is < 0, then the line length is unbounded and the flags argument is ignored.

int flags (in)
  様々な旗印ビットが互いに論理和される: TK_PARTIAL_OK の意味は maxPixels によって与えられた長さ内に適するどの部分である限り､文字を含む; そうでない場合､文字は完全に適合しなければならないと看做される｡TK_PARTIAL_OK の意味は､どの部分であれ maxPixels によって与えられた長さ内に適する限り文字を含むことを意味する; そうでなければ､文字は完全に適合しなければならないと看做される｡TK_WHOLE_WORDS の意味は､もし可能なら､語の束縛を停止する｡もし TK_AT_LEAST_ONE が設定されている場合､それは､縦え maxPixels によって与えられた長さ以内に適合することが可能な文字がなくても､最低１文字は返す事を意味する｡もしTK_AT_LEAST_ONE が設定され､且つ､TK_WHOLE_WORDSも設定されている場合､その意味は､その行内の一つの単語さえも適合しなくとも､適合した単語の最初の幾つかの文字を返す; もし単語の一つの文字も適合しないとき､それでも依然最初の文が返される｡ TK_ISOLATE_ENDは､残りの文脈内の末尾の文字は､考慮されるべきではない事を意味す (函数機能のTk_*InContext変種による行中断にのみ使われる)｡ Various flag bits OR-ed together: TK_PARTIAL_OK means include a character as long as any part of it fits in the length given by maxPixels; otherwise, a character must fit completely to be considered. TK_WHOLE_WORDS means stop on a word boundary, if possible. If TK_AT_LEAST_ONE is set, it means return at least one character even if no characters could fit in the length given by maxPixels. If TK_AT_LEAST_ONE is set and TK_WHOLE_WORDS is also set, it means that if not even one word fits on the line, return the first few letters of the word that did fit; if not even one letter of the word fit, then the first letter will still be returned. TK_ISOLATE_END means that the last character should not be considered in context with the rest of the string (used for breaking lines, with the Tk_*InContext variants of the functions only).

int *lengthPtr (出力out)
  Tk_MeasureChars の結果として返された文字の数によって占有された画素の数によって満たされる｡　 Filled with the number of pixels occupied by the number of characters returned as the result of Tk_MeasureChars.

Display *display (入力in)
  その上に描画すべき表示器｡ Display on which to draw.

Drawable drawable (入力in)
  その中に描画すべき窓又は画素地図｡ Window or pixmap in which to draw.

GC gc (入力in)
  文字を描く為の図面文脈｡この図面文脈の中の選択されたフォントはtkfontと同じでなければならない｡ Graphics context for drawing characters. The font selected into this GC must be the same as the tkfont.

int x, y (入力in)
  文字列を表示する時の基準線の左縁への場所の座標｡ Coordinates at which to place the left edge of the baseline when displaying string.

int firstByte (入力in)
  文字列内の下線を描く最初の文字の最初のバイトの位置｡下線引きはこの文字の左縁から始まる｡　 The index of the first byte of the first character to underline in the string. Underlining begins at the left edge of this character.

int lastByte (入力in)
  其処まで下線が描かれることになる最後の文字の最初のバイトの位置｡ lastByte によって指し示される文字そのものは下線が引かれることはない｡　 The index of the first byte of the last character up to which the underline will be drawn. The character specified by lastByte will not itself be underlined.

Tcl_Size rangeStart (入力in)
  描いたり､測ったりすべき最初のバイトの索引位置｡ Index of first byte to draw or to measure.

Tcl_Size rangeLength (入力in)
  描いたり､測ったりすべき範囲のバイト単位の長さ｡ Length of range to draw or to measure, in bytes.

### 説明 DESCRIPTION

これ等の機能譜は単純な一文字の文字形状､１行の文書を準備し表示するためのものである｡一文字の文字形状､複数行､端の揃え､の準備と表示は取扱説明書の Tk_ComputeTextLayout を参照されたい｡多文字文字形状､複数行文書を運営する算譜の相互作用は Tk の核内にはない; その挙動の運営は単純層の頂上で作成しなければならない｡註意すべきは､ここで記述する相互作用は､バイト起源であり文字起源ではない､そこで Tcl 記述譜由来の索引値は Tcl_UtfAtIndex とその関連函数譜を使ってバイト番地に変換する必要がある｡ These routines are for measuring and displaying simple single-font, single-line strings. To measure and display single-font, multi-line, justified text, refer to the documentation for Tk_ComputeTextLayout. There is no programming interface in the core of Tk that supports multi-font, multi-line text; support for that behavior must be built on top of simpler layers. Note that the interfaces described here are byte-oriented not character-oriented, so index values coming from Tcl scripts need to be converted to byte offsets using the Tcl_UtfAtIndex and related routines.

絵文字は文字､数字､何かの記号の表示可能な絵柄である｡与えられた文字形状内の全ての文字符号が絵文字を有する訳ではない｡タブ､改行/行送り､制御文字の様な絵文字を有さない文字の準備と表示はOS固有の方法の手続函数による; X の元ではそういうものは逆斜線除外並びにより置換る､ Windows と Macintosh では白四角又は黒四角に置換られる｡タブ文字から欄桝へ､及び改行/行送りから多行文書へのOS非依存の拡張を運営している算譜相互作用については Tk_ComputeTextLayout についての説明書を参照されたい｡ A glyph is the displayable picture of a letter, number, or some other symbol. Not all character codes in a given font have a glyph. Characters such as tabs, newlines/returns, and control characters that have no glyph are measured and displayed by these procedures in a platform-dependent manner; under X, they are replaced with backslashed escape sequences, while under Windows and Macintosh hollow or solid boxes may be substituted. Refer to the documentation for Tk_ComputeTextLayout for a programming interface that supports the platform-independent expansion of tab characters into columns and newlines/returns into multi-line text.

Tk_MeasureChars は与えられた文書の長さの計算と文字列の何文字が与えられた量の巾に嵌るかの両方の計算に使われる｡返り値は､ flags によって記述された条件に従って maxPixels によって指定された巾内に嵌る string からのバイトの数を返す｡もし全ての文字が嵌る場合､返り値は numBytes になる｡*lengthPtr は､準備された文字列の部位の画素単位で計算された巾が入れられる｡譬えば､もし返り値が 5,の場合､ *lengthPtr は string[0] の左端と string[4] の右端の間の距離が入れられる｡ Tk_MeasureChars is used both to compute the length of a given string and to compute how many characters from a string fit in a given amount of space. The return value is the number of bytes from string that fit in the space specified by maxPixels subject to the conditions described by flags. If all characters fit, the return value will be numBytes. *lengthPtr is filled with the computed width, in pixels, of the portion of the string that was measured. For example, if the return value is 5, then *lengthPtr is filled with the distance between the left edge of string[0] and the right edge of string[4].

Tk_TextWidth はTk_MeasureChars 函数への単純な相互作用を提供する行折畳み函数である｡与えられた文字列が画素単位で幾らの巾であるかを返す｡ Tk_TextWidth is a wrapper function that provides a simpler interface to the Tk_MeasureChars function. The return value is how much space in pixels the given string needs.

Tk_DrawChars は与えられた drawable.内の位置に文字列を描く｡ Tk_DrawChars draws the string at the given location in the given drawable.

Tk_UnderlineChars は与えられた文字列内の与えられた文字列の範囲に下線を引く｡文字(事前に Tk_DrawChars によって表示されていることが仮定されている)を描くのではなく; 単に下線を描く｡この手続函数は下線付き文字形状を構築する必要なしに幾つかの文字に下線を引く為に使われる｡自身が固有の下線をもっている文書を作成するには適切な下線付き文字形状を構築して使うべきである｡ Tk_UnderlineChars underlines the given range of characters in the given string. It does not draw the characters (which are assumed to have been displayed previously by Tk_DrawChars); it just draws the underline. This procedure is used to underline a few characters without having to construct an underlined font. To produce natively underlined text, the appropriate underlined font should be constructed and used.

Tk_MeasureCharsInContextとTk_DrawCharsInContextとTk_UnderlineCharsInContextは､それぞれ､対応するTk_MeasureCharsとTk_DrawCharsとTk_UnderlineCharsの 変種である､但し､文脈に関する行上に全ての文字への接続を伴う｡ 但し､macOS上では例外で､この文脈は実際には相談されない(文脈外の変種が呼ばれる､の意味)｡ Tk_MeasureCharsInContext, Tk_DrawCharsInContext, Tk_UnderlineCharsInContext are variants of respectively Tk_MeasureChars, Tk_DrawChars and Tk_UnderlineChars, but with access to all the characters on the line for context. Except on macOS, this context isn't actually consulted (meaning the out of context variants are called).

### SEE ALSO

font, FontId

### KEYWORDS

font, measurement
Copyright © 1996 Sun Microsystems, Inc.