summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-17 14:05:19 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-10-17 14:05:19 +0000
commit51043a36b40eab1e9d6214faf80fe7b8d48cb843 (patch)
treea373d52fb00c935bf92d82ba3ea5c4107518816c
parent1d409bc8bb6e49f71d1dd72491b85eb40c914076 (diff)
* ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--ext/tk/lib/tk/timer.rb16
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 0791c0f032..5f7f7d5147 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 17 23:03:48 2004 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>
+
+ * ext/tk/lib/tk/timer.rb: TkTimer#start and restart accept a block
+
Sun Oct 17 13:05:04 2004 Masaki Suketa <masaki.suketa@nifty.ne.jp>
* ext/win32ole/win32ole.c (fole_func_methods): correct argument mismatch.
diff --git a/ext/tk/lib/tk/timer.rb b/ext/tk/lib/tk/timer.rb
index 27c40e57e4..f3b6465f78 100644
--- a/ext/tk/lib/tk/timer.rb
+++ b/ext/tk/lib/tk/timer.rb
@@ -321,20 +321,25 @@ class TkTimer
self
end
- def set_start_proc(sleep, init_proc=nil, *init_args)
+ def set_start_proc(sleep=nil, init_proc=nil, *init_args, &b)
+ # set parameters for 'restart'
+ sleep = @init_sleep unless sleep
+
if !sleep == 'idle' && !sleep.kind_of?(Integer)
fail ArguemntError, "expect Integer or 'idle' for 1st argument"
end
+
@init_sleep = sleep
@init_proc = init_proc
@init_args = init_args
+ @init_proc = b if !@init_proc && b
@init_proc = proc{|*args| } if @init_sleep > 0 && !@init_proc
self
end
- def start(*init_args)
+ def start(*init_args, &b)
return nil if @running
Tk_CBTBL[@id] = self
@@ -357,6 +362,7 @@ class TkTimer
@init_proc = init_args.shift if argc > 1
@init_args = init_args if argc > 2
+ @init_proc = b if !@init_proc && b
@init_proc = proc{|*args| } if @init_sleep > 0 && !@init_proc
@current_sleep = @init_sleep
@@ -391,12 +397,12 @@ class TkTimer
self
end
- def restart(*restart_args)
+ def restart(*restart_args, &b)
cancel if @running
- if restart_args == []
+ if restart_args == [] && !b
start(@init_sleep, @init_proc, *@init_args)
else
- start(*restart_args)
+ start(*restart_args, &b)
end
end