## Tcl8.6.17/Tk8.6.17 Documentation > Tk C API > CrtSelHdlr

### 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_CreateSelHandler, Tk_DeleteSelHandler — 選択の為に要求を処理するための準備 arrange to handle requests for a selection
  SYNOPSIS
    #include <tk.h>
    Tk_CreateSelHandler(tkwin, selection, target, proc, clientData, format)
    Tk_DeleteSelHandler(tkwin, selection, target)
  引数 ARGUMENTS
    Tk_Window tkwin (入力in)
    Atom selection (入力in)
    Atom target (入力in)
    Tk_SelectionProc *proc (入力in)
    ClientData clientData (入力in)
    Atom format (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tk_CreateSelHandler, Tk_DeleteSelHandler — 選択の為に要求を処理するための準備 arrange to handle requests for a selection

### SYNOPSIS

#include <tk.h>
Tk_CreateSelHandler(tkwin, selection, target, proc, clientData, format)
Tk_DeleteSelHandler(tkwin, selection, target)

### 引数 ARGUMENTS

Tk_Window tkwin (入力in)
  そこに手続函数が選択情報を提供することになる､窓｡　 Window for which proc will provide selection information.

Atom selection (入力in)
  そこに手続函数が選択情報を提供することになる､選択の名前｡　　 The name of the selection for which proc will provide selection information.

Atom target (入力in)
  その中の手続函数から選択が提供できる形式(譬ば､ STRING や FILE_NAME)｡選択selection命令内の型引数に相当する｡　 Form in which proc can provide the selection (e.g. STRING or FILE_NAME). Corresponds to type arguments in selection commands.

Tk_SelectionProc *proc (入力in)
  何時であれ選択が tkwin によって所有され且つ選択の内容が目的によって与えられた書式内で要求された時はいつでも起動する手続函数｡　 Procedure to invoke whenever the selection is owned by tkwin and the selection contents are requested in the format given by target.

ClientData clientData (入力in)
  手続函数に渡す為の任意の一語値｡　 Arbitrary one-word value to pass to proc.

Atom format (入力in)
  もし選択の要求者がこの手順の中になければ､書式は選択をその要求者に送り届ける為に使われる表現を定める｡　 If the selection requestor is not in this process, format determines the representation used to transmit the selection to its requestor.

### 説明 DESCRIPTION

Tk_CreateSelHandler は何時であれ selection が tkwin によって所有され､且つ選択の内容が target により与えられた形式で要求された時に､何時でも呼出されるべき特定の手続函数(proc)の為に手配する｡ target は X Window Systemの同一サーバ上のクライアント間の相互運用に関する標準規格(ICCCM)の表２の左欄内に定義されている見出しであるか､応用譜が選択の存在を意図している他のどれかの形式である｡最も普通の形式は文字列である｡ Tk_CreateSelHandler arranges for a particular procedure (proc) to be called whenever selection is owned by tkwin and the selection contents are requested in the form given by target. Target should be one of the entries defined in the left column of Table 2 of the X Inter-Client Communication Conventions Manual (ICCCM) or any other form in which an application is willing to present the selection. The most common form is STRING.

proc は型 Tk_SelectionProc:に合致する引数と結果を有するべきである: Proc should have arguments and result that match the type Tk_SelectionProc:

    typedef int Tk_SelectionProc(
            ClientData clientData,
            int offset,
            char *buffer,
            int maxBytes);

proc への clientData 假引数は与えられた Tk_CreateSelHandler.への clientData 引数の複写である｡典型的には clientData は応用譜固有の情報を含む構造を指す､それは選択の取出しに必要である｡ offset は選択の中の偏寄位置を指定する､ buffer は選択に関する情報の複写の位置を指定する｡又､ maxBytes は buffer の位置で利用できる空間の量を指定する｡ proc は buffer の位置に maxBytes かそれより少ない文字数(終端の NULLを含まない)を含むNULL-終端の文字列を置く､又それは buffer の箇所に保存された非零文字の個数を返す｡もし選択が最早実在しない場合(譬えば､一度は実在したが使用者がそれを含む文字範囲を削除した)､ proc は -1 を返す｡ The clientData parameter to proc is a copy of the clientData argument given to Tk_CreateSelHandler. Typically, clientData points to a data structure containing application-specific information that is needed to retrieve the selection. Offset specifies an offset position into the selection, buffer specifies a location at which to copy information about the selection, and maxBytes specifies the amount of space available at buffer. Proc should place a NULL-terminated string at buffer containing maxBytes or fewer characters (not including the terminating NULL), and it should return a count of the number of non-NULL characters stored at buffer. If the selection no longer exists (e.g. it once existed but the user deleted the range of characters containing it), then proc should return -1.

大きな選択を移転する時､ Tk はより効率的に移転する為に小さい細片に分ける(典型的にはそれぞれ数千バイトづつ)｡それは ､連続的に offset だけ高い値を使って､連続的に選択の部位を取出す為に､何回もproc を呼んで遂行する｡もし proc が maxBytes より少ない計数を返す場合､それは選択の残り全てが返されたことを意味する｡もし proc の返り値が maxBytes の場合､それは更なる情報が選択の中にあることを意味するので､ Tk は次の部位を取出す為にもう一度 proc を呼出す必要がある｡ When transferring large selections, Tk will break them up into smaller pieces (typically a few thousand bytes each) for more efficient transmission. It will do this by calling proc one or more times, using successively higher values of offset to retrieve successive portions of the selection. If proc returns a count less than maxBytes it means that the entire remainder of the selection has been returned. If proc's return value is maxBytes it means there may be additional information in the selection, so Tk must make another call to proc to retrieve the next portion.

proc は常に選択情報を文字列の形式で返す｡但し ICCCM は､選択所有者から選択要求者への移転される情報としてどの様な幾つかの種類の形式､譬えば文字列､基本子の配列､整数の配列等も許容している｡ Tk_CreateSelHandler への format 引数はどの形式が要求者への選択の移転に使用されるべきかを指し示す(譬えば ICCCM の表２の中央欄を参照されたい)｡もし format が文字列で内場合､ Tk は proc に返された値を取りそれを空白で分離して各欄に分ける｡もし format が基本子の場合､ Tk は選択を基本子の配列として返し､ proc の結果のそれぞれの欄は一つの基本子の名前として扱われる｡ format のそれ以外のどの値についても Tk は選択を 32-ビット値の配列として返す､ここで proc の結果のそれぞれの欄は数として取扱われ､ 32-ビット値に変換される｡どの行事でも､ format 基本子は選択の内容に従って選択要求者に返される｡ Proc always returns selection information in the form of a character string. However, the ICCCM allows for information to be transmitted from the selection owner to the selection requestor in any of several formats, such as a string, an array of atoms, an array of integers, etc. The format argument to Tk_CreateSelHandler indicates what format should be used to transmit the selection to its requestor (see the middle column of Table 2 of the ICCCM for examples). If format is not STRING, then Tk will take the value returned by proc and divided it into fields separated by white space. If format is ATOM, then Tk will return the selection as an array of atoms, with each field in proc's result treated as the name of one atom. For any other value of format, Tk will return the selection as an array of 32-bit values where each field of proc's result is treated as a number and translated to a 32-bit value. In any event, the format atom is returned to the selection requestor along with the contents of the selection.

もし Tk_CreateSelHandler が呼ばれた時､既に tkwin 上の selection と target の為の操作子が存在すると､既存の操作子は新しいものに置換えられる｡ If Tk_CreateSelHandler is called when there already exists a handler for selection and target on tkwin, then the existing handler is replaced with a new one.

Tk_DeleteSelHandler は tkwin, selection, and target が与えられ､操作子を取外す､もしその様な操作子が実在する場合｡その様な操作子がない場合は効果がない｡ Tk_DeleteSelHandler removes the handler given by tkwin, selection, and target, if such a handler exists. If there is no such handler then it has no effect.

### KEYWORDS

format, handler, selection, target
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.