In Files

  • tk/lib/tkextlib/itk/incr_tk.rb

Class/Module Index [+]

Quicksearch

Tk::Itk::Component

Public Class Methods

id2obj(master, id) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 152
def self.id2obj(master, id)
  if master.kind_of?(TkObject)
    master = master.path
  else
    master = master.to_s
  end
  return id unless ComponentID_TBL.key?(master)
  (ComponentID_TBL.key?(id))? ComponentID_TBL[master][id]: id
end
            
new(master, component=nil) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 162
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
    component = Itk_Component_ID.join(TkCore::INTERP._ip_id_)
    Itk_Component_ID[1].succ!
  end

  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
            
new(master, component) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 189
def initialize(master, component)
  @master = master
  @component = component

  ComponentID_TBL[@master][@component] = self

  begin
    @widget = window(tk_call(@master, 'component', @component))
    @path = @widget.path
  rescue
    @widget = nil
    @path = nil
  end
end
            

Public Instance Methods

bind(context, *args) click to toggle source

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 355
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
            
bind_append(context, *args) click to toggle source

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 384
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
            
bind_remove(*args) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 402
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
            
bindinfo(*args) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 414
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
            
epath() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 216
def epath
  path()
end
            
master() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 224
def master
  @master
end
            
method_missing(id, *args) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 256
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
            
name() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 228
def name
  @component
end
            
path() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 204
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
            
tk_send(cmd, *rest) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 296
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
            
tk_send_with_enc(cmd, *rest) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 328
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
            
tk_send_without_enc(cmd, *rest) click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 312
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
            
to_eval() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 220
def to_eval
  path()
end
            
widget() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 232
def widget
  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
end
            
widget_class() click to toggle source
 
               # File tk/lib/tkextlib/itk/incr_tk.rb, line 244
def widget_class
  unless @widget
    begin
      @widget = window(tk_call(@master, 'component', @component))
      @path = @widget.path
      @widget.classname
    rescue
      nil
    end
  end
end