diff options
Diffstat (limited to 'ext/tk/lib/tk/timer.rb')
-rw-r--r-- | ext/tk/lib/tk/timer.rb | 33 |
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 |