# File tk/lib/tkextlib/itk/incr_tk.rb, line 160 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 206 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
# File tk/lib/tkextlib/itk/incr_tk.rb, line 175 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
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 374 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 403 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 421 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 433 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 243 def master @master end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 275 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 152 def mutex; @mutex; end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 247 def name @component end
# File tk/lib/tkextlib/itk/incr_tk.rb, line 223 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 315 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 347 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 331 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 239 def to_eval path() end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.