summaryrefslogtreecommitdiff
path: root/ext/tk/sample/tcltklib/sample1.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/sample/tcltklib/sample1.rb')
-rw-r--r--ext/tk/sample/tcltklib/sample1.rb304
1 files changed, 152 insertions, 152 deletions
diff --git a/ext/tk/sample/tcltklib/sample1.rb b/ext/tk/sample/tcltklib/sample1.rb
index 1965781533..3235edfe0d 100644
--- a/ext/tk/sample/tcltklib/sample1.rb
+++ b/ext/tk/sample/tcltklib/sample1.rb
@@ -1,131 +1,131 @@
#! /usr/local/bin/ruby -d
-# -*- encoding: euc-jp -*-
-# -d オプションを付けると, デバッグ情報を表示する.
+# -*- encoding: utf-8 -*-
+# -d 激с潟篁, 井宴茵腓冴.
-# tcltk ライブラリのサンプル
+# tcltk ゃ泣潟
-# まず, ライブラリを require する.
+# 障, ゃ require .
require "tcltk"
-# 以下は, Test1 のインスタンスの initialize() で,
-# tcl/tk に関する処理を行う例である.
-# 必ずしもそのようにする必要は無く,
-# (もし, そうしたければ) class の外で tcl/tk に関する処理を行っても良い.
+# 篁ヤ, Test1 ゃ潟鴻帥潟鴻 initialize() ,
+# tcl/tk ≪茵箴с.
+# 綽綽荀<,
+# (, ) class 紊 tcl/tk ≪茵c.
class Test1
- # 初期化(インタプリタを生成してウィジェットを生成する).
+ # (ゃ潟帥帥c吾с).
def initialize()
- #### 使う前のおまじない
+ #### 篏帥障
- # インタプリタの生成.
+ # ゃ潟帥帥.
ip = TclTkInterpreter.new()
- # コマンドに対応するオブジェクトを c に設定しておく.
+ # 潟潟絲上吾с c 荐絎.
c = ip.commands()
- # 使用するコマンドに対応するオブジェクトは変数に入れておく.
+ # 篏睡潟潟絲上吾с紊違ャ.
append, bind, button, destroy, incr, info, label, place, set, wm =
c.values_at(
"append", "bind", "button", "destroy", "incr", "info", "label", "place",
"set", "wm")
- #### tcl/tk のコマンドに対応するオブジェクト(TclTkCommand)の操作
+ #### tcl/tk 潟潟絲上吾с(TclTkCommand)篏
- # 実行する時は, e() メソッドを使う.
- # (以下は, tcl/tk における info command r* を実行.)
+ # 絎茵, e() <純篏帥.
+ # (篁ヤ, tcl/tk info command r* 絎茵.)
print info.e("command", "r*"), "\n"
- # 引数は, まとめた文字列にしても同じ.
+ # 綣違, 障絖.
print info.e("command r*"), "\n"
- # 変数を用いなくとも実行できるが, 見ためが悪い.
+ # 紊違絎茵с, 荀.
print c["info"].e("command", "r*"), "\n"
- # インタプリタのメソッドとしても実行できるが, 効率が悪い.
+ # ゃ潟帥帥<純絎茵с, 合.
print ip.info("command", "r*"), "\n"
####
- # 以下, 生成したオブジェクトは変数に代入しておかないと
- # GC の対象になってしまう.
+ # 篁ヤ, 吾с紊違篁eャ
+ # GC 絲乗院c障.
- #### tcl/tk の変数に対応するオブジェクト(TclTkVariable)の操作
+ #### tcl/tk 紊違絲上吾с(TclTkVariable)篏
- # 生成と同時に値を設定する.
+ # ゃ荐絎.
v1 = TclTkVariable.new(ip, "20")
- # 読み出しは get メソッドを使う.
+ # 茯水冴 get <純篏帥.
print v1.get(), "\n"
- # 設定は set メソッドを使う.
+ # 荐絎 set <純篏帥.
v1.set(40)
print v1.get(), "\n"
- # set コマンドを使って読み出し, 設定は可能だが見ためが悪い.
- # e() メソッド等の引数に直接 TclTkObject や数値を書いても良い.
+ # set 潟潟篏帥c茯水冴, 荐絎純荀.
+ # e() <純膈綣違贋・ TclTkObject 医ゃ吾.
set.e(v1, 30)
print set.e(v1), "\n"
- # tcl/tk のコマンドで変数を操作できる.
+ # tcl/tk 潟潟у違篏с.
incr.e(v1)
print v1.get(), "\n"
append.e(v1, 10)
print v1.get(), "\n"
- #### tcl/tk のウィジェットに対応するオブジェクト(TclTkWidget)の操作
+ #### tcl/tk c吾с絲上吾с(TclTkWidget)篏
- # ルートウィジェットを取り出す.
+ # 若c吾с冴.
root = ip.rootwidget()
- # ウィジェットの操作.
+ # c吾с篏.
root.e("configure -height 300 -width 300")
- # タイトルを付けるときは wm を使う.
+ # 帥ゃ篁 wm 篏帥.
wm.e("title", root, $0)
- # 親ウィジェットとコマンドを指定して, ウィジェットを作る.
+ # 荀c吾с潟潟絎, c吾с篏.
l1 = TclTkWidget.new(ip, root, label, "-text {type `x' to print}")
- # place すると表示される.
+ # place 茵腓冴.
place.e(l1, "-x 0 -rely 0.0 -relwidth 1 -relheight 0.1")
- # コマンド名は文字列で指定しても良いが, 見ためが悪い.
- # (コマンド名は独立した引数でなければならない.)
+ # 潟潟絖ф絎, 荀.
+ # (潟潟腴綣違с違.)
l2 = TclTkWidget.new(ip, root, "label")
- # ウィジェットの操作.
+ # c吾с篏.
l2.e("configure -text {type `q' to exit}")
place.e(l2, "-x 0 -rely 0.1 -relwidth 1 -relheight 0.1")
- #### tcl/tk のコールバックに対応するオブジェクト(TclTkCallback)の操作
+ #### tcl/tk 潟若絲上吾с(TclTkCallback)篏
- # コールバックを生成する.
+ # 潟若.
c1 = TclTkCallback.new(ip, proc{sample(ip, root)})
- # コールバックを持つウィジェットを生成する.
+ # 潟若ゃc吾с.
b1 = TclTkWidget.new(ip, root, button, "-text sample -command", c1)
place.e(b1, "-x 0 -rely 0.2 -relwidth 1 -relheight 0.1")
- # イベントループを抜けるには destroy.e(root) する.
+ # ゃ潟若 destroy.e(root) .
c2 = TclTkCallback.new(ip, proc{destroy.e(root)})
b2 = TclTkWidget.new(ip, root, button, "-text exit -command", c2)
place.e(b2, "-x 0 -rely 0.3 -relwidth 1 -relheight 0.1")
- #### イベントのバインド
- # script の追加 (bind tag sequence +script) は今のところできない.
- # (イテレータ変数の設定がうまくいかない.)
+ #### ゃ潟ゃ潟
+ # script 菴遵 (bind tag sequence +script) 篁с.
+ # (ゃ若水違荐絎障.)
- # 基本的にはウィジェットに対するコールバックと同じ.
+ # 堺c吾с絲障潟若.
c3 = TclTkCallback.new(ip, proc{print("q pressed\n"); destroy.e(root)})
bind.e(root, "q", c3)
- # bind コマンドで % 置換によりパラメータを受け取りたいときは,
- # proc{} の後ろに文字列で指定すると,
- # 置換結果をイテレータ変数を通して受け取ることができる.
- # ただし proc{} の後ろの文字列は,
- # bind コマンドに与えるコールバック以外で指定してはいけない.
+ # bind 潟潟 % 臀<若帥,
+ # proc{} 緇絖ф絎,
+ # 臀腟ゃ若水違с.
+ # proc{} 緇絖,
+ # bind 潟潟筝潟若篁ュф絎.
c4 = TclTkCallback.new(ip, proc{|i| print("#{i} pressed\n")}, "%A")
bind.e(root, "x", c4)
- # TclTkCallback を GC の対象にしたければ,
- # dcb() (または deletecallbackkeys()) する必要がある.
+ # TclTkCallback GC 絲乗院,
+ # dcb() (障 deletecallbackkeys()) 綽荀.
cb = [c1, c2, c3, c4]
c5 = TclTkCallback.new(ip, proc{|w| TclTk.dcb(cb, root, w)}, "%W")
bind.e(root, "<Destroy>", c5)
cb.push(c5)
- #### tcl/tk のイメージに対応するオブジェクト(TclTkImage)の操作
+ #### tcl/tk ゃ<若吾絲上吾с(TclTkImage)篏
- # データを指定して生成する.
+ # 若帥絎.
i1 = TclTkImage.new(ip, "photo", "-file maru.gif")
- # ラベルに張り付けてみる.
+ # 綣泣篁帥.
l3 = TclTkWidget.new(ip, root, label, "-relief raised -image", i1)
place.e(l3, "-x 0 -rely 0.4 -relwidth 0.2 -relheight 0.2")
- # 空のイメージを生成して後で操作する.
+ # 腥冴ゃ<若吾緇ф篏.
i2 = TclTkImage.new(ip, "photo")
- # イメージを操作する.
+ # ゃ<若吾篏.
i2.e("copy", i1)
i2.e("configure -gamma 0.5")
l4 = TclTkWidget.new(ip, root, label, "-relief raised -image", i2)
@@ -134,26 +134,26 @@ class Test1
####
end
- # サンプルのためのウィジェットを生成する.
+ # 泣潟c吾с.
def sample(ip, parent)
bind, button, destroy, grid, toplevel, wm = ip.commands().values_at(
"bind", "button", "destroy", "grid", "toplevel", "wm")
## toplevel
- # 新しいウインドウを開くには, toplevel を使う.
+ # 違ゃ潟, toplevel 篏帥.
t1 = TclTkWidget.new(ip, parent, toplevel)
- # タイトルを付けておく
+ # 帥ゃ篁
wm.e("title", t1, "sample")
- # ウィジェットが破壊されたとき, コールバックが GC の対象になるようにする.
+ # c吾с翫, 潟若 GC 絲乗院.
cb = []
cb.push(c = TclTkCallback.new(ip, proc{|w| TclTk.dcb(cb, t1, w)}, "%W"))
bind.e(t1, "<Destroy>", c)
- # ボタンの生成.
+ # 帥潟.
wid = []
- # toplevel ウィジェットを破壊するには destroy する.
+ # toplevel c吾с翫 destroy .
cb.push(c = TclTkCallback.new(ip, proc{destroy.e(t1)}))
wid.push(TclTkWidget.new(ip, t1, button, "-text close -command", c))
cb.push(c = TclTkCallback.new(ip, proc{test_label(ip, t1)}))
@@ -183,7 +183,7 @@ class Test1
cb.push(c = TclTkCallback.new(ip, proc{test_canvas(ip, t1)}))
wid.push(TclTkWidget.new(ip, t1, button, "-text canvas -command", c))
- # grid で表示する.
+ # grid ц;腓冴.
ro = co = 0
wid.each{|w|
grid.e(w, "-row", ro, "-column", co, "-sticky news")
@@ -196,38 +196,38 @@ class Test1
end
# inittoplevel(ip, parent, title)
- # 以下の処理をまとめて行う.
- # 1. toplevel ウィジェットを作成する.
- # 2. コールバックを登録する配列を用意し, toplevel ウィジェットの
- # <Destroy> イベントにコールバックを削除する手続きを登録する.
- # 3. クローズボタンを作る.
- # 作成した toplevel ウィジェット, クローズボタン, コールバック登録用変数
- # を返す.
- # ip: インタプリタ
- # parent: 親ウィジェット
- # title: toplevel ウィジェットのウインドウのタイトル
+ # 篁ヤ障茵.
+ # 1. toplevel c吾с篏.
+ # 2. 潟若脂蚊, toplevel c吾с
+ # <Destroy> ゃ潟潟若ゃ膓脂蚊.
+ # 3. 若冴帥潟篏.
+ # 篏 toplevel c吾с, 若冴帥, 潟若脂牙紊
+ # 菴.
+ # ip: ゃ潟帥
+ # parent: 荀c吾с
+ # title: toplevel c吾сゃ潟帥ゃ
def inittoplevel(ip, parent, title)
bind, button, destroy, toplevel, wm = ip.commands().values_at(
"bind", "button", "destroy", "toplevel", "wm")
- # 新しいウインドウを開くには, toplevel を使う.
+ # 違ゃ潟, toplevel 篏帥.
t1 = TclTkWidget.new(ip, parent, toplevel)
- # タイトルを付けておく
+ # 帥ゃ篁
wm.e("title", t1, title)
- # ウィジェットが破壊されたとき, コールバックが GC の対象になるようにする.
+ # c吾с翫, 潟若 GC 絲乗院.
cb = []
cb.push(c = TclTkCallback.new(ip, proc{|w| TclTk.dcb(cb, t1, w)}, "%W"))
bind.e(t1, "<Destroy>", c)
- # close ボタンを作っておく.
- # toplevel ウィジェットを破壊するには destroy する.
+ # close 帥潟篏c.
+ # toplevel c吾с翫 destroy .
cb.push(c = TclTkCallback.new(ip, proc{destroy.e(t1)}))
b1 = TclTkWidget.new(ip, t1, button, "-text close -command", c)
return t1, b1, cb
end
- # label のサンプル.
+ # label 泣潟.
def test_label(ip, parent)
button, global, label, pack = ip.commands().values_at(
"button", "global", "label", "pack")
@@ -235,7 +235,7 @@ class Test1
## label
- # いろいろな形のラベル.
+ # 綵≪.
l1 = TclTkWidget.new(ip, t1, label, "-text {default(flat)}")
l2 = TclTkWidget.new(ip, t1, label, "-text raised -relief raised")
l3 = TclTkWidget.new(ip, t1, label, "-text sunken -relief sunken")
@@ -244,23 +244,23 @@ class Test1
l6 = TclTkWidget.new(ip, t1, label, "-bitmap error")
l7 = TclTkWidget.new(ip, t1, label, "-bitmap questhead")
- # pack しても表示される.
+ # pack 茵腓冴.
pack.e(b1, l1, l2, l3, l4, l5, l6, l7, "-pady 3")
## -textvariable
- # tcltk ライブラリの実装では, コールバックは tcl/tk の``手続き''を通して
- # 呼ばれる. したがって, コールバックの中で(大域)変数にアクセスするときは,
- # global する必要がある.
- # global する前に変数に値を設定してしまうとエラーになるので,
- # tcl/tk における表現形だけ生成して, 実際に値を設定しないように,
- # 2 番目の引数には nil を与える.
+ # tcltk ゃ絎茖с, 潟若 tcl/tk ``膓''
+ # 若違. c, 潟若筝(紊у)紊違≪祉鴻,
+ # global 綽荀.
+ # global 紊違ゃ荐絎障若,
+ # tcl/tk 茵憜就, 絎ゃ荐絎,
+ # 2 綣違 nil 筝.
v1 = TclTkVariable.new(ip, nil)
global.e(v1)
v1.set(100)
- # -textvariable で変数を設定する.
+ # -textvariable у違荐絎.
l6 = TclTkWidget.new(ip, t1, label, "-textvariable", v1)
- # コールバックの中から変数を操作する.
+ # 潟若筝紊違篏.
cb.push(c = TclTkCallback.new(ip, proc{
global.e(v1); v1.set(v1.get().to_i + 10)}))
b2 = TclTkWidget.new(ip, t1, button, "-text +10 -command", c)
@@ -270,14 +270,14 @@ class Test1
pack.e(l6, b2, b3)
end
- # button のサンプル.
+ # button 泣潟.
def test_button(ip, parent)
button, pack = ip.commands().values_at("button", "pack")
t1, b1, cb = inittoplevel(ip, parent, "button")
## button
- # コールバック内で参照する変数は先に宣言しておかなければならない.
+ # 潟若ус紊違絎h違.
b3 = b4 = nil
cb.push(c = TclTkCallback.new(ip, proc{b3.e("flash"); b4.e("flash")}))
b2 = TclTkWidget.new(ip, t1, button, "-text flash -command", c)
@@ -288,7 +288,7 @@ class Test1
pack.e(b1, b2, b3, b4)
end
- # checkbutton のサンプル.
+ # checkbutton 泣潟.
def test_checkbutton(ip, parent)
checkbutton, global, pack = ip.commands().values_at(
"checkbutton", "global", "pack")
@@ -298,13 +298,13 @@ class Test1
v1 = TclTkVariable.new(ip, nil)
global.e(v1)
- # -variable で変数を設定する.
+ # -variable у違荐絎.
ch1 = TclTkWidget.new(ip, t1, checkbutton, "-onvalue on -offvalue off",
"-textvariable", v1, "-variable", v1)
pack.e(b1, ch1)
end
- # radiobutton のサンプル.
+ # radiobutton 泣潟.
def test_radiobutton(ip, parent)
global, label, pack, radiobutton = ip.commands().values_at(
"global", "label", "pack", "radiobutton")
@@ -314,10 +314,10 @@ class Test1
v1 = TclTkVariable.new(ip, nil)
global.e(v1)
- # ヌルストリングは "{}" で指定する.
+ # 鴻潟違 "{}" ф絎.
v1.set("{}")
l1 = TclTkWidget.new(ip, t1, label, "-textvariable", v1)
- # -variable で同じ変数を指定すると同じグループになる.
+ # -variable у紊違絎違若.
ra1 = TclTkWidget.new(ip, t1, radiobutton,
"-text radio1 -value r1 -variable", v1)
ra2 = TclTkWidget.new(ip, t1, radiobutton,
@@ -328,7 +328,7 @@ class Test1
pack.e(b1, l1, ra1, ra2, ra3)
end
- # scale のサンプル.
+ # scale 泣潟.
def test_scale(ip, parent)
global, pack, scale = ip.commands().values_at(
"global", "pack", "scale")
@@ -339,7 +339,7 @@ class Test1
v1 = TclTkVariable.new(ip, nil)
global.e(v1)
v1.set(219)
- # コールバック内で参照する変数は先に宣言しておかなければならない.
+ # 潟若ус紊違絎h違.
sca1 = nil
cb.push(c = TclTkCallback.new(ip, proc{global.e(v1); v = v1.get();
sca1.e("configure -background", format("#%02x%02x%02x", v, v, v))}))
@@ -348,7 +348,7 @@ class Test1
pack.e(b1, sca1)
end
- # entry のサンプル.
+ # entry 泣潟.
def test_entry(ip, parent)
button, entry, global, pack = ip.commands().values_at(
"button", "entry", "global", "pack")
@@ -358,7 +358,7 @@ class Test1
v1 = TclTkVariable.new(ip, nil)
global.e(v1)
- # ヌルストリングは "{}" で指定する.
+ # 鴻潟違 "{}" ф絎.
v1.set("{}")
en1 = TclTkWidget.new(ip, t1, entry, "-textvariable", v1)
cb.push(c = TclTkCallback.new(ip, proc{
@@ -367,7 +367,7 @@ class Test1
pack.e(b1, en1, b2)
end
- # text のサンプル.
+ # text 泣潟.
def test_text(ip, parent)
button, pack, text = ip.commands().values_at(
"button", "pack", "text")
@@ -377,13 +377,13 @@ class Test1
te1 = TclTkWidget.new(ip, t1, text)
cb.push(c = TclTkCallback.new(ip, proc{
- # 1 行目の 0 文字目から最後までを表示し, 削除する.
+ # 1 茵 0 絖緇障с茵腓冴, ゃ.
print(te1.e("get 1.0 end")); te1.e("delete 1.0 end")}))
b2 = TclTkWidget.new(ip, t1, button, "-text print -command", c)
pack.e(b1, te1, b2)
end
- # raise/lower のサンプル.
+ # raise/lower 泣潟.
def test_raise(ip, parent)
button, frame, lower, pack, raise = ip.commands().values_at(
"button", "frame", "lower", "pack", "raise")
@@ -391,9 +391,9 @@ class Test1
## raise/lower
- # button を隠すテストのために, frame を使う.
+ # button 鴻, frame 篏帥.
f1 = TclTkWidget.new(ip, t1, frame)
- # コールバック内で参照する変数は先に宣言しておかなければならない.
+ # 潟若ус紊違絎h違.
b2 = nil
cb.push(c = TclTkCallback.new(ip, proc{raise.e(f1, b2)}))
b2 = TclTkWidget.new(ip, t1, button, "-text raise -command", c)
@@ -405,21 +405,21 @@ class Test1
pack.e(b1, f1)
end
- # modal なウィジェットのサンプル.
+ # modal c吾с泣潟.
def test_modal(ip, parent)
button, frame, message, pack, tk_chooseColor, tk_getOpenFile,
tk_messageBox = ip.commands().values_at(
"button", "frame", "message", "pack", "tk_chooseColor",
"tk_getOpenFile", "tk_messageBox")
- # 最初に load されていないライブラリは ip.commands() に存在しないので,
- # TclTkLibCommand を生成する必要がある.
+ # load ゃ ip.commands() 絖,
+ # TclTkLibCommand 綽荀.
tk_dialog = TclTkLibCommand.new(ip, "tk_dialog")
t1, b1, cb = inittoplevel(ip, parent, "message/modal")
## message
- mes = "これは message ウィジェットのテストです."
- mes += "以下は modal なウィジェットのテストです."
+ mes = " message c吾с鴻с."
+ mes += "篁ヤ modal c吾с鴻с."
me1 = TclTkWidget.new(ip, t1, message, "-text {#{mes}}")
## modal
@@ -431,7 +431,7 @@ class Test1
b2 = TclTkWidget.new(ip, t1, button, "-text messageBox -command", c)
# tk_dialog
cb.push(c = TclTkCallback.new(ip, proc{
- # ウィジェット名を生成するためにダミーの frame を生成.
+ # c吾с若 frame .
print tk_dialog.e(TclTkWidget.new(ip, t1, frame),
"dialog dialog error 2 yes no cancel"), "\n"}))
b3 = TclTkWidget.new(ip, t1, button, "-text dialog -command", c)
@@ -449,7 +449,7 @@ class Test1
pack.e(b1, me1, b2, b3, b4, b5)
end
- # menu のサンプル.
+ # menu 泣潟.
def test_menu(ip, parent)
global, menu, menubutton, pack = ip.commands().values_at(
"global", "menu", "menubutton", "pack")
@@ -458,29 +458,29 @@ class Test1
## menu
- # menubutton を生成する.
+ # menubutton .
mb1 = TclTkWidget.new(ip, t1, menubutton, "-text menu")
- # menu を生成する.
+ # menu .
me1 = TclTkWidget.new(ip, mb1, menu)
- # mb1 から me1 が起動されるようにする.
+ # mb1 me1 莎桁.
mb1.e("configure -menu", me1)
- # cascade で起動される menu を生成する.
+ # cascade ц儀 menu .
me11 = TclTkWidget.new(ip, me1, menu)
- # radiobutton のサンプル.
+ # radiobutton 泣潟.
v1 = TclTkVariable.new(ip, nil); global.e(v1); v1.set("r1")
me11.e("add radiobutton -label radio1 -value r1 -variable", v1)
me11.e("add radiobutton -label radio2 -value r2 -variable", v1)
me11.e("add radiobutton -label radio3 -value r3 -variable", v1)
- # cascade により mb11 が起動されるようにする.
+ # cascade mb11 莎桁.
me1.e("add cascade -label cascade -menu", me11)
- # checkbutton のサンプル.
+ # checkbutton 泣潟.
v2 = TclTkVariable.new(ip, nil); global.e(v2); v2.set("none")
me1.e("add checkbutton -label check -variable", v2)
- # separator のサンプル.
+ # separator 泣潟.
me1.e("add separator")
- # command のサンプル.
+ # command 泣潟.
v3 = nil
cb.push(c = TclTkCallback.new(ip, proc{
global.e(v1, v2, v3); print "v1: ", v1.get(), ", v2: ", v2.get(),
@@ -495,7 +495,7 @@ class Test1
pack.e(b1, mb1, om1, "-side left")
end
- # listbox のサンプル.
+ # listbox 泣潟.
def test_listbox(ip, parent)
clipboard, frame, grid, listbox, lower, menu, menubutton, pack, scrollbar,
selection = ip.commands().values_at(
@@ -506,11 +506,11 @@ class Test1
## listbox/scrollbar
f1 = TclTkWidget.new(ip, t1, frame)
- # コールバック内で参照する変数は先に宣言しておかなければならない.
+ # 潟若ус紊違絎h違.
li1 = sc1 = sc2 = nil
- # 実行時に, 後ろにパラメータがつくコールバックは,
- # イテレータ変数でそのパラメータを受け取ることができる.
- # (複数のパラメータはひとつの文字列にまとめられる.)
+ # 絎茵, 緇<若帥ゃ潟若,
+ # ゃ若水違с<若帥с.
+ # (茲違<若帥蚊ゃ絖障.)
cb.push(c1 = TclTkCallback.new(ip, proc{|i| li1.e("xview", i)}))
cb.push(c2 = TclTkCallback.new(ip, proc{|i| li1.e("yview", i)}))
cb.push(c3 = TclTkCallback.new(ip, proc{|i| sc1.e("set", i)}))
@@ -532,17 +532,17 @@ class Test1
me1 = TclTkWidget.new(ip, mb1, menu)
mb1.e("configure -menu", me1)
cb.push(c = TclTkCallback.new(ip, proc{
- # clipboard をクリア.
+ # clipboard .
clipboard.e("clear")
- # selection から文字列を読み込み clipboard に追加する.
+ # selection 絖茯粋昭 clipboard 菴遵.
clipboard.e("append {#{selection.e('get')}}")}))
me1.e("add command -label {selection -> clipboard} -command",c)
cb.push(c = TclTkCallback.new(ip, proc{
- # li1 をクリア.
+ # li1 .
li1.e("delete 0 end")
- # clipboard から文字列を取り出し, 1 行ずつ
+ # clipboard 絖冴, 1 茵
selection.e("get -selection CLIPBOARD").split(/\n/).each{|line|
- # li1 に挿入する.
+ # li1 水ャ.
li1.e("insert end {#{line}}")}}))
me1.e("add command -label {clipboard -> listbox} -command",c)
@@ -557,7 +557,7 @@ class Test1
pack.e(f2, f1)
end
- # canvas のサンプル.
+ # canvas 泣潟.
def test_canvas(ip, parent)
canvas, lower, pack = ip.commands().values_at("canvas", "lower", "pack")
t1, b1, cb = inittoplevel(ip, parent, "canvas")
@@ -566,36 +566,36 @@ class Test1
ca1 = TclTkWidget.new(ip, t1, canvas, "-width 400 -height 300")
lower.e(ca1, b1)
- # rectangle を作る.
+ # rectangle 篏.
idr = ca1.e("create rectangle 10 10 20 20")
- # oval を作る.
+ # oval 篏.
ca1.e("create oval 60 10 100 50")
- # polygon を作る.
+ # polygon 篏.
ca1.e("create polygon 110 10 110 30 140 10")
- # line を作る.
+ # line 篏.
ca1.e("create line 150 10 150 30 190 10")
- # arc を作る.
+ # arc 篏.
ca1.e("create arc 200 10 250 50 -start 0 -extent 90 -style pieslice")
- # i1 は本当は, どこかで破壊しなければならないが, 面倒なので放ってある.
+ # i1 綵, х翫違, √ф障c.
i1 = TclTkImage.new(ip, "photo", "-file maru.gif")
- # image を作る.
+ # image 篏.
ca1.e("create image 100 100 -image", i1)
- # bitmap を作る.
+ # bitmap 篏.
ca1.e("create bitmap 260 50 -bitmap questhead")
- # text を作る.
+ # text 篏.
ca1.e("create text 320 50 -text {drag rectangle}")
- # window を作る(クローズボタン).
+ # window 篏(若冴帥).
ca1.e("create window 200 200 -window", b1)
- # bind により rectangle を drag できるようにする.
+ # bind rectangle drag с.
cb.push(c = TclTkCallback.new(ip, proc{|i|
- # i に x と y を受け取るので, 取り出す.
+ # i x y , 冴.
x, y = i.split(/ /); x = x.to_f; y = y.to_f
- # 座標を変更する.
+ # 綺ф紊眼.
ca1.e("coords current #{x - 5} #{y - 5} #{x + 5} #{y + 5}")},
- # x, y 座標を空白で区切ったものをイテレータ変数へ渡すように指定.
+ # x, y 綺ф腥榊純у阪cゃ若水違御検絎.
"%x %y"))
- # rectangle に bind する.
+ # rectangle bind .
ca1.e("bind", idr, "<B1-Motion>", c)
pack.e(ca1)
@@ -605,7 +605,7 @@ end
# test driver
if ARGV.size == 0
- print "#{$0} n で, n 個のインタプリタを起動します.\n"
+ print "#{$0} n , n ゃ潟帥帥莎桁障.\n"
n = 1
else
n = ARGV[0].to_i
@@ -614,16 +614,16 @@ end
print "start\n"
ip = []
-# インタプリタ, ウィジェット等の生成.
+# ゃ潟帥, c吾с膈.
for i in 1 .. n
ip.push(Test1.new())
end
-# 用意ができたらイベントループに入る.
+# сゃ潟若ャ.
TclTk.mainloop()
print "exit from mainloop\n"
-# インタプリタが GC されるかのテスト.
+# ゃ潟帥帥 GC 鴻.
ip = []
print "GC.start\n" if $DEBUG
GC.start() if $DEBUG