## Tcl9.0.3/Tk9.0.3 Documentation > Tk Commands > selection

### 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
    selection — X の選択を操作する Manipulate the X selection
  構文 SYNOPSIS
  説明 DESCRIPTION
    selection clear ?-displayof window? ?-selection selection?
    selection get ?-displayof window? ?-selection selection? ?-type type?
    selection handle ?-selection s? ?-type t? ?-format f? window command
    selection own ?-displayof window? ?-selection selection?
    selection own ?-command command? ?-selection selection? window
  部品の設備　WIDGET FACILITIES
  互換性の問題 PORTABILITY ISSUES
  SECURITY
  用例 EXAMPLES
  SEE ALSO
  KEYWORDS

### NAME

selection — X の選択を操作する Manipulate the X selection

### 構文 SYNOPSIS

selection option ?arg ...?

### 説明 DESCRIPTION

この命令は Tcl 対話機能に､ X への選択機構と X Inter-Client Communication Conventions Manual (ICCCM)に記述されている選択の全機能の実装を提供する｡ 　　　　　　 This command provides a Tcl interface to the X selection mechanism and implements the full selection functionality described in the X Inter-Client Communication Conventions Manual (ICCCM).

注意すべきは CLIPBOARD 選択(下記参照)の管理に関して clipboard 命令もやはり使用できることである｡ 　　　　　　 Note that for management of the CLIPBOARD selection (see below), the clipboard command may also be used.

selection の最初の引数は残りの引数の書式と命令の振舞いを定める｡次の形式が現在運営されている: 　　　　　　 The first argument to selection determines the format of the rest of the arguments and the behavior of the command. The following forms are currently supported:

selection clear ?-displayof window? ?-selection selection?
  もし window を表示する画像装置のどこかに selection が実在すると､それを消去し､どの窓ももはや選択を所有しないようにする｡ selection は消去されるべき X の選択を指定する､又､それは PRIMARY や CLIPBOARD の様な基本子の名前が好ましい; 完全なる詳細は ICCCM を参照されたい｡ selection の省略時設定は PRIMARY であり window の省略時設定は “.” である｡この命令は空文字列を返す｡ 　　　　　　 If selection exists anywhere on window's display, clear it so that no window owns the selection anymore. Selection specifies the X selection that should be cleared, and should be an atom name such as PRIMARY or CLIPBOARD; see the Inter-Client Communication Conventions Manual for complete details. Selection defaults to PRIMARY and window defaults to “.”. Returns an empty string.

selection get ?-displayof window? ?-selection selection? ?-type type?
  window を表示する画像装置から selection の値を取出して結果として返す｡ selection の省略時設定は PRIMARY であり window の省略時設定は “.” である｡ type は返される選択の形式( ICCCM 技術用語による､望ましい変換の “目標” )を指定する､それは又 STRING や FILE_NAME の様な基本子の名前が好ましい; 完全なる詳細は ICCCM を参照されたい｡ type の省略時設定は STRING である｡選択の所有者は､選択を返す為に幾つかの異なる形式の表現を選択することもできる､譬えば STRING, UTF8_STRING, ATOM, INTEGER, 等々｡(この書式は選択の形式とは異なる;この紛らわしい詳細については ICCCM を参照されたい)｡もし選択が INTEGER や ATOM の様な 非文字列形式で返される場合､ selection 命令は空白で区切られた欄の集積としての文字列形式に変換する: 基本子は文書的名前に変換され､その他は十六進整数に変換される｡註意すべきは､ selection get は通告されない限り､選択を UTF8_STRING 書式では取出さない｡ 　　　 　　　　　　 Retrieves the value of selection from window's display and returns it as a result. Selection defaults to PRIMARY and window defaults to “.”. Type specifies the form in which the selection is to be returned (the desired “target” for conversion, in ICCCM terminology), and should be an atom name such as STRING or FILE_NAME; see the Inter-Client Communication Conventions Manual for complete details. Type defaults to STRING. The selection owner may choose to return the selection in any of several different representation formats, such as STRING, UTF8_STRING, ATOM, INTEGER, etc. (this format is different than the selection type; see the ICCCM for all the confusing details). If the selection is returned in a non-string format, such as INTEGER or ATOM, the selection command converts it to string format as a collection of fields separated by spaces: atoms are converted to their textual names, and anything else is converted to hexadecimal integers. Note that selection get does not retrieve the selection in the UTF8_STRING format unless told to.

selection handle ?-selection s? ?-type t? ?-format f? window command
  何時であれ､選択 s が window に所有され且つ､誰かが型 t (譬えば t は selection get 命令内で指定される)によって与えられる形式で取出そうとした時には､その command が実行されるような､選択の要求の為の処理子を作成する｡ s の省略時設定は PRIMARY であり､ t の省略時設定は STRING であり､ f の省略時設定は STRING である｡もし command が空文字列である場合､ window と t と s との為のどの既存の処理子も取去られる｡註意すべきは､選択が STRING 型として処理される時は､それは自動的に UTF8_STRING 型としても処理される｡ 　　　　　　 Creates a handler for selection requests, such that command will be executed whenever selection s is owned by window and someone attempts to retrieve it in the form given by type t (e.g. t is specified in the selection get command). S defaults to PRIMARY, t defaults to STRING, and f defaults to STRING. If command is an empty string then any existing handler for window, t, and s is removed. Note that when the selection is handled as type STRING it is also automatically handled as type UTF8_STRING as well.

  selection が要求される時､ window が選択の所有者であり､且つ type は要求された型であると､ command は二つの追加的数を(空白で区切られて)追記され､ Tcl 命令として実行されることになる｡二つの追加的数は offset と maxChars である: offset は選択内の文字の始まり位置を指定し､ maxChars は取出すべき文字の最大数を与える｡この命令は選択の内の offset の位置から始まり､最大限 maxChars からなる値を返すことになる｡非常に大きい選択に対しては( maxChars より大きい場合)､選択は offset 値の増加を伴う何回かの command 起動を使って回収される｡もし command が maxChars より短い長さの文字列を返すと､返る値は選択の残りの全部を含むと仮定される､もし command の結果の 長さが maxChars に等しい場合､ command は､遂には maxChars より短い結果を返すまで､再度起動される｡ maxChars の値は常にかなり長くなる(数千文字)｡ 　　　　　　 When selection is requested, window is the selection owner, and type is the requested type, command will be executed as a Tcl command with two additional numbers appended to it (with space separators). The two additional numbers are offset and maxChars: offset specifies a starting character position in the selection and maxChars gives the maximum number of characters to retrieve. The command should return a value consisting of at most maxChars of the selection, starting at position offset. For very large selections (larger than maxChars) the selection will be retrieved using several invocations of command with increasing offset values. If command returns a string whose length is less than maxChars, the return value is assumed to include all of the remainder of the selection; if the length of command's result is equal to maxChars then command will be invoked again, until it eventually returns a result shorter than maxChars. The value of maxChars will always be relatively large (thousands of characters).

  もし command が不都合を返す場合､選択の取出しは恰も選択が全く存在しないかの如く拒否される｡ 　　　　　　 If command returns an error then the selection retrieval is rejected just as if the selection did not exist at all.

  format 引数は､要求元( ICCCMの表 2 の第２欄)への選択の伝達に使われるべき表現を指定する､省略時設定は STRING である｡もし書式が STRING の場合､選択は 8-bit ASCII 文字として伝達される(即ち､系の符号系encoding内で command によって返されるその形式; UTF8_STRING 書式はその符号化として常に UTF-8 を使う)｡もし format が ATOM の場合､ command から返る値は空白によって欄枠に分割される; それぞれの欄枠はその基本子の値に変換され､32-ビットの基本子の値が基本子の名前の代りに伝達される｡それ以外のどの format に対しても､ command からの返り値は空白によって欄枠に分割され､それぞれの欄枠は32-ビット整数値に変換される､整数の配列が選択の要求元に伝達される｡ 　　　　　　　　 The format argument specifies the representation that should be used to transmit the selection to the requester (the second column of Table 2 of the ICCCM), and defaults to STRING. If format is STRING, the selection is transmitted as 8-bit ASCII characters (i.e. just in the form returned by command, in the system encoding; the UTF8_STRING format always uses UTF-8 as its encoding). If format is ATOM, then the return value from command is divided into fields separated by white space; each field is converted to its atom value, and the 32-bit atom value is transmitted instead of the atom name. For any other format, the return value from command is divided into fields separated by white space and each field is converted to a 32-bit integer; an array of integers is transmitted to the selection requester.

  format 引数は Tk を使わない選択の要求元との互換性の為にのみ必要である｡もし選択の取出しに Tk が使用される場合､値は要求の終わりに文字列に再変換される､従って format は無意味である｡ 　　　　　　 The format argument is needed only for compatibility with selection requesters that do not use Tk. If Tk is being used to retrieve the selection then the value is converted back to a string at the requesting end, so format is irrelevant.

selection own ?-displayof window? ?-selection selection?

selection own ?-command command? ?-selection selection? window
  selection own の第１の形式は window を表示する画像装置上の selection を所有している応用譜内の窓の経路名を返すか､応用譜内のどの窓も選択を所有しない場合は､空文字列を返す｡ selection の省略時設定は PRIMARY ､ window の省略時設定は “.” である｡ 　　　　　　 The first form of selection own returns the path name of the window in this application that owns selection on the display containing window, or an empty string if no window in this application owns the selection. Selection defaults to PRIMARY and window defaults to “.”.

  selection own の第２の形式は window を window を表示する画像装置上の選択の新しい所有者にさせ､結果として空文字列を返す｡既存の所有者がもしあれば､それには選択を失ったことが知らされる｡もし command が指定された場合､それは､どれか他の window が､選択の所有を window から手離す宣言をするときに実行すべき Tcl 記述譜である｡選択の省略時設定は PRIMARY である｡｡選択selectionの省略時設定は PRIMARY である｡ 　　　　　　 The second form of selection own causes window to become the new owner of selection on window's display, returning an empty string as result. The existing owner, if any, is notified that it has lost the selection. If command is specified, it is a Tcl script to execute when some other window claims ownership of the selection away from window. Selection defaults to PRIMARY.

### 部品の設備　WIDGET FACILITIES

text と entry と ttk::entry と listbox と spinbox と ttk::spinbox 部品は指示項目 -exportselection を有する｡部品がこの設定を論理真値に設定させると(不安全な解釈実行機能内で)選択は部品内で自動的に PRIMARY 選択に書込まれる｡　　　　　　　　 The text, entry, ttk::entry, listbox, spinbox and ttk::spinbox widgets have the option -exportselection. If a widget has this option set to boolean true, then (in an unsafe interpreter) a selection made in the widget is automatically written to the PRIMARY selection.

画像対話機能 行事は､譬えば <<PasteSelection>> は PRIMARY 選択を特定の部品に複写できる｡この複写は直ちに部品束縛から行事に複写される｡束縛記述譜は選択命令を適切に呼出させる｡　　　 A GUI event, for example <<PasteSelection>>, can copy the PRIMARY selection to certain widgets. This copy is implemented by a widget binding to the event. The binding script makes appropriate calls to the selection command.

### 互換性の問題 PORTABILITY ISSUES

X11 上で､ PRIMARY 選択は X 中央集中処理機能の系-基準の性質であり､ X11 の依頼者である異なる処理課程との通信を許容する｡　　　　　 On X11, the PRIMARY selection is a system-wide feature of the X server, allowing communication between different processes that are X11 clients.

Windows では PRIMARY 選択は､系ではなく Tk のみから提供され､そこでは､親の解釈実行機能とその子供の解釈実行機能の窓の間でのみ共有される｡異なる処理課程や異なる時分割薄片の窓の間では共有されない｡それぞれの親の解釈実行機能は分離した PRIMARY 選択を有し､それはその子供の解釈実行機能のものとのみ共有され､後者は安全な解釈実行機能ではない｡ On Windows, the PRIMARY selection is not provided by the system, but only by Tk, and so it is shared only between windows of a parent interpreter and its child interpreters. It is not shared between interpreters in different processes or different threads. Each parent interpreter has a separate PRIMARY selection that is shared only with its child interpreters which are not safe interpreters.

### SECURITY

安全な解釈実行機能は PRIMARY 選択からは読み取れない､理由は､その選択命令は隠蔽されている｡その理由で PRIMARY 選択は安全な解釈実行機能の Tk 部品に書込むことはできない｡　　　　 A safe interpreter cannot read from the PRIMARY selection because its selection command is hidden. For this reason the PRIMARY selection cannot be written to the Tk widgets of a safe interpreter.

Tk 部品はその指示項目 -exportselection を論理真値に設定させることができるが､安全な解釈実行機能内ではこの指示項目は効果が無い: 部品から PRIMARY 選択に書込むことはできない｡　　　　 A Tk widget can have its option -exportselection set to boolean true, but in a safe interpreter this option has no effect: writing from the widget to the PRIMARY selection is disabled.

これは安全保障の性質である｡安全な解釈実行機能は信頼できない符号命令を走らせられることもある､ その信頼できない符号命令が他の解釈実行機能に使われている PRIMARY 選択を読み書きできる場合は安全保障の脅威である｡　　　　 These are security features. A safe interpreter may run untrusted code, and it is a security risk if this untrusted code can read or write the PRIMARY selection used by other interpreters.

### 用例 EXAMPLES

X11 上では利用できる標準的選択の一つが SECONDARY 選択である｡どれを使うのも困難であるが､これは Tk を使用して如何にそれを読むかを示す:　　　　　　 On X11 platforms, one of the standard selections available is the SECONDARY selection. Hardly anything uses it, but here is how to read it using Tk:

    set selContents [selection get -selection SECONDARY]

多くの異なる型が選択の為に利用しうる; 特別の型 TARGETS は利用可能な型のリストの取得を使用者に許容する: 　　　　　　 Many different types of data may be available for a selection; the special type TARGETS allows you to get a list of available types:

    foreach type [selection get -type TARGETS] {
       puts "Selection PRIMARY supports type $type"
    }

選択を要求する為には､第１に選択の為のデータを供給する処理子を設立しなければならない｡次いで選択を要求する…　　　　　　 To claim the selection, you must first set up a handler to supply the data for the selection. Then you have to claim the selection...

    # 着信要求の準備ができた旨データ処理子を設定する.
    # Set up the data handler ready for incoming requests
    set foo "This is a string with some data in it... blah blah"
    selection handle -selection SECONDARY . getData
    proc getData {offset maxChars} {
       puts "Retrieving selection starting at $offset"
       return [string range $::foo $offset [expr {$offset+$maxChars-1}]]
    }

    # 今､選択そのものを把持する.
    # Now we grab the selection itself
    puts "Claiming selection"
    selection own -command lost -selection SECONDARY .
    proc lost {} {
       puts "Lost selection"
    }

### SEE ALSO

clipboard

### KEYWORDS

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