Method: TkVariable.callback

Defined in:
lib/tk/variable.rb

.callback(id, name1, name2, op) ⇒ Object

def TkVariable.callback(args)



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/tk/variable.rb', line 56

def TkVariable.callback(id, name1, name2, op)
  #name1,name2,op = tk_split_list(args)
  #name1,name2,op = tk_split_simplelist(args)
  if cb_obj = TkVar_CB_TBL[id]
    #_get_eval_string(TkVar_CB_TBL[name1].trace_callback(name2,op))
    begin
      _get_eval_string(cb_obj.trace_callback(name2, op))
    rescue SystemExit
      exit(0)
    rescue Interrupt
      exit!(1)
    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
      fail(e, msg)
    end
=begin
    begin
      raise 'check backtrace'
    rescue
      # ignore backtrace before 'callback'
      pos = -($!.backtrace.size)
    end
    begin
      _get_eval_string(TkVar_CB_TBL[name1].trace_callback(name2,op))
    rescue
      trace = $!.backtrace
      raise $!, "\n#{trace[0]}: #{$!.message} (#{$!.class})\n" +
                "\tfrom #{trace[1..pos].join("\n\tfrom ")}"
    end
=end

  else
    ''
  end
end