summaryrefslogtreecommitdiff
path: root/ext/tk/lib/tk/timer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/lib/tk/timer.rb')
-rw-r--r--ext/tk/lib/tk/timer.rb33
1 files changed, 21 insertions, 12 deletions
diff --git a/ext/tk/lib/tk/timer.rb b/ext/tk/lib/tk/timer.rb
index f3b6465f78..a1f43fa864 100644
--- a/ext/tk/lib/tk/timer.rb
+++ b/ext/tk/lib/tk/timer.rb
@@ -122,7 +122,8 @@ class TkTimer
@current_args = args
- if @sleep_time.kind_of? Proc
+ # if @sleep_time.kind_of?(Proc)
+ if TkComm._callback_entry?(@sleep_time)
sleep = @sleep_time.call(self)
else
sleep = @sleep_time
@@ -244,23 +245,28 @@ class TkTimer
end
def set_interval(interval)
- if interval != 'idle' \
- && !interval.kind_of?(Integer) && !interval.kind_of?(Proc)
+ #if interval != 'idle' && interval != :idle \
+ # && !interval.kind_of?(Integer) && !interval.kind_of?(Proc)
+ if interval != 'idle' && interval != :idle \
+ && !interval.kind_of?(Integer) && !TkComm._callback_entry?(interval)
fail ArguemntError, "expect Integer or Proc"
end
@sleep_time = interval
end
def set_procs(interval, loop_exec, *procs)
- if interval != 'idle' \
- && !interval.kind_of?(Integer) && !interval.kind_of?(Proc)
+ #if interval != 'idle' && interval != :idle \
+ # && !interval.kind_of?(Integer) && !interval.kind_of?(Proc)
+ if interval != 'idle' && interval != :idle \
+ && !interval.kind_of?(Integer) && !TkComm._callback_entry?(interval)
fail ArguemntError, "expect Integer or Proc for 1st argument"
end
@sleep_time = interval
@loop_proc = []
procs.each{|e|
- if e.kind_of? Proc
+ # if e.kind_of?(Proc)
+ if TkComm._callback_entry?(e)
@loop_proc.push([e])
else
@loop_proc.push(e)
@@ -288,7 +294,8 @@ class TkTimer
def add_procs(*procs)
procs.each{|e|
- if e.kind_of? Proc
+ # if e.kind_of?(Proc)
+ if TkComm._callback_entry?(e)
@loop_proc.push([e])
else
@loop_proc.push(e)
@@ -301,7 +308,8 @@ class TkTimer
def delete_procs(*procs)
procs.each{|e|
- if e.kind_of? Proc
+ # if e.kind_of?(Proc)
+ if TkComm._callback_entry?(e)
@loop_proc.delete([e])
else
@loop_proc.delete(e)
@@ -325,7 +333,7 @@ class TkTimer
# set parameters for 'restart'
sleep = @init_sleep unless sleep
- if !sleep == 'idle' && !sleep.kind_of?(Integer)
+ if sleep != 'idle' && sleep != :idle && !sleep.kind_of?(Integer)
fail ArguemntError, "expect Integer or 'idle' for 1st argument"
end
@@ -354,7 +362,7 @@ class TkTimer
argc = init_args.size
if argc > 0
sleep = init_args.shift
- if !sleep == 'idle' && !sleep.kind_of?(Integer)
+ if sleep != 'idle' && sleep != :idle && !sleep.kind_of?(Integer)
fail ArguemntError, "expect Integer or 'idle' for 1st argument"
end
@init_sleep = sleep
@@ -368,7 +376,8 @@ class TkTimer
@current_sleep = @init_sleep
@running = true
if @init_proc
- if not @init_proc.kind_of? Proc
+ # if not @init_proc.kind_of?(Proc)
+ if !TkComm._callback_entry?(@init_proc)
fail ArgumentError, "Argument '#{@init_proc}' need to be Proc"
end
@current_proc = @init_proc
@@ -421,7 +430,7 @@ class TkTimer
sleep, cmd = @current_script
fail RuntimeError, "no procedure to continue" unless cmd
if wait
- unless wait.kind_of? Integer
+ unless wait.kind_of?(Integer)
fail ArguemntError, "expect Integer for 1st argument"
end
sleep = wait