module TkCore

start Tk which depends on MultiTkIp

Constants

EventFlag
INTERP

#<RDoc::Comment:0x201bf0d8>


#<RDoc::Comment:0x20f01ebc>


#<RDoc::Comment:0x202260e4>


#<RDoc::Comment:0x226acbd4>


#<RDoc::Comment:0x208292e8>


#<RDoc::Comment:0x227130c8>


#<RDoc::Comment:0x20694464>


#<RDoc::Comment:0x22403bf8>


#<RDoc::Comment:0x21c2934c>


#<RDoc::Comment:0x21be16b4>


#<RDoc::Comment:0x21ce0d94>


#<RDoc::Comment:0x21caf780>


#<RDoc::Comment:0x2246c6f8>


#<RDoc::Comment:0x2270b058>


#<RDoc::Comment:0x227ab328>


#<RDoc::Comment:0x224201b8>

INTERP_MUTEX
INTERP_ROOT_CHECK
INTERP_THREAD
INTERP_THREAD_STATUS
RUN_EVENTLOOP_ON_MAIN_THREAD

*** 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
----------------------------------------------------------
WIDGET_DESTROY_HOOK
WITH_ENCODING
WITH_RUBY_VM

Public Class Methods

callback(*arg) click to toggle source
# File lib/tk.rb, line 1598
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
inspect() click to toggle source
# File lib/tk.rb, line 1388
def inspect
  sprintf("#<Class(TkCallbackEntry):%0x>", self.__id__)
end
Also aliased as: to_s
new(ip, cmd) click to toggle source
# File lib/tk.rb, line 1394
def initialize(ip, cmd)
  @ip = ip
  @cmd = cmd
end
to_s()
Alias for: inspect

Public Instance Methods

call(*args) click to toggle source
# File lib/tk.rb, line 1399
def call(*args)
  @ip.cb_eval(@cmd, *args)
end
callback_break() click to toggle source
# File lib/tk.rb, line 1586
def callback_break
  fail TkCallbackBreak, "Tk callback returns 'break' status"
end
callback_continue() click to toggle source
# File lib/tk.rb, line 1590
def callback_continue
  fail TkCallbackContinue, "Tk callback returns 'continue' status"
end
callback_return() click to toggle source
# File lib/tk.rb, line 1594
def callback_return
  fail TkCallbackReturn, "Tk callback returns 'return' status"
end
inspect() click to toggle source
# File lib/tk.rb, line 1402
def inspect
  sprintf("#<cb_entry:%0x>", self.__id__)
end
Also aliased as: to_s
to_s()
Alias for: inspect