#<RDoc::Comment:0x00000002376278>
#<RDoc::Comment:0x00000002711ab8>
#<RDoc::Comment:0x00000002306d10>
#<RDoc::Comment:0x00000001ed4c10>
#<RDoc::Comment:0x0000000235de08>
#<RDoc::Comment:0x0000000261d800>
#<RDoc::Comment:0x000000027eb768>
#<RDoc::Comment:0x00000002812228>
#<RDoc::Comment:0x00000001905528>
#<RDoc::Comment:0x00000002690a08>
#<RDoc::Comment:0x00000001f48098>
#<RDoc::Comment:0x00000002763f48>
#<RDoc::Comment:0x00000002312db8>
#<RDoc::Comment:0x00000001d4c050>
#<RDoc::Comment:0x00000001b81d88>
#<RDoc::Comment:0x0000000190caa8>
*** KNOWN BUG ***
Main event loop thread of TkAqua (> Tk8.4.9) must be the main application thread. So, ruby1.9 users must call Tk.mainloop on the main application thread.
*** ADD (2009/05/10) ***
In some cases (I don't know the description of conditions), TkAqua 8.4.7 has a same kind of hang-up trouble. So, if 8.4.7 or later, set RUN_EVENTLOOP_ON_MAIN_THREAD to true. When you want to control this mode, please call the following (set true/false as you want) before "require 'tk'". ---------------------------------------------------------- module TkCore; RUN_EVENTLOOP_ON_MAIN_THREAD = true; end ----------------------------------------------------------
*** ADD (2010/07/05) ***
The value of TclTkLib::WINDOWING_SYSTEM is defined at compiling. If it is inconsistent with linked DLL, please call the following before "require 'tk'". ---------------------------------------------------------- require 'tcltklib' module TclTkLib remove_const :WINDOWING_SYSTEM WINDOWING_SYSTEM = 'x11' # or 'aqua' end ----------------------------------------------------------
# File tk/lib/tk.rb, line 1601
def TkCore.callback(*arg)
begin
if TkCore::INTERP.tk_cmd_tbl.kind_of?(Hash)
#TkCore::INTERP.tk_cmd_tbl[arg.shift].call(*arg)
normal_ret = false
ret = catch(:IRB_EXIT) do # IRB hack
retval = TkCore::INTERP.tk_cmd_tbl[arg.shift].call(*arg)
normal_ret = true
retval
end
unless normal_ret
# catch IRB_EXIT
exit(ret)
end
ret
end
rescue SystemExit=>e
exit(e.status)
rescue Interrupt=>e
fail(e)
rescue Exception => e
begin
msg = _toUTF8(e.class.inspect) + ': ' +
_toUTF8(e.message) + "\n" +
"\n---< backtrace of Ruby side >-----\n" +
_toUTF8(e.backtrace.join("\n")) +
"\n---< backtrace of Tk side >-------"
if TkCore::WITH_ENCODING
msg.force_encoding('utf-8')
else
msg.instance_variable_set(:@encoding, 'utf-8')
end
rescue Exception
msg = e.class.inspect + ': ' + e.message + "\n" +
"\n---< backtrace of Ruby side >-----\n" +
e.backtrace.join("\n") +
"\n---< backtrace of Tk side >-------"
end
# TkCore::INTERP._set_global_var('errorInfo', msg)
# fail(e)
fail(e, msg)
end
end
# File tk/lib/tk.rb, line 1391
def inspect
sprintf("#<Class(TkCallbackEntry):%0x>", self.__id__)
end
# File tk/lib/tk.rb, line 1402
def call(*args)
@ip.cb_eval(@cmd, *args)
end
# File tk/lib/tk.rb, line 1589
def callback_break
fail TkCallbackBreak, "Tk callback returns 'break' status"
end
# File tk/lib/tk.rb, line 1593
def callback_continue
fail TkCallbackContinue, "Tk callback returns 'continue' status"
end
# File tk/lib/tk.rb, line 1597
def callback_return
fail TkCallbackReturn, "Tk callback returns 'return' status"
end
# File tk/lib/tk.rb, line 1405
def inspect
sprintf("#<cb_entry:%0x>", self.__id__)
end