'\" '\" Copyright (c) 1990-1994 The Regents of the University of California. '\" Copyright (c) 1994-1996 Sun Microsystems, Inc. '\" '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" '\" RCS: @(#) $Id: selection.n,v 1.2 2003/11/24 05:10:00 bbbush Exp $ '\" '\" The definitions below are for supplemental macros used in Tcl/Tk '\" manual entries. '\" '\" .AP type name in/out ?indent? '\" Start paragraph describing an argument to a library procedure. '\" type is type of argument (int, etc.), in/out is either "in", "out", '\" or "in/out" to describe whether procedure reads or modifies arg, '\" and indent is equivalent to second arg of .IP (shouldn't ever be '\" needed; use .AS below instead) '\" '\" .AS ?type? ?name? '\" Give maximum sizes of arguments for setting tab stops. Type and '\" name are examples of largest possible arguments that will be passed '\" to .AP later. If args are omitted, default tab stops are used. '\" '\" .BS '\" Start box enclosure. From here until next .BE, everything will be '\" enclosed in one large box. '\" '\" .BE '\" End of box enclosure. '\" '\" .CS '\" Begin code excerpt. '\" '\" .CE '\" End code excerpt. '\" '\" .VS ?version? ?br? '\" Begin vertical sidebar, for use in marking newly-changed parts '\" of man pages. The first argument is ignored and used for recording '\" the version when the .VS was added, so that the sidebars can be '\" found and removed when they reach a certain age. If another argument '\" is present, then a line break is forced before starting the sidebar. '\" '\" .VE '\" End of vertical sidebar. '\" '\" .DS '\" Begin an indented unfilled display. '\" '\" .DE '\" End of indented unfilled display. '\" '\" .SO '\" Start of list of standard options for a Tk widget. The '\" options follow on successive lines, in four columns separated '\" by tabs. '\" '\" .SE '\" End of list of standard options for a Tk widget. '\" '\" .OP cmdName dbName dbClass '\" Start of description of a specific option. cmdName gives the '\" option's name as specified in the class command, dbName gives '\" the option's name in the option database, and dbClass gives '\" the option's class in the option database. '\" '\" .UL arg1 arg2 '\" Print arg1 underlined, then print arg2 normally. '\" '\" RCS: @(#) $Id: selection.n,v 1.2 2003/11/24 05:10:00 bbbush Exp $ '\" '\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. .if t .wh -1.3i ^B .nr ^l \n(.l .ad b '\" # Start an argument description .de AP .ie !"\\$4"" .TP \\$4 .el \{\ . ie !"\\$2"" .TP \\n()Cu . el .TP 15 .\} .ta \\n()Au \\n()Bu .ie !"\\$3"" \{\ \&\\$1 \\fI\\$2\\fP (\\$3) .\".b .\} .el \{\ .br .ie !"\\$2"" \{\ \&\\$1 \\fI\\$2\\fP .\} .el \{\ \&\\fI\\$1\\fP .\} .\} .. '\" # define tabbing values for .AP .de AS .nr )A 10n .if !"\\$1"" .nr )A \\w'\\$1'u+3n .nr )B \\n()Au+15n .\" .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n .nr )C \\n()Bu+\\w'(in/out)'u+2n .. .AS Tcl_Interp Tcl_CreateInterp in/out '\" # BS - start boxed text '\" # ^y = starting y location '\" # ^b = 1 .de BS .br .mk ^y .nr ^b 1u .if n .nf .if n .ti 0 .if n \l'\\n(.lu\(ul' .if n .fi .. '\" # BE - end boxed text (draw box now) .de BE .nf .ti 0 .mk ^t .ie n \l'\\n(^lu\(ul' .el \{\ .\" Draw four-sided box normally, but don't draw top of .\" box if the box started on an earlier page. .ie !\\n(^b-1 \{\ \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .el \}\ \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' .\} .\} .fi .br .nr ^b 0 .. '\" # VS - start vertical sidebar '\" # ^Y = starting y location '\" # ^v = 1 (for troff; for nroff this doesn't matter) .de VS .if !"\\$2"" .br .mk ^Y .ie n 'mc \s12\(br\s0 .el .nr ^v 1u .. '\" # VE - end of vertical sidebar .de VE .ie n 'mc .el \{\ .ev 2 .nf .ti 0 .mk ^t \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' .sp -1 .fi .ev .\} .nr ^v 0 .. '\" # Special macro to handle page bottom: finish off current '\" # box/sidebar if in box/sidebar mode, then invoked standard '\" # page bottom macro. .de ^B .ev 2 'ti 0 'nf .mk ^t .if \\n(^b \{\ .\" Draw three-sided box if this is the box's first page, .\" draw two sides but no top otherwise. .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c .\} .if \\n(^v \{\ .nr ^x \\n(^tu+1v-\\n(^Yu \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c .\} .bp 'fi .ev .if \\n(^b \{\ .mk ^y .nr ^b 2 .\} .if \\n(^v \{\ .mk ^Y .\} .. '\" # DS - begin display .de DS .RS .nf .sp .. '\" # DE - end display .de DE .fi .RE .sp .. '\" # SO - start of list of standard options .de SO .SH "STANDARD OPTIONS" .LP .nf .ta 5.5c 11c .ft B .. '\" # SE - end of list of standard options .de SE .fi .ft R .LP See the \\fBoptions\\fR manual entry for details on the standard options. .. '\" # OP - start of full description for a single option .de OP .LP .nf .ta 4c Command-Line Name: \\fB\\$1\\fR Database Name: \\fB\\$2\\fR Database Class: \\fB\\$3\\fR .fi .IP .. '\" # CS - begin code excerpt .de CS .RS .nf .ta .25i .5i .75i 1i .. '\" # CE - end code excerpt .de CE .fi .RE .. .de UL \\$1\l'|0\(ul'\\$2 .. .TH selection 3tk 8.1 Tk "Tk Built-In Commands" .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME selection \- 操縱 X 選擇 .SH "總覽 SYNOPSIS" \fBselection \fIoption\fR ?\fIarg arg ...\fR? .BE .SH "描述 DESCRIPTION" .PP 這個命令提供到 X 選擇機制的一個 Tcl 介面並實現了在 X 客戶間通訊協定手冊(ICCCM)中描述全部選擇功能。 .PP 給 \fBselection\fR 的第一個引數決定餘下的引數的格式和命令的行為。當前支援下列形式: .PP .TP \fBselection clear\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR? 如果 \fIselection\fR 存在於 \fIwindow \fR的顯示器上的某個地方,則清除它這樣就沒有任何視窗擁有這個選擇了。\fISelection\fR 指定應該清除的 X 選擇,並且應當是一個原子的名字如 PRIMARY 或 CLIPBOARD;詳情請參見 X 客戶間通訊協定手冊。\fISelection\fR 預設為 PRIMARY 而 \fIwindow\fR 預設為“.”。返回一個空串。 .TP \fBselection get\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR? ?\fB\-type\fR \fItype\fR? 從 \fIwindow \fR的顯示器取回 \fIselection\fR 的值並把它作為結果返回。\fISelection\fR 預設為 PRIMARY 而 \fIwindow\fR 預設為“.”。\fIType\fR 指定返回選擇用的形式(用 ICCCM 術語是想要的轉換的“目標”),並且應當是一個原子的名字如 STRING 或 FILE_NAME; 詳情請參見 X 客戶間通訊協定手冊。\fIType\fR 預設為 STRING。選擇擁有者可以在多種不同的表示格式中挑選返回選擇(的格式),比如 STRING、ATOM、INTEGER 等。(這個格式不同與選擇型別,如有混淆請參見 ICCCM)。如果以非字串格式返回選擇。比如 INTEGER 或 ATOM,\fBselection\fR 命令把它轉換字串格式,即一組用空格分隔的欄位: 把原子轉換成他們的文字名字,把其他任何東西都轉換成十六進位制整數。 .TP \fBselection handle\fR ?\fB\-selection\fR \fIselection\fR? ?\fB\-type\fR \fItype\fR? ?\fB\-format\fR \fIformat\fR? \fIwindow command\fR 為選擇請求建立一個處理器(handler),這樣當 \fIwindow\fR 擁有 \fIselection\fR 並且有人嘗試以用 \fItype\fR (比方說在 \fBselection get\fR 命令中指定了 \fItype\fR)給出的形式取回它的時候,則執行 \fIcommand\fR 。\fISelection\fR 預設為 PRIMARY,\fItype\fR 預設為STRING,而 \fIformat\fR 預設為 STRING。如果 \fIcommand\fR 是一個空串,則刪除針對 \fIwindow\fR、\fItype\fR 和 \fIselection\fR 的所有處理器。 .RS .PP 在要求 \fIselection\fR 的時候,\fIwindow\fR 是選擇的所有者,而 \fItype\fR 是要求的型別,把 \fIcommand\fR 作為一個 Tcl 指令碼來執行,並向它添加了兩個補充的數(帶有空格分隔符)。這兩個補充的數 .VS 是 \fIoffset\fR 和 \fImaxChars\fR: \fIoffset\fR 指定在選擇中的開始位置而 \fImaxChars\fR 給出要取回的字元的最大數目。這個命令應該返回一個值,它由選擇的最多 \fImaxChars\fR 字元組成,開始於位置 \fIoffset\fR。對於非常大的選擇(大於 \fImaxChars\fR),使用遞增 \fIoffset\fR 值的多次 \fIcommand\fR 呼叫來取回選擇。如果 \fIcommand\fR 返回其長度小於 \fImaxChars\fR 的一個字串,則假定返回值包含選擇的全部餘下部分;如果 \fIcommand\fR 的結果的長度等於 \fImaxChars\fR 則將再次呼叫 \fIcommand\fR ,知道最終返回小於 \fImaxChars\fR 的一個結果。\fImaxChars\fR 總是相對的大(成千個字元)。 .VE .PP 如果 \fIcommand\fR 返回一個錯誤,則丟棄取回的選擇,如同選擇根本不存在。 .PP \fIformat\fR 引數指定用來把選擇傳輸(transmit)到請求者的表示法(ICCCM 的表 2 的第二列),並且預設為 STRING。如果 \fIformat\fR 是 STRING,則把選擇傳輸為 8-bit ASCII 字元。如果 \fIformat\fR 是 ATOM,則把 \fIdata\fR 分割為用白空格分隔的欄位;把每個欄位轉換成它的原子值,傳輸 32-bit 原子值而不是原子的名字。對於任何其他的 \fIformat\fR,把 \fIdata\fR 分割為用白空格分隔的欄位;把每個欄位轉換成一個 32-bit 整數;向選擇的請求者傳輸一個整數的陣列。 .PP \fIformat\fR 引數只在與不使用 Tk 的請求者相相容時需要。如果使用 Tk 工具箱來取回 CLIPBOARD 選擇,則在請求端把這個值轉換回一個字串,所以 \fIformat\fR 是無關的(irrelevant)。 .RE .TP \fBselection own\fR ?\fB\-displayof\fR \fIwindow\fR? ?\fB\-selection\fR \fIselection\fR? .TP \fBselection own\fR ?\fB\-command\fR \fIcommand\fR? ?\fB\-selection\fR \fIselection\fR? \fIwindow\fR 第一種形式的 \fBselection own\fR 返回在這個應用中的一個視窗路徑名字的名字,這個視窗擁有在容納 \fIwindow \fR的顯示器上的 \fIselection\fR,如果在這個應用種沒有視窗擁有這個選擇就返回一個空串。\fISelection\fR defaults to PRIMARY and \fIwindow\fR defaults to ``.''. .PP \fBselection own\fR 的第二種形式導致 \fIwindow\fR 成為在 \fIwindow \fR的顯示器上的 \fIselection\fR 的新擁有者,它返回一個空串作為結果。通知現存的擁有者(如果有的話)它已經失去了這個選擇。如果指定了\fIcommand\fR,在其他一些視窗向 \fIwindow \fR索取(claim)這個選擇的所有權的時候,執行這個Tcl 指令碼。\fISelection\fR 預設為 PRIMARY。 .SH "關鍵字 KEYWORDS" clear, format, handler, ICCCM, own, selection, target, type .SH "[中文版維護人]" .B 寒蟬退士 .SH "[中文版最新更新]" .B 2002/05/27 .SH "《中國 Linux 論壇 man 手冊頁翻譯計劃》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本頁面中文版由中文 man 手冊頁計劃提供。 .br 中文 man 手冊頁計劃:\fBhttps://github.com/man-pages-zh/manpages-zh\fR