mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
matz
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3597f08030
commit
e54725624f
3 changed files with 35 additions and 15 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# tkafter.rb : methods for Tcl/Tk after command
|
||||
# 1998/07/02 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
|
||||
# 2000/08/01 by Hidetoshi Nagai <nagai@ai.kyutech.ac.jp>
|
||||
#
|
||||
require 'tk'
|
||||
|
||||
|
|
@ -37,7 +37,16 @@ class TkAfter
|
|||
###############################
|
||||
def do_callback(*args)
|
||||
@in_callback = true
|
||||
ret = @current_proc.call(*args)
|
||||
begin
|
||||
ret = @current_proc.call(*args)
|
||||
rescue StandardError, NameError
|
||||
if @cancel_on_exception
|
||||
cancel
|
||||
return nil
|
||||
else
|
||||
fail $!
|
||||
end
|
||||
end
|
||||
if @set_next
|
||||
set_next_callback(*args)
|
||||
else
|
||||
|
|
@ -118,6 +127,8 @@ class TkAfter
|
|||
@after_id = nil
|
||||
@after_script = nil
|
||||
|
||||
@cancel_on_exception = true
|
||||
|
||||
set_procs(*args) if args != []
|
||||
|
||||
@running = false
|
||||
|
|
@ -135,7 +146,16 @@ class TkAfter
|
|||
end
|
||||
|
||||
def current_status
|
||||
[@running, @current_sleep, @current_proc, @current_args, @do_loop]
|
||||
[@running, @current_sleep, @current_proc, @current_args,
|
||||
@do_loop, @cancel_on_exception]
|
||||
end
|
||||
|
||||
def cancel_on_exception?
|
||||
@cancel_on_exception
|
||||
end
|
||||
|
||||
def cancel_on_exception=(mode)
|
||||
@cancel_on_exception = mode
|
||||
end
|
||||
|
||||
def running?
|
||||
|
|
|
|||
|
|
@ -460,7 +460,7 @@ class TkText<TkTextWin
|
|||
when 'anchor'
|
||||
result.push TkTextMarkAnchor.new(self)
|
||||
else
|
||||
result.push tk_tcl2rb(val)
|
||||
result.push tk_tcl2ruby(val)
|
||||
end
|
||||
when 'tagon'
|
||||
if val == 'sel'
|
||||
|
|
@ -470,12 +470,12 @@ class TkText<TkTextWin
|
|||
result.push TkTextTagSel.new(self)
|
||||
end
|
||||
else
|
||||
result.push tk_tcl2rb val
|
||||
result.push tk_tcl2ruby(val)
|
||||
end
|
||||
when 'tagoff'
|
||||
result.push tk_tcl2rb sel
|
||||
result.push tk_tcl2ruby(sel)
|
||||
when 'window'
|
||||
result.push tk_tcl2rb val
|
||||
result.push tk_tcl2ruby(val)
|
||||
end
|
||||
i = idx + 1
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue