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

### 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_CanvasTextInfo — 画布内の文書事項を管理する為の追加情報 additional information for managing text items in canvases

### SYNOPSIS

#include <tk.h>
Tk_CanvasTextInfo *
Tk_CanvasGetTextInfo(canvas)

### 引数 ARGUMENTS

Tk_Canvas canvas (入力in)
  特定の画素部品を識別する符牒語　 A token that identifies a particular canvas widget.

### 説明 DESCRIPTION

文書的画布品目は､選択と入力の注目の様な事柄により､他の品目より管理がいくらか複雑である｡Tk_CanvasGetTextInfo は文書表示の品目について必要な追加的情報を得る為に型管理譜により起動される｡ Tk_CanvasGetTextInfo からの返り値は Tk と､表示文書の全ての品目の間で共有される構造へのポインターである｡構造は次の形式を有する: Textual canvas items are somewhat more complicated to manage than other items, due to things like the selection and the input focus. Tk_CanvasGetTextInfo may be invoked by a type manager to obtain additional information needed for items that display text. The return value from Tk_CanvasGetTextInfo is a pointer to a structure that is shared between Tk and all the items that display text. The structure has the following form:

    typedef struct {
        Tk_3DBorder selBorder;
        int selBorderWidth;
        XColor *selFgColorPtr;
        Tk_Item *selItemPtr;
        Tcl_Size selectFirst;
        Tcl_Size selectLast;
        Tk_Item *anchorItemPtr;
        Tcl_Size selectAnchor;
        Tk_3DBorder insertBorder;
        int insertWidth;
        int insertBorderWidth;
        Tk_Item *focusItemPtr;
        int gotFocus;
        int cursorOn;
    } Tk_CanvasTextInfo;

selBorder 欄は選択された文書下の背景を描く為に使われる Tk_3DBorder を識別する｡ selBorderWidth は選択された文書の周囲の飛出した縁の幅を画素単位で与える｡ selFgColorPtr は選択された文書を描く時に使われる前景の色を記述する XColor を指す｡ selItemPtr は現在選択されている品目を指すが､何も選択されていないか､画布が選択を有していない場合は NULL である｡ selectFirst と selectLast はその品目に就いての indexProc により返される値として selItemPtr,内の最初と最後に選択された文字の索引を与える｡ anchorItemPtr は現在選択の錨を有する品目を指す; それは selItemPtr.と同じになる必要はない｡ selectAnchor は anchorItemPtr.内部の錨位置を識別する索引である｡ insertBorder は挿入遊走子を描く時に使う Tk_3DBorder を含む; insertWidth は遊走子の総合幅を画素単位で与える､又､ insertBorderWidth は挿入遊走子の回りの飛出した縁の幅を与える｡ focusItemPtr は現在入力の注目を有する品目を識別する､その様な品目がない時は NULL である｡ gotFocus はもし画布部品が入力の注目を有する時は 1 ､それ以外は 0 である｡ cursorOn は挿入遊走子が focusItemPtr 内に描かれるべきの場合は 1 ､描かれない場合は 0 である; この欄は Tk が遊走子を瞬かせる為に接と断が交互に入替る｡ The selBorder field identifies a Tk_3DBorder that should be used for drawing the background under selected text. selBorderWidth gives the width of the raised border around selected text, in pixels. selFgColorPtr points to an XColor that describes the foreground color to be used when drawing selected text. selItemPtr points to the item that is currently selected, or NULL if there is no item selected or if the canvas does not have the selection. selectFirst and selectLast give the indices of the first and last selected characters in selItemPtr, as returned by the indexProc for that item. anchorItemPtr points to the item that currently has the selection anchor; this is not necessarily the same as selItemPtr. selectAnchor is an index that identifies the anchor position within anchorItemPtr. insertBorder contains a Tk_3DBorder to use when drawing the insertion cursor; insertWidth gives the total width of the insertion cursor in pixels, and insertBorderWidth gives the width of the raised border around the insertion cursor. focusItemPtr identifies the item that currently has the input focus, or NULL if there is no such item. gotFocus is 1 if the canvas widget has the input focus and 0 otherwise. cursorOn is 1 if the insertion cursor should be drawn in focusItemPtr and 0 if it should not be drawn; this field is toggled on and off by Tk to make the cursor blink.

Tk_CanvasGetTextInfo により返される構造は Tk と型管理譜の間で共有されている; 典型的には型管理譜は品目が作成される時に一度 Tk_CanvasGetTextInfo を呼ぶ､そして､品目の記録内にポインターを保存する｡ Tk は Tk_CanvasTextInfo;内の情報を更新しようとする; 譬えば､ configure 部品命令は selBorder 欄を変更するかもしれず､ select 命令は selectFirst 欄を変更するかもしれない､又 Tk は連続した再表示の間入力遊走子を輝かせたり切ったりする為に cursorOn を変更するかもしれない｡ The structure returned by Tk_CanvasGetTextInfo is shared between Tk and the type managers; typically the type manager calls Tk_CanvasGetTextInfo once when an item is created and then saves the pointer in the item's record. Tk will update information in the Tk_CanvasTextInfo; for example, a configure widget command might change the selBorder field, or a select widget command might change the selectFirst field, or Tk might change cursorOn in order to make the insertion cursor flash on and off during successive redisplays.

型管理譜は Tk_CanvasTextInfo 構造の全ての欄を読出し専用として扱うべきである､但し､ selItemPtr, selectFirst, selectLast, and selectAnchor.を除外する｡型管理譜は品目の挿入又は削除の為に調整するため selectFirst, selectLast, and selectAnchor を変更するかもしれない(しかし､品目が選択か錨の現在所有者である場合のみ､ selItemPtr か anchorItemPtr によって定義された様に)｡もし品目内の選択された文書の全てが削除された場合､品目は最早選択がないことを指し示す為に selItemPtr を NULL に設定するべきである｡ Type managers should treat all of the fields of the Tk_CanvasTextInfo structure as read-only, except for selItemPtr, selectFirst, selectLast, and selectAnchor. Type managers may change selectFirst, selectLast, and selectAnchor to adjust for insertions and deletions in the item (but only if the item is the current owner of the selection or anchor, as determined by selItemPtr or anchorItemPtr). If all of the selected text in the item is deleted, the item should set selItemPtr to NULL to indicate that there is no longer a selection.

### KEYWORDS

canvas, focus, insertion cursor, selection, selection anchor, text
Copyright © 1994-1996 Sun Microsystems, Inc.