aboutsummaryrefslogtreecommitdiffstats
path: root/ext/tk/sample/demos-jp/text.rb
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-31 20:52:40 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-07-31 20:52:40 +0000
commit75362fbd47cedf4b4906a361a6c54bc4ad8ea5ec (patch)
tree33e458bfb8dcf84face1eb34acede77b68ff5d8d /ext/tk/sample/demos-jp/text.rb
parent0cdf0d99c1e5164c53676a39265ff99120c8a026 (diff)
downloadruby-75362fbd47cedf4b4906a361a6c54bc4ad8ea5ec.tar.gz
* (IMPORTANT BUG FIX) scan of event keywords doesn't work on recent
versions of Tck/Tk * (bug fix) initialize error of instance variable on TkComposite * (bug fix) initialize error on encoding-system on MultiTkIp * (bug fix) trouble on destroying widgets * (new) add JP and EN version of Ruby/Tk widget demos git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/sample/demos-jp/text.rb')
-rw-r--r--ext/tk/sample/demos-jp/text.rb94
1 files changed, 94 insertions, 0 deletions
diff --git a/ext/tk/sample/demos-jp/text.rb b/ext/tk/sample/demos-jp/text.rb
new file mode 100644
index 0000000000..a8232088a5
--- /dev/null
+++ b/ext/tk/sample/demos-jp/text.rb
@@ -0,0 +1,94 @@
+#
+# text (basic facilities) widget demo (called by 'widget')
+#
+
+# toplevel widget が存在すれば削除する
+if defined?($text_demo) && $text_demo
+ $text_demo.destroy
+ $text_demo = nil
+end
+
+# demo 用の toplevel widget を生成
+$text_demo = TkToplevel.new {|w|
+ title("Text Demonstration - Basic Facilities")
+ iconname("text")
+ positionWindow(w)
+}
+
+# frame 生成
+TkFrame.new($text_demo) {|frame|
+ TkButton.new(frame) {
+ text '了解'
+ command proc{
+ tmppath = $text_demo
+ $text_demo = nil
+ tmppath.destroy
+ }
+ }.pack('side'=>'left', 'expand'=>'yes')
+
+ TkButton.new(frame) {
+ text 'コード参照'
+ command proc{showCode 'text'}
+ }.pack('side'=>'left', 'expand'=>'yes')
+}.pack('side'=>'bottom', 'fill'=>'x', 'pady'=>'2m')
+
+# text 生成
+TkText.new($text_demo){|t|
+ # 生成
+ relief 'sunken'
+ bd 2
+ setgrid 1
+ height 30
+ TkScrollbar.new($text_demo) {|s|
+ pack('side'=>'right', 'fill'=>'y')
+ command proc{|*args| t.yview(*args)}
+ t.yscrollcommand proc{|first,last| s.set first,last}
+ }
+ pack('expand'=>'yes', 'fill'=>'both')
+
+ # テキスト挿入
+ insert('0.0', %q|
+このウィンドウはテキスト 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" オプションをオンにし
+てありますので、ウィンドウをリサイズする時には高さと幅は常に文字高と文
+字幅の整数倍になります。また、ウィンドウを狭くした場合には長い行が自動
+的に折り返され、常に全ての内容が見えるようになっています。|)
+
+ set_insert('0.0')
+}
+