summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/ext/tk/sample/tkline.rb
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-15 23:23:39 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-08-15 23:23:39 +0000
commit6175ca03be6d0d51359f9017123708987d0f5eb7 (patch)
treeecfcf6e79a21b1d25c3f6f42dd68ea0a14add89c /ruby_1_8_5/ext/tk/sample/tkline.rb
parent80a56b248b2e9cfc95622aed98750df05a19f667 (diff)
add tag v1_8_5_91v1_8_5_91
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/tags/v1_8_5_91@13046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ruby_1_8_5/ext/tk/sample/tkline.rb')
-rw-r--r--ruby_1_8_5/ext/tk/sample/tkline.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/ruby_1_8_5/ext/tk/sample/tkline.rb b/ruby_1_8_5/ext/tk/sample/tkline.rb
new file mode 100644
index 0000000000..3124c2fe0c
--- /dev/null
+++ b/ruby_1_8_5/ext/tk/sample/tkline.rb
@@ -0,0 +1,47 @@
+
+require "tkclass"
+
+$tkline_init = FALSE
+def start_random
+ return if $tkline_init
+ $tkline_init = TRUE
+ if defined? Thread
+ Thread.start do
+ loop do
+ sleep 2
+ Line.new($c, rand(400), rand(200), rand(400), rand(200))
+ end
+ end
+ end
+end
+
+Label.new('text'=>'Please press or drag button-1').pack
+
+$c = Canvas.new
+$c.pack
+$start_x = start_y = 0
+
+def do_press(x, y)
+ $start_x = x
+ $start_y = y
+ $current_line = Line.new($c, x, y, x, y)
+ start_random
+end
+def do_motion(x, y)
+ if $current_line
+ $current_line.coords $start_x, $start_y, x, y
+ end
+end
+
+def do_release(x, y)
+ if $current_line
+ $current_line.coords $start_x, $start_y, x, y
+ $current_line.fill 'black'
+ $current_line = nil
+ end
+end
+
+$c.bind("1", proc{|e| do_press e.x, e.y})
+$c.bind("B1-Motion", proc{|x, y| do_motion x, y}, "%x %y")
+$c.bind("ButtonRelease-1", proc{|x, y| do_release x, y}, "%x %y")
+Tk.mainloop