# module TkCore

start Tk which depends on MultiTkIp

### Constants

EventFlag
INTERP

  #<RDoc::Comment:0x000006011f3608>

  #<RDoc::Comment:0x000006019fec30>

  #<RDoc::Comment:0x000006022612b0>

  #<RDoc::Comment:0x0000060199cad0>

  #<RDoc::Comment:0x00000600c43370>

  #<RDoc::Comment:0x0000060191f3a0>

  #<RDoc::Comment:0x0000060077ea88>

  #<RDoc::Comment:0x00000601a19198>

  #<RDoc::Comment:0x0000060120cea0>

  #<RDoc::Comment:0x000006011da748>

  #<RDoc::Comment:0x000006002bbe88>

  #<RDoc::Comment:0x00000601a1af20>

  #<RDoc::Comment:0x0000060194efd8>

  #<RDoc::Comment:0x00000601399278>

  #<RDoc::Comment:0x000006013b4488>

  #<RDoc::Comment:0x00000600d6fe60>

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 1599
    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 1389
    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 1395
    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 1400
    def call(*args)
      @ip.cb_eval(@cmd, *args)
    end

callback_break() click to toggle source

    # File lib/tk.rb, line 1587
    def callback_break
      fail TkCallbackBreak, "Tk callback returns 'break' status"
    end

callback_continue() click to toggle source

    # File lib/tk.rb, line 1591
    def callback_continue
      fail TkCallbackContinue, "Tk callback returns 'continue' status"
    end

callback_return() click to toggle source

    # File lib/tk.rb, line 1595
    def callback_return
      fail TkCallbackReturn, "Tk callback returns 'return' status"
    end

inspect() click to toggle source

    # File lib/tk.rb, line 1403
    def inspect
      sprintf("#<cb_entry:%0x>", self.__id__)
    end

Also aliased as: to_s
to_s()
Alias for: inspect