# text.tcl --
#
# This demonstration script creates a text widget that describes
# the basic editing functions.
#
# RCS: @(#) $Id: text.tcl,v 1.1 1999/03/31 15:08:43 m-hirano Exp $

if {![info exists widgetDemo]} {
    error "This script should be run from the \"widget\" demo."
}

set w .text
catch {destroy $w}
toplevel $w
wm title $w "Text Demonstration - Basic Facilities"
wm iconname $w "text"
positionWindow $w

frame $w.buttons
pack $w.buttons -side bottom -fill x -pady 2m
button $w.buttons.dismiss -text [langSel Dismiss 了解] -command "destroy $w"
button $w.buttons.code -text [langSel "See Code" "コード参照"] -command "showCode $w"
pack $w.buttons.dismiss $w.buttons.code -side left -expand 1

text $w.text -relief sunken -bd 2 -yscrollcommand "$w.scroll set" -setgrid 1 \
	-height 30
scrollbar $w.scroll -command "$w.text yview"
pack $w.scroll -side right -fill y
pack $w.text -expand yes -fill both
$w.text insert 0.0 [langSel \
{This window is a text widget.  It displays one or more lines of text
and allows you to edit the text.  Here is a summary of the things you
can do to a text widget:

1. Scrolling. Use the scrollbar to adjust the view in the text window.

2. Scanning. Press mouse button 2 in the text window and drag up or down.
This will drag the text at high speed to allow you to scan its contents.

3. Insert text. Press mouse button 1 to set the insertion cursor, then
type text.  What you type will be added to the widget.

4. Select. Press mouse button 1 and drag to select a range of characters.
Once you've released the button, you can adjust the selection by pressing
button 1 with the shift key down.  This will reset the end of the
selection nearest the mouse cursor and you can drag that end of the
selection by dragging the mouse before releasing the mouse button.
You can double-click to select whole words or triple-click to select
whole lines.

5. Delete and replace. To delete text, select the characters you'd like
to delete and type Backspace or Delete.  Alternatively, you can type new
text, in which case it will replace the selected text.

6. Copy the selection. To copy the selection into this window, select
what you want to copy (either here or in another application), then
click button 2 to copy the selection to the point of the mouse cursor.

7. Edit.  Text widgets support the standard Motif editing characters
plus many Emacs editing characters.  Backspace and Control-h erase the
character to the left of the insertion cursor.  Delete and Control-d
erase the character to the right of the insertion cursor.  Meta-backspace
deletes the word to the left of the insertion cursor, and Meta-d deletes
the word to the right of the insertion cursor.  Control-k deletes from
the insertion cursor to the end of the line, or it deletes the newline
character if that is the only thing left on the line.  Control-o opens
a new line by inserting a newline character to the right of the insertion
cursor.  Control-t transposes the two characters on either side of the
insertion cursor.

7. Resize the window.  This widget has been configured with the "setGrid"
option on, so that if you resize the window it will always resize to an
even number of characters high and wide.  Also, if you make the window
narrow you can see that long lines automatically wrap around onto
additional lines so that all the information is always visible.} \
{このウィンドウはテキスト widget です。1行またはそれ以上のテキストを表
示・編集することができます。以下はテキスト widget でできる操作について
まとめたものです。

1. スクロール。スクロールバーでテキストの表示部分を動かすことができます。

2. スキャニング。テキストのウィンドウでマウスボタン2 (中ボタンを) を押
して上下にドラッグしてください。そうするとテキストが高速でドラッグされ、
内容をざっと眺めることができます。

3. テキストの挿入。マウスボタン1 (左ボタン) を押し、挿入カーソルをセッ
トしてからテキストを入力してください。入力したものが widget に入ります。

4. 選択。ある範囲の文字を選択するにはマウスボタン1 を押し、ドラッグし
てください。一度ボタンを離したら、シフトキーを押しながらボタン1 を押す
ことで選択範囲の調整ができます。これは選択範囲の最後をマウスカーソルに
最も近い位置にリセットし、ボタンを離す前にマウスをドラッグすることでさ
らに選択範囲を調整できます。ダブルクリックでワードを、またトリプルクリッ
クで行全体を選択することができます。

5. 消去と置換。テキストを消去するには、消去したい文字を選択してバック
スペースかデリートキーを入力してください。あるいは、新しいテキストを
入力すると選択されたテキストと置換されます。

6. 選択部分のコピー。選択部分をこのウィンドウの中のどこかにコピーする
には、まずコピーしたい所を選択(ここで、あるいは別のアプリケーションで)
し、ボタン 2 をクリックして、挿入カーソルの位置にコピーしてください。

7. 編集。テキスト widget は Emacs のキーバインドに加えて標準的な Motif
の編集機能をサポートしています。バックスペースとコントロール-H は挿入
カーソルの左側の文字を削除します。デリートキーとコントロール-D は挿入
カーソルの右側の文字を削除します。Meta-バックスペースは挿入カーソルの
右側の単語を削除し、Meta-D は挿入カーソルの左側の単語を削除します。
コントロール-K は挿入カーソルから行末までを削除し、その位置に改行
しかなかった場合は、改行を削除します。

8. ウィンドウのリサイズ。この widget は "setGrid" オプションをオンにし
てありますので、ウィンドウをリサイズする時には高さと幅は常に文字高と文
字幅の整数倍になります。また、ウィンドウを狭くした場合には長い行が自動
的に折り返され、常に全ての内容が見えるようになっています。}]
$w.text mark set insert 0.0
