• 検索結果がありません。

す この 指 定 方 法 を 使 って 5 行 目 の 12 文 字 目 から 18 文 字 目 まで を 色 を 変 え かつボールド 体 に して 強 調 表 示 してみます ( 機 能 /オプション という 部 分 です) そのためには 5.12 から 5.18 ま でに タグ を 設 定 し

N/A
N/A
Protected

Academic year: 2021

シェア "す この 指 定 方 法 を 使 って 5 行 目 の 12 文 字 目 から 18 文 字 目 まで を 色 を 変 え かつボールド 体 に して 強 調 表 示 してみます ( 機 能 /オプション という 部 分 です) そのためには 5.12 から 5.18 ま でに タグ を 設 定 し"

Copied!
15
0
0

読み込み中.... (全文を見る)

全文

(1)

テキスト

テキスト

テキスト

テキスト

(http://homepage3.nifty.com/kaku-chan/tcl_tk/chapter_230.html より引用) • 例 • text、tk_textCopy、tk_textCut、tk_textPaste コマンド • text コマンド特有のオプション • 標準オプション • 文字位置の指定 • タグ • マーク • ウィジットの埋め込み • イメージの埋め込み • 仮想イベント • ウィジットのコマンド テキストは複数行にまたがる文字列の入力を受け付けます。 例 テキストウィジットには機能/オプションが数多く用意されています。 例えば、テキストの一部のみフォン トを変えたり、 コピー&ペーストの機能が用意されていたりします。 そのため、例を多く揃えてみます。 最初は簡単な例から (テキストウィジット中の文面は、この記事のソースです)。 実行すると次のようになります。 テキストウィジットですから、 テキストの挿入と表示ができるのは当り前ですが、 これが基本です。4 行 目でテキストウィジットを作って、6 行目以降で文字列を挿入しています。 文字列を挿入するには insert ウィジットコマンドを使えばよいことがわかります。また、入力テキスト全体を波カッコで囲んでいるので、 改行はそのまま反映されます。 次に、テキスト中の文字位置の指定ですが、 最も簡単な指定方法は「行番号.文字位置」です。 つまりドッ トの前に行番号(1から始まります)、 ドットの後ろに文字のカラム位置(0から始まります) を指定しま

1 : set FONT {{MS Pゴシック} 10 normal} 2 :

3 : wm geometry . 200x150 4 : text .t1 -font $FONT

5 : pack .t1 -fill both -expand 1

6 : .t1 insert end {テキストは複数行にまたがる文字列の入力を受け付けます。 7 : 8 : *例 9 : 10 : テキストウィジットには機能/オプションが数多く用意されています。 11 : 例えば、テキストの一部のみフォントを変えたり、 12 : コピー&ペーストの機能が用意されていたりします。 13 : そのため、例を多く揃えてみます。 14 : 15 : 最初は簡単な例から。 16 : (テキストウィジット中の文面は、この記事のソースです )。}

(2)

す。 この指定方法を使って、 「5 行目の 12 文字目から 18 文字目まで」 を色を変え、かつボールド体に して強調表示してみます (「機能/オプション」という部分です)。 そのためには、「5.12」から「5.18」ま でに「タグ」を設定し、 そのタグに対してフォントの指定等を行ないます (なお、指定位置は実は文字の 間にありますので、 スクリプト上は 5.11 ~ 5.19 になります。 また、水平方向のスクロールバーを付け ていないので、 テキストウィジットの幅で折り返されていることに注意してください)。 上記を実行すると次のようになります。 スクリプトの 18 行目で「tag1」という名前でタグを設定し、 19 行目で、そのタグに対してフォントと色 を指定しています。 また、日本語も問題なく扱えることがわかります。 今度はコピー&ペーストをしてみます。 コピー位置はスクリプト上でも指定できますが、 マウスドラッグ で指定して実行してみましょう。 Tcl/Tk には、 コピーを行なうコマンドとして「tk_textCopy pathName」、 ペーストを行なうコマンドとして「tk_textPaste pathName」 が用意されています(この他に、カットを行 なうものとして 「tk_textCut pathName」というコマンドもあります)。 一番最初の例に対して「数多く用 意」 の部分をマウスでドラッグしておきます。 コンソールウィンドウ上から

1 : set FONT {{MS Pゴシック} 10 normal} 2 :

3 : wm geometry . 200x150 4 : text .t1 -font $FONT

5 : pack .t1 -fill both -expand 1

6 : .t1 insert end {テキストは複数行にまたがる文字列の入力を受け付けます。 7 : 8 : *例 9 : 10 : テキストウィジットには/オプションが数多く用意されています。 11 : 例えば、テキストの一部のみフォントを変えたり、 12 : コピー&ペーストの機能が用意されていたりします。 13 : そのため、例を多く揃えてみます。 14 : 15 : 最初は簡単な例から。 16 : (テキストウィジット中の文面は、この記事のソースです )。} 17 :

18 : .t1 tag add tag1 5.11 5.19

(3)

とコマンドを打ち込むと、 次のようになります。

「*例」の後にコピーされたことがわかります。 3 行目の「.t1 mark set insert 3.end」は、 挿入位置を テキストの 3 行目の行末に設定することを示します。 次の例は、テキストウィジット中に別のウィジットを埋め込む例です。 上記を実行すると次のようになります。 テキスト中にボタンが配置されました。18 行目で作成したボタンを 19 行目で配置しています。 このよう tk_textCopy .t1 tk_textPaste .t1

.t1 mark set insert 3.end tk_textPaste .t1 *上記の例で、「tk_textPaste .t1」を2回実行しています。 2 行目の「tk_textPaste .t1」を実行しないと、 1 行目の 「tk_textCopy .t1」の操作の後もテキストウィジット上に セレクションが残っているようで、 最後の「tk_textPaste .t1」 を実行したとき、 コピー元の箇所が消えてしまいます (つまり、コピー&ペーストではなく、移動になってしまいます)。 そのため、2 行目のペーストで同じ場所に「移動」して、 コピーを保持したままセレクションを消し、 insert マーク、 つまり挿入位置を「*例」の後に移動してから改めてペーストしています。 なお、マウス操作でペースト箇所を移動する ときや、 テキストウィジットにデフォルトでバインドされている操作 (Windows では Ctrl-C でコピー、Ctrl-V でペー スト) をキーボードから行なう場合などは、 こんなことに気を付ける必要はありません。

1 : set FONT {{MS Pゴシック} 10 normal} 2 :

3 : wm geometry . 200x150 4 : text .t1 -font $FONT

5 : pack .t1 -fill both -expand 1

6 : .t1 insert end {テキストは複数行にまたがる文字列の入力を受け付けます。 7 : 8 : *例 9 : 10 : テキストウィジットには/オプションが数多く用意されています。 11 : 例えば、テキストの一部のみフォントを変えたり、 12 : コピー&ペーストの機能が用意されていたりします。 13 : そのため、例を多く揃えてみます。 14 : 15 : 最初は簡単な例から。 16 : (テキストウィジット中の文面は、この記事のソースです )。} 17 :

18 : button .b1 -text "機能" -font $FONT -command exit 19 : .t1 window create 5.11 -window .b1

(4)

に 「pathName windowwindowwindowwindow createcreatecreate index -window windowPath」 とするとテキスト中に windowPath で示されcreate るウィジットを埋め込むことができます。

ほとんど同じようにしてイメージも埋め込むことができます (以下は、ICONS のアイコンを利用しました)。

上記を実行すると次のようになります。

最後の例は undo(元に戻す操作)と redo(やり直す操作)です。この機能を使うためには、オプション -undo を true に設定しなければなりません。

1 : set FONT {{MS Pゴシック} 10 normal} 2 :

3 : wm geometry . 200x150

4 : text .t1 -font $FONT -undo 1; # undo オプションを有効にする 5 : pack .t1 -fill both -expand 1

6 : .t1 insert end {テキストは複数行にまたがる文字列の入力を受け付けます。 7 : 8 : *例 9 : 10 : テキストウィジットには機能/オプションが数多く用意されています。 11 : 例えば、テキストの一部のみフォントを変えたり、 12 : コピー&ペーストの機能が用意されていたりします。 13 : そのため、例を多く揃えてみます。 14 : 15 : 最初は簡単な例から。 16 : (テキストウィジット中の文面は、この記事のソースです )。} 1 : set FONT {{MS Pゴシック} 10 normal}

2 :

3 : wm geometry . 200x150 4 : text .t1 -font $FONT

5 : pack .t1 -fill both -expand 1

6 : .t1 insert end {テキストは複数行にまたがる文字列の入力を受け付けます。 7 : 8 : *例 9 : 10 : テキストウィジットには/オプションが数多く用意されています。 11 : 例えば、テキストの一部のみフォントを変えたり、 12 : コピー&ペーストの機能が用意されていたりします。 13 : そのため、例を多く揃えてみます。 14 : 15 : 最初は簡単な例から。 16 : (テキストウィジット中の文面は、この記事のソースです )。} 17 :

18 : image create photo appsheet16 -data {

19 : R0lGODlhEAAQAIIAAPwCBAQCBAT+/Pz+/KSipPz+BAAAAAAAACH5BAEAAAAA 20 : LAAAAAAQABAAAANFCBDc7iqIKUW98WkWpx1DAIphR41ouWya+YVpoBAaCKtM 21 : oRfsyue8WGC3YxBii5+RtiEWmASFdDVs6GRTKfCa7UK6AH8CACH+aENyZWF0 22 : ZWQgYnkgQk1QVG9HSUYgUHJvIHZlcnNpb24gMi41DQqpIERldmVsQ29yIDE5 23 : OTcsMTk5OC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4NCmh0dHA6Ly93d3cuZGV2 24 : ZWxjb3IuY29tADs= 25 : } 26 :

(5)

を実行し(4 行目で -undo オプションを true にしています)、 テキストウィジット上でキーボードから適 当に編集します。 次のようになったとします (「ここに適当に文字列を追加してみました。」という部分で す)。 ここで、コンソールウィンドウから次のウィジットコマンドを入力します。 すると、次のようになります。 undo されているのがわかりますね (「文字列を追加してみました。」の部分が無くなっています)。 さらに、 とすると、undo された分を再実行します。 ウィジットコマンドだけで簡単に実行できます。 以上で例は終わりですが、 テキストウィジットがいろいろな機能を持っていることがわかったと思います。

text

text

text

text、

、tk_textCopy

tk_textCopy

tk_textCopy、

tk_textCopy

、tk_textCut

tk_textCut、

tk_textCut

tk_textCut

、tk_textPaste

tk_textPaste

tk_textPaste

tk_textPaste コマンド

コマンド

コマンド

コマンド

ここで text コマンドの形式を示します。

コマンド

書式 texttexttexttextpathName?options? 説明 第1引数にはテキストウィジットとして使われるパス名を指定する 。options の部分にはいくつかの ウィジット標準オプションと、text コマンド特有のオプションを指定できる。どのようなオプショ ンがあるかについては以下で解説する。 つまり、text に続けてドット区切りのウィジット名、オプション、 というように記述します。 この他、コピー、カット、ペースト専用のコマンドがあります。 コマンド

書式 tk_textCopytk_textCopytk_textCopytk_textCopy pathName

説明 第1引数にはテキストウィジットパス名を指定する。現在選択されている部分がクリップボードに コピーされる。

.t1 edit undo

(6)

コマンド

書式 tk_textCuttk_textCuttk_textCuttk_textCut pathName

説明 第1引数にはテキストウィジットパス名を指定する。現在選択されている部分がクリップボードに コピーされ、かつテキストウィジット上から削除される。

コマンド

書式 tk_textPastetk_textPastetk_textPastetk_textPaste pathName

説明 第1引数にはテキストウィジットパス名を指定する。現在のクリップボードの内容を現在の挿入位 置にペースト(貼り付け)する。

text

text

text

text コマンド特有のオプション

コマンド特有のオプション

コマンド特有のオプション

コマンド特有のオプション

text text text text コマンド特有のオプションには以下のものがあります。 -autoseparators value 値としてブーリアン値を指定します。 undo を実行するとき、 「どの単位で区切るか」という問題があ りますが (上記の例では、1行分まとめて undo されました)、 このオプションが true だと、区切り を自動的に挿入します (これがデフォルトです)。 undo の単位を自分で設定したいときは、false に します。 この場合は、後述の editeditedit separatoredit separatorseparatorseparator ウィジットコマンドで設定することになります。 -height value 高さを文字数で指定します。 -maxundo value undo の最大回数を設定します。 ゼロまたは負の数を設定すると、 無限の undo を実現することになり ます(これがデフォルトです)。 -spacing1 value 行の 前前前 に追加で与える行間距離をピクセル数で指定します。 行が自動的に折り返されている部分には前 適用されません (つまり、 本当に改行コードがある部分の表示上の距離を設定することになります)。 デフォルトは 0 です。 -spacing2 value オプション -spacing1 とは逆に、 「自動的に折り返されている部分の行間」を指定します。 デフォル トは 0 です。 -spacing3 value 行の 後後後 に追加で与える行間距離をピクセル数で指定します。 行が自動的に折り返されている部分には後 適用されません。 デフォルトは 0 です。 -state value normal normal normal

normal または disableddisableddisableddisabled を指定します。 disableddisableddisabled を指定すると編集できなくなります (カーソルもdisabled 表示されなくなります)。 デフォルトは normalnormalnormal です。normal

-tabs list

タブの位置をリスト形式で指定します。 例えば -tabs {5 10 15 20} とすると、 5ピクセル、10ピクセ ル、15ピクセル、... の位置にタブストップを設定します (これ以降は、最後の間隔が繰り返されます)。 単位を指定しないとピクセル数となります。 Tcl/Tk は単位指定方式として、「c i m p」の4種を用意 していますが、 -tabs {5c 10c 15c 20c} だと 5cm、10cm、... -tabs {5i 10i 15i 20i} だと 5インチ、 10インチ、... -tabs {5m 10m 15m 20m} だと 5mm、10mm、... -tabs {5p 10p 15p 20p} だと 5ポイン ト、10ポイント、 (ポイントは 1/72 インチ)... になってしまうので、文字数での指定ができません。 font コマンドでフォント情報を取得してやればできそうな気もするのですが...、 試していません。 本 オプションを指定しないか、または空文字列を指定すると、 デフォルトの設定(8 文字ごと)になりま す。 -undo value 値としてブーリアン値を指定します。 undo 機能を有効にするなら真にします。 デフォルトは偽です。 -width value 幅を文字数で指定します。

(7)

-wrap value 1行がウィジットの幅に収まらないときの表示方法を指定します。 指定できる値は none、char、word の 3種です。 none は収まらなくても改行しないことを示し、 char は文字単位で折り返すことを示し、 word は単語単位で折り返すことを示します。 デフォルトは char です。

標準オプション

標準オプション

標準オプション

標準オプション

text コマンドに対して使える標準オプションには以下のものがあります。「ウィジット標準オプション」に て解説してありますので、そちらを参照してください。 • -background または -bg • -borderwidth または -bd • -cursor • -exportselection • -font • -foreground または -fg • -highlightbackground • -highlightcolor • -highlightthickness • -insertbackground • -insertborderwidth • -insertofftime • -insertontime • -insertwidth • -padx • -pady • -relief • -selectbackground • -selectborderwidth • -selectforeground • -setgrid • -takefocus • -xscrollcommand • -yscrollcommand

文字位置の指定

文字位置の指定

文字位置の指定

文字位置の指定

例題で「行番号.文字位置」という指定方法を示しましたが、 実際には多様な方法が用意されています。 一 般的には という形式になり、base の部分が必須で、 modifier がオプションでいくつ指定してもよい、 という形に なります。 base の部分は次の表記を受け付けます。 line.char 例でも使用した通り、行番号と文字位置で指定する方法です。 行は 1 から始まり、文字位置は 0 から 始まります。 文字位置として、endendend という表現も使え、 その場合は行末という意味になります。end @

@ @ @ x,y

x,y 座標(ピクセル表現)の位置を示します。

(8)

end end end end テキストの末尾(最後の改行の次)を示します。 mark mark という名前で名前付けされたマーク位置を示します。 マークについては後述します。 tag . firstfirstfirstfirst

tag でタグ付けされた部分の最初の文字を示します。 tag . lastlastlastlast

tag でタグ付けされた部分の最後の文字(の次)を示します。 pathName 埋め込まれたウィジットの位置を指定します。 imageName 埋め込まれたイメージの位置を指定します。 次に、modifier の部分は次の表記を受け付けます。 + count charscharscharschars

base よりも count 文字分後を示します。 - count charscharscharschars

base よりも count 文字分前を示します。 + count lineslineslineslines

base よりも count 行分後を示します。 - count lineslineslineslines

base よりも count 行分前を示します。 linestart linestart linestart linestart base の行頭を示します。 lineend lineend lineend lineend base の行末を示します。 wordstart wordstart wordstart wordstart base の位置を含む単語の先頭を示します。 wordend wordend wordend wordend base の位置を含む単語の最後(の次)を示します。 例えば、 とすれば、第1行の3文字目を基準にして、 そこから4行下のさらに3文字後にカーソルを移動することを 示します。

タグ

タグ

タグ

タグ

テキスト中のある文字(あるいは文字範囲)に対して、 「タグ」という目印を付けることができます。 冒 頭の例では、タグに対してフォントや色を設定する例を示しました。 これも含めて、タグには次の3つの役 割を持たせることができます。 • フォントや色など、表示形式を制御する。 • イベントを関連付ける。例えばある範囲をクリックすると何かが起こるようにする。 • セレクション(コピー/ペーストなどで利用する選択のこと)の表現用。 タグは結構柔軟にできていて、 テキスト内の複数の箇所に1つのタグを付けたり、 テキスト内の同じ箇所 に複数のタグを付けたりすることもできます。 そのような場合、タグが重複することがあるので、 どの設 定を利用するかを判断するために、 タグには優先順位があります。 デフォルトでは「後から作ったタグの 方が優先度が高い」 というルールが働きます。 このとき、 単にタグが指定する設定が優先度の低い方を完

(9)

全に覆い隠してしまうのではなく、 例えば

という記述があったときには、tag1 にてゴシック体と赤が設定されていて、 まったく同じ箇所に後から青 を設定しています。 このときは、結果的に「ゴシック体で青」になります。 つまり後から設定したタグで は書体を設定していないために、 この設定については優先度が1つ下のものを利用してくれます。 この優 先順位を変更するコマンドも用意されています。

以下はタグに対して設定できるオプションです。 これらは「pathName tagtagtag configuretag configureconfigureconfigure tagName」 ウィジッ トコマンドで設定できます。 -background color 背景色を設定します。 -bgstipple bitmap ビットマップイメージのパターンで背景を埋めます。 通常は背景色が白なので、 背景色を別の色にし て本オプションで例えば gray75 などを指定すると、 網かけ表示のようになります。 -borderwidth pixels 境界の幅を指定します。 -relief オプションで 3-D 効果を指定していないと意味がありません。 -elide boolean 真に設定すると、表示から消えます。 データ上は残っていますので、偽にすれば再び画面に表示されま す。 -fgstipple bitmap ビットマップイメージのパターンを前景に使います。 -bgstipple と異なり、見栄えはあまり良くあり ません。 -font fontName フォントを設定します。 -foreground color 前景色を設定します。 -justify value left left left

left、 rightrightrightright、 centercentercentercenter のいずれかを指定します。 それぞれ左寄せ、右寄せ、センタリング、を示しま す。 -lmargin1 pixels 行頭の文字にタグが設定されているとき、 そのタグに対して本オプションを指定すると、 その行を指 定したピクセル数だけインデントします。 -lmargin2 pixels 行頭でなくても、 「表示上画面の左端にある文字」に対してタグが設定されているとき、 そのタグに 対して本オプションを指定すると、 その行を指定したピクセル数だけインデントします。 -offset pixels ベースラインから上下にどの程度ずらすかを指定します。 負の数を指定した場合は下にずれます。 -overstrike boolean 真のときは、取り消し線を表示します。 -relief value 3-D 効果を指定します。 標準オプションと同等のものが使えます。 -rmargin pixels 表示上の行左端の文字にタグが設定されているとき、 そのタグに対して本オプションを指定すると、 そ の行の右端を指定したピクセル数だけインデントします。

.t1 tag add tag1 5.11 5.19 6.2 6.5

.t1 tag configure tag1 -font {{MS Pゴシック} 10 bold} -foreground #CC0000 .t1 tag add tag2 5.11 5.19 6.2 6.5

(10)

-spacing1 pixels タグのある行の 前前前 に追加で与える行間距離をピクセル数で指定します。 行が自動的に折り返されてい前 る部分には適用されません -spacing2 pixels オプション -spacing1 とは逆に、 「自動的に折り返されている部分の行間」を指定します。 -spacing3 pixels タグのある行の 後後後 に追加で与える行間距離をピクセル数で指定します。 行が自動的に折り返されてい後 る部分には適用されません。 -tabs list 表示上の行左端の文字にタグが設定されているとき、 そのタグに対して本オプションを指定すると、 そ の行のタブ位置を指定することになります。 テキストウィジットに対するタブ指定と同様の形式で指定 します。 -underline boolean 下線を表示するかどうかを指定します。 真のときは表示します。 -wrap value ウィジットの幅に収まらないときの自動改行表示方法を指定します。 テキストウィジットに対する指定 と同様に、 指定できる値は none、char、word の3種です。

マーク

マーク

マーク

マーク

マークはタグと異なり、「ある一箇所」に名前を付けるものです。 また、文字に対して付けるのではなく、 文 字と文字の間に設定します。 よって、マークは「左と右のどちらの文字にくっついているか」 を示す属性 を持っています。 この属性の値は leftleftleft か rightleft rightrightright かのいずれかですが、 デフォルトは rightrightright ですので、right マーク位置に文字が挿入されると、 挿入後のマークの位置は挿入した文字の右側になります。 マークを作 ったり、属性を制御するにはテキストのウィジットコマンド 「pathName markmarkmark」を使います(後述します)mark 。 マークは文字間にあるため、 前後の文字が削除されたとしても残ります。 また、タグとは別の名前空間で 管理されているため、 タグと同じ名前を使うこともできますが、 混乱しないように注意しましょう。 テキストウィジットには備え付けのマークが2つあって、 それは現在のカーソル位置を示す「insertinsertinsertinsert」 と いう名前のマークと、 現在のマウスの位置を反映している「currentcurrentcurrent」 という名前のマークです。 これらcurrent のデフォルトで用意されているマークは ウィジットコマンドを使っても削除できません。 カーソル位置が マークという仕組みで表現されているので、 マークとはどんなものなのかを想像しやすいと思います (デ フォルトの位置属性が rightrightrightright であることも理解しやすいでしょう。 カーソル位置に文字を挿入すると、カ ーソルは「右」に移動しますね)。

ウィジットの埋め込み

ウィジットの埋め込み

ウィジットの埋め込み

ウィジットの埋め込み

冒頭の例で示した通り、 テキストウィジット中に別のウィジットを埋め込むことが可能です。 埋め込みウ ィジットはテキスト中では1文字扱いです。 このウィジットを参照するには、 ウィジットのパスを用いる 方法と、 テキスト中の位置で表現する方法とがあります。 埋め込みウィジットを含むテキスト文字列が削 除されたときは、 その埋め込みウィジットは破棄されます。

埋め込みウィジットはテキストのウィジットコマンド 「pathName windowwindowwindowwindow createcreatecreatecreate」を使います(後述しま す)。 また、属性を 「pathName windowwindowwindow configurewindow configureconfigure」 ウィジットコマンドで制御できます。 ここで使えるconfigure 属性を示しておきます。

-align where

埋め込みウィジットの高さとテキストの1行分の高さが同じでないとき、 どのように合わせるかを指定 します。 where に設定できる値は toptoptoptop、 centercentercenter、 bottomcenter bottombottombottom、 baselinebaselinebaselinebaseline のいずれかです。デフォルトは center

center center

center です。 -padx pixels

(11)

埋め込みウィジットの横方向のパディングを指定します。 -pady pixels

埋め込みウィジットの縦方向のパディングを指定します。 -stretch boolean

埋め込みウィジットの高さが1行の高さよりも小さい場合、 埋め込みウィジットを高さ方向に伸ばすか どうかを指定します。 true だと伸ばし、false だと伸ばしません。 デフォルトは false です。 -window pathName 埋め込みウィジットのパスを指定します。

イメージの埋め込み

イメージの埋め込み

イメージの埋め込み

イメージの埋め込み

ウィジットの埋め込みとほとんど同様です。 イメージを作った後、 テキストのウィジットコマンド

「pathName imageimageimageimage createcreatecreate index -image イメージ名」 を使えばイメージを埋め込むことができます。create 同じイメージを複数箇所に埋め込むことができますので、 それぞれの埋め込みイメージには、 イメージ名 とは別のユニークな名前、「埋め込みイメージ名」 が付けられます。 通常は自動的に名前が付けられ、 上 記「pathName imageimageimage createimage createcreatecreate index -image イメージ名」 の返り値で返されます。 1つのイメージに対し て埋め込みイメージが1つなら、 デフォルトではイメージ名と同じ名前ですが、 同じイメージを複数箇所 に埋め込むと、 「イメージ名」、「イメージ名#1」、「イメージ名#2」、... のように「#nn」が後に付けられま す。 自分で埋め込みイメージ名を付けたい場合は -name オプションを使います。

以下はウィジットコマンド「pathName imageimageimageimage configureconfigureconfigure」 などで使えるオプションです。configure -align where

埋め込みイメージの高さとテキストの1行分の高さが同じでないとき、 どのように合わせるかを指定し ます。 where に設定できる値は toptoptoptop、 centercentercenter、 bottomcenter bottombottombottom、 baselinebaselinebaselinebaseline のいずれかです。デフォルトは center center center center です。 -image image 埋め込みイメージの名前を指定します。 -name imageName 埋め込みイメージの「埋め込みイメージ名」を指定します。 -padx pixels 埋め込みイメージの横方向のパディングを指定します。 -pady pixels 埋め込みイメージの縦方向のパディングを指定します。

仮想イベント

仮想イベント

仮想イベント

仮想イベント

テキストウィジットにはデフォルトで 「仮想イベント」が2つ定義されています (イベント関係の詳細に ついては イベント処理 を参照してください)。1つは <<Selection>> で、もう1つは <<Modified>> です。 <<Selection>> はセレクションが作られたり変化したりすると発生します。 <<Modified>> はテキストウィ ジットの内容に変化があると発生します。 したがって、「bind .t1 <<Selection>> {スクリプト}」 のよう にすると特定の動作を起動することができます。<<Selection>> はテキストの -exportselection オプショ ンが true のとき、 <<Modified>> は「pathName editediteditedit modifiedmodifiedmodified」 ウィジットコマンドでmodified true が設定さ れているときに有効です (デフォルトではどちらも true です)。 ※と、リファレンスマニュアルにあるのですが、 <<Selection>> の方はともかく、 <<Modified>> の方はちょっと変な反 応を示します。 Windows 版だけの問題かな?...

ウィジットのコマンド

ウィジットのコマンド

ウィジットのコマンド

ウィジットのコマンド

(12)

使えます。 この場合のコマンドは次の形式になります。

コ マ ン ド

書式 pathName option?arg arg ...?

説明 テキストウィジットのウィジットコマンド。オプションについては以下で解説する。

pathName bboxbboxbboxbbox index

該当する文字のウィンドウ上でのピクセル座標をリストで返します。 最初の2つの数値は文字の左上の 座標です。 最後の2つの数値は幅と高さを示します。

pathName cgetcgetcgetcget option

option で示すオプションの値を返します。 例えば「.t1 cget -bg」とすると、 「SystemWindow」とい う値が返されたりします。

pathName comparecomparecomparecompare index1 op index2

2つのインデックス位置が指す場所の位置関係を判定します。 op として使えるのは < , <= , == , >= , > , != です。 例えば == なら、2つのインデックスが同じ文字を指していれば 1 を返し、 違えば 0 を 返します。 また、op が < なら、index1 の方が index2 よりも前であるときに 1 を返します。 pathName configureconfigureconfigureconfigure ?option? ?value option value ...?

option と value を指定した場合は、 指定したオプションの値を value に設定します。 option を指 定して value を省略した場合は、 当該オプションの値を返します。 オプションもすべて省略した場合 は、 すべての有効なオプションと、 それに対して設定されている値のリストを返します。

pathName deletedeletedeletedelete index1 ?index2 ... ?

index1と index2 の間の文字を削除します。 インデックスが1つしか指定されなければ1文字だけ削除 します。 削除範囲は開始位置と終了位置のペアとして複数同時に指定できます。 同じ開始位置で、終 了位置が異なるペアが指定されたときは、 長い方が採用されます。 オーバーラップする2つの範囲が 指定されたときは、 範囲をマージして削除します。

pathName dlineinfodlineinfodlineinfodlineinfo index

index が指す文字を含む行の情報をリスト形式で返します。 リストの要素は5個あって、 最初の2つは 行の左上の座標です。 3番目と4番目の値はその行の幅と高さを表します。 5番目の要素はベースラ インの、その行の上部から測った位置を表します。 いずれも単位はピクセルです。 行の折り返しモー ド(オプション -wrap)が none のときは、 もしウィンドウの右端の外側まで行が存在するときは、 そ の部分も含めて計算します。 行の折り返しモード(オプション -wrap)が none 以外のときは、 自動 的に折り返されている部分(表示上2行目以降)は含まれません。 指定された行が表示されていないと き(画面範囲外のとき) は空文字列が返されます。

pathName dumpdumpdumpdump ?switches? index1 ?index2?

インデックスで指定した範囲の内容をダンプした結果を返します。 テキスト文字列だけでなく、 設定 されているタグや埋め込みウィジットなどの情報も返されるのが特徴です。 index2 を省略したときは、 index1 が示す1文字分の情報だけが返されます。 ダンプの形式は「key1 value1 index1 key2 value2 index2 ...」です。 key は 「texttext、 marktexttext markmarkmark、 tagontagontagon、 tagofftagon tagoff、 imagetagofftagoff imageimageimage、 windowwindowwindow」 のいずれかです。window value は key のそれぞれに対して、 「テキスト内容、マーク名、タグ名、タグ名、イメージ名、ウィジット 名」 です。 switches に指定できるのは -all、 -command command、 -image、 -mark、 -tag、 -text、 -window です。 デフォルトは -all で、すべての情報を返します。 -command は引数を3つ持つコマン ド(プロシージャ)を指定して、 「key value index」の3つの組をそれぞれ渡します。 -image は埋 め込みイメージの情報のみダンプします。 -mark はマークの情報のみダンプします。 -tag はタグの情 報のみダンプします。 -text はテキストの情報のみダンプしますが、 テキスト情報は改行毎に別の要 素となり、 また、改行自体は要素内に含まれるので注意してください。 -window は埋め込みウィジッ トの情報のみダンプします。

pathName editediteditedit modifiedmodifiedmodifiedmodified ?boolean?

boolean が true のときは、 編集が行なわれる度に変更フラグをセットします。 これは仮想イベント <<Modified>> を発生させます。 boolean を省略したときは、現在の設定を返します。

pathName editediteditedit undoundoundoundo

元に戻す操作(アンドゥ)を行ないます。 pathName editediteditedit redoredoredoredo

(13)

やり直す操作(リドゥ)を行ないます。アンドゥ操作を取り消します。 pathName editediteditedit resetresetresetreset

アンドゥ/リドゥの履歴を消します。 pathName editediteditedit separatorseparatorseparatorseparator

テキストウィジットのオプション -autoseparators が false のときに使用し、 アンドゥを行なう境界 を設定します。

pathName getgetgetget index1 ?index2 ...?

インデックスで示される範囲の文字列を返します。 index2 を省略すると、index1 で示される1文字だ けを返します。 インデックスのペアはいくつでも指定できます。

pathName imageimageimageimage cgetcgetcget index optioncget

インデックス位置の埋め込みイメージのオプションの値を返します。 pathName imageimageimageimage configureconfigureconfigure index ?option value ...?configure

インデックス位置の埋め込みイメージのオプションの値を返すか、 または設定します。 option と value を指定した場合は、 指定したオプションの値を value に設定します。 option を指定して value を省略した場合は、 当該オプションの値を返します。 オプションもすべて省略した場合は、 すべての 有効なオプションと、 それに対して設定されている値のリストを返します。

pathName imageimageimageimage createcreatecreate index ?option value ...?create

インデックスの位置に埋め込みイメージを埋め込みます。 pathName imageimageimageimage namesnamesnamesnames

テキストウィジットに埋め込まれている埋め込みイメージ名のリストを返します。 pathName indexindexindexindex index

index が示すインデックスを「line.char」の形式に変換して返します。 pathName insertinsertinsertinsert index chars ?tagList chars tagList ...?

インデックスが示す位置に文字列を挿入します。 tagList を指定すれば、その文字列に対してタグ名を 指定することができます。 ここはタグ名の「リスト」ですから、 複数のタグ名を同時に指定すること ができますが、 その場合は波カッコで囲みます。 挿入文字列とタグ名リストのペアはいくつでも指定 することができます。

pathName markmarkmarkmark gravitygravitygravitygravity markName ?direction?

マークをどちらに寄せるかを指定します。 direction に指定できるのは leftleftleft か rightleft rightrightright のいずれかで す。 direction を省略した場合は、現在の設定を返します。

pathName markmarkmarkmark namesnamesnamesnames

テキストウィジットに対して設定されているマークのリストを返します。 pathName markmarkmarkmark nextnextnextnext index

インデックスが指す位置の次のマーク名を返します。 マークが無ければ空文字列が返されます。 pathName markmarkmarkmark previouspreviouspreviousprevious index

インデックスが指す位置の前のマーク名を返します。 マークが無ければ空文字列が返されます。 pathName markmarkmarkmark setsetsetset markName index

インデックスの位置にマークを設定します。 まだ存在しないマーク名を使った場合は、 新しくマーク が作られます。 すでに存在するマーク名を使った場合は、 そのマークが移動します。

pathName markmarkmarkmark unsetunsetunsetunset markName ?markName markName ...? 指定したマークを取り除きます。

pathName searchsearchsearchsearch ?switches? pattern index ?stopIndex?

テキスト内をサーチします。 pattern を index 位置から stopIndex 位置までの間で探します。 stopIndex を省略したときは、 テキスト末までではなく、サイクリックに探します (例えば、テキス ト末に達したら、先頭に戻ってサーチ。 1周するまでサーチを実行します)。 switches には次のもの が指定できます。 「-forwards」は前方探索です。これがデフォルトです。 「-backwards」は後方探索 です。 「-exact」pattern に正確に一致するものを検索対象とします。 これがデフォルトです。 「-regexp」pattern を正規表現とみなします。 「-nocase」大文字/小文字を区別しません。 「-count varName」変数名を指定しますが、 マッチした場合、 マッチ部分の先頭のインデックスと末尾のインデ ックスの差を変数に代入します。 埋め込みイメージや埋め込みウィジットが無ければ、 マッチした文 字列の長さということになります。 「-elide」隠されている文字もサーチ対象にします。 デフォルト

(14)

では表示されている文字だけがサーチ対象になります。 「--」switches に続く pattern がハイフンで 始まる場合、 混乱を避けるために指定します。

pathName seeseeseesee index

インデックスが示す位置が見えるように内容をスクロールします。 指定した位置がすでに見えている場 合は何も起こりません。 指定した位置が少しだけウィンドウからはずれている場合は、 その部分が見 える位置まで最小のスクロールを行ないます。 大幅にウィンドウからはずれている場合は、 指定した 位置がウィンドウの中央にくるようにスクロールします。

pathName tagtagtagtag addaddaddadd tagName index1 ?index2 index1 index2 ...?

tagName で 示 さ れ る タ グ を index1 と index2 の 範 囲 に 関 連 付 け ま す 。 index2 を 省 略 し た 場 合 は index1 が示す1文字に対してタグが付けられます。 インデックスのペアはいくつでも指定できます。 pathName tagtagtagtag bindbindbindbind tagName ?sequence? ?script?

指定したタグに対してイベント処理を関連付けます。 bind コマンド のタグ版です。 pathName tagtagtagtag cgetcgetcgetcget tagName option

指定したタグのオプションの値を返します。 pathName tagtagtagtag configureconfigureconfigureconfigure tagName ?option value ...?

指定したタグのオプションの値を返すか、 または設定します。option と value を指定した場合は、 指 定したオプションの値を value に設定します。 option を指定して value を省略した場合は、 当該オ プションの値を返します。 オプションもすべて省略した場合は、 すべての有効なオプションと、 それ に対して設定されている値のリストを返します。

pathName tagtagtagtag deletedeletedeletedelete tagName ?tagName ...? 指定したタグを削除します。

pathName tagtagtagtag lowerlowerlowerlower tagName ?belowThis?

tagName で指定したタグの優先順位を belowThis の下にします。 belowThis を省略したときは、優先順 位を最も下にします。

pathName tagtagtagtag namesnamesnamesnames ?index?

インデックス位置に関連付けられているタグ名のリストを返します。 インデックスを省略した場合は、 テキストウィジット内のすべてのタグ名のリストを返します。 リストの並び順は優先順位の低いものか ら順にソートされて返されます。

pathName tagtagtagtag nextrangenextrangenextrangenextrange tagName index1 ?index2?

index1と index2 の間で、tagName がタグ付けされている範囲を前方に探して返します。 index2 を省 略したときは、テキスト末とみなされます。 同じタグ名で複数箇所に関連付けることができるので、 関 連付けた場所を次々と探したい場合に使えます。

pathName tagtagtagtag prevrangeprevrangeprevrangeprevrange tagName index1 ?index2?

index1と index2 の間で、tagName がタグ付けされている範囲を後方に探して返します。 index2 の方 が index1 よりも前に位置します。 index2 を省略したときは、テキストの先頭とみなされます。 pathName tagtagtagtag raiseraiseraiseraise tagName ?aboveThis?

tagName で指定したタグの優先順位を aboveThis の上にします。 aboveThis を省略したときは、優先順 位を最も上にします。

pathName tagtagtagtag rangesrangesrangesranges tagName

指定したタグが関連付けられている範囲のリストを返します。 pathName tagtagtagtag removeremoveremoveremove tagName index1 ?index2 index1 index2 ...?

指定したタグを取り除きます。 取り除く範囲を index1 と index2 のペアで指定します。 このペアは いくつでも指定できます。 index2 を省略した場合は、 index1 で指定した1文字の分だけを取り除き ます。

pathName windowwindowwindowwindow cgetcgetcgetcget index option

インデックス位置の埋め込みウィジットのオプションの値を返します。 pathName windowwindowwindowwindow configureconfigureconfigureconfigure index ?option value ...?

インデックス位置の埋め込みウィジットのオプションの値を返すか、 または設定します。 option と value を指定した場合は、 指定したオプションの値を value に設定します。 option を指定して value を省略した場合は、 当該オプションの値を返します。 オプションもすべて省略した場合は、 すべての 有効なオプションと、 それに対して設定されている値のリストを返します。

(15)

pathName windowwindowwindowwindow createcreatecreatecreate index ?option value ...?

インデックスの位置に埋め込みウィジットを埋め込みます。 pathName windowwindowwindowwindow namesnamesnamesnames

テキストウィジットに埋め込まれている埋め込みウィジット名のリストを返します。 pathName xviewxviewxviewxview

2つの実数(0 から 1 の範囲)からなるリストを返します。 これはテキストウィジット内にテキスト のどの部分が見えているかを示します。 最初の数は、見えている部分の先頭が、 行頭からどのくらい の割合の位置かを示します。 2つ目の数は、見えている部分の末尾が、 行頭からどのくらいの割合の 位置かを示します。 例えば、「0.1 0.7」という値が返ってきた場合、 見えている部分の先頭が、テキ ストの行頭から 0.1、 つまり 10% の位置であることを示しています。 また、見えている部分の末尾が、 テキストの行頭から 0.7、 つまり 70% の位置であることを示しています。 したがってこの場合は、 テ キストの左端の 10% が画面のウィジットの左外側に隠れており、 テキストの右端の 30% が画面のウィ ジットの右外側に隠れていることになります。

pathName xviewxviewxviewxview movetomovetomoveto fractionmoveto

fraction の部分で指定する値は 0 から 1 の間の実数です。 テキストの行頭からの位置が、 指定した 割合の位置であるような文字をウィジットの左端に来るようにします。 つまり、ウィジットの左外側に 隠れる文字列の割合を指定した割合にします。

pathName xviewxviewxviewxview scrollscrollscroll number whatscroll

ウィジット内の文字列を横方向にスクロールします。 what の値は unitsunitsunitsunits または pagespagespagespages です。 number には整数値を指定しますが、 what が unitsunitsunitsunits なら、指定した文字数だけスクロールします。 what が pages

pages pages

pages なら、指定したページ数だけスクロールします (つまり、画面上に文字が 20 個表示されていれ ば、 文字 20 個分スクロールします)。 number に負の数を指定すると逆の方向にスクロールします。 pathName yviewyviewyviewyview

2つの実数(0 から 1 の範囲)からなるリストを返します。 これはテキストウィジット内に、 テキス トのどの部分が見えているかを示します。 最初の数は、見えている部分の先頭が、 テキスト先頭(1 行目)からどのくらいの割合の位置かを示します。 2つ目の数は、見えている部分の末尾が、 テキス ト先頭からどのくらいの割合の位置かを示します。 例えば、「0.1 0.7」という値が返ってきた場合、 見 えている部分の先頭が、テキストの先頭から 0.1、 つまり 10% の位置であることを示しています。 ま た、見えている部分の末尾が、テキストの先頭から 0.7、 つまり 70% の位置であることを示していま す。 したがってこの場合は、 テキストの上端の 10% が画面のウィジットの上外側に隠れており、 テ キストの下端の 30% が画面のウィジットの下外側に隠れていることになります。

pathName yviewyviewyviewyview movetomovetomoveto fractionmoveto

fraction の部分で指定する値は 0 から 1 の間の実数です。 テキストの1行目からの位置が、 指定し た割合の位置であるような文字をウィジットの上端に来るようにします。 つまり、ウィジットの上外側 に隠れる行の割合を指定した割合にします。

pathName yviewyviewyviewyview scrollscrollscroll number whatscroll

ウィジット内の文字列を縦方向にスクロールします。 what の値は unitsunitsunitsunits または pagespagespagespages です。 number には整数値を指定しますが、 what が unitsunitsunits なら、指定した行数だけスクロールします。 what が pagesunits pagespagespages なら、指定したページ数だけスクロールします (つまり、画面上に 5 行表示されていれば、 5 行分ス クロールします)。 number に負の数を指定すると逆の方向にスクロールします。

参照

関連したドキュメント

SD カードが装置に挿入されている場合に表示され ます。 SD カードを取り出す場合はこの項目を選択 します。「 SD

断面が変化する個所には伸縮継目を設けるとともに、斜面部においては、継目部受け台とすべり止め

l 「指定したスキャン速度以下でデータを要求」 : このモード では、 最大スキャン速度として設定されている値を指 定します。 有効な範囲は 10 から 99999990

納付日の指定を行った場合は、指定した日の前日までに預貯金口座の残

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

また、JR東日本パス (本券) を駅の指定席券売機に

Nintendo Switchでは引き続きハードウェア・ソフトウェアの魅力をお伝えし、これまでの販売の勢いを高い水準

次に、第 2 部は、スキーマ療法による認知の修正を目指したプログラムとな