# File tk/lib/tkextlib/itk/incr_tk.rb, line 159 def self.id2obj(master, id) if master.kind_of?(TkObject) master = master.path else master = master.to_s end ComponentID_TBL.mutex.synchronize{ if ComponentID_TBL.key?(master) (ComponentID_TBL[master].key?(id))? ComponentID_TBL[master][id]: id else id end } end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 174 def self.new(master, component=nil) if master.kind_of?(TkObject) master = master.path else master = master.to_s end if component.kind_of?(Tk::Itk::Component) component = component.name elsif component component = component.to_s else Itk_Component_ID.mutex.synchronize{ component = Itk_Component_ID.join(TkCore::INTERP._ip_id_) Itk_Component_ID[1].succ! } end ComponentID_TBL.mutex.synchronize{ if ComponentID_TBL.key?(master) if ComponentID_TBL[master].key?(component) return ComponentID_TBL[master][component] end else ComponentID_TBL[master] = {} end } super(master, component) end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 205 def initialize(master, component) @master = master @component = component ComponentID_TBL.mutex.synchronize{ ComponentID_TBL[@master][@component] = self } begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue @widget = nil @path = nil end end
def bind(*args)
unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end @widget.bind(*args)
end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 373 def bind(context, *args) unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) if TkComm._callback_entry?(args[0]) || !block_given? cmd = args.shift else cmd = Proc.new end @widget.bind(context, cmd, *args) end
def #bind_append(*args)
unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end @widget.bind_append(*args)
end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 402 def bind_append(context, *args) unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end # if args[0].kind_of?(Proc) || args[0].kind_of?(Method) if TkComm._callback_entry?(args[0]) || !block_given? cmd = args.shift else cmd = Proc.new end @widget.bind_append(context, cmd, *args) end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 420 def bind_remove(*args) unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end @widget.bind_remove(*args) end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 432 def bindinfo(*args) unless @widget begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end @widget.bindinfo(*args) end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 242 def master @master end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 274 def method_missing(id, *args) name = id.id2name # try 1 : component command begin return tk_call(@master, 'component', @component, name, *args) rescue end # try 2 : component configure len = args.length begin case len when 1 if name[-1] == ?= return configure(name[0..-2], args[0]) else return configure(name, args[0]) end when 0 return cget(name) end rescue end # try 3 : widget method or widget configure begin unless @widget @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path end @widget.__send__(id, *args) rescue end # unknown method super(id, *args) # fail RuntimeError, "unknown method '#{name}' for #{self.inspect}" end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 151 def mutex; @mutex; end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 246 def name @component end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 222 def path unless @path begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end @path end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 314 def tk_send(cmd, *rest) begin tk_call(@master, 'component', @component, cmd, *rest) rescue unless @path begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end tk_call(@path, cmd, *rest) end end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 346 def tk_send_with_enc(cmd, *rest) begin tk_call_with_enc(@master, 'component', @component, cmd, *rest) rescue unless @path begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end tk_call_with_enc(@path, cmd, *rest) end end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 330 def tk_send_without_enc(cmd, *rest) begin tk_call_without_enc(@master, 'component', @component, cmd, *rest) rescue unless @path begin @widget = window(tk_call(@master, 'component', @component)) @path = @widget.path rescue fail RuntimeError, 'component is not assigned to a widget' end end tk_call_without_enc(@path, cmd, *rest) end end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 238 def to_eval path() end