Methods
N
Class Public methods
new(parent, pos=nil, name=nil, keys={})
# File ext/tk/lib/tkextlib/blt/tabnotebook.rb, line 17
def self.new(parent, pos=nil, name=nil, keys={})
  if pos.kind_of?(Hash)
    keys = pos
    name = nil
    pos  = nil
  end
  if name.kind_of?(Hash)
    keys = name
    name = nil
  end
  obj = nil
  TabID_TBL.mutex.synchronize{
    if name && TabID_TBL[parent.path] && TabID_TBL[parent.path][name]
      obj = TabID_TBL[parent.path][name]
      if pos
        if pos.to_s == 'end'
          obj.move_after('end')
        else
          obj.move_before(pos)
        end
      end
      obj.configure if keys && ! keys.empty?
    else
      (obj = self.allocate).instance_eval{
        initialize(parent, pos, name, keys)
        TabID_TBL[@tpath] = {} unless TabID_TBL[@tpath]
        TabID_TBL[@tpath][@id] = self
      }
    end
  }
  obj
end
new(parent, pos, name, keys)
# File ext/tk/lib/tkextlib/blt/tabnotebook.rb, line 50
def initialize(parent, pos, name, keys)
  @t = parent
  @tpath = parent.path
  if name
    @path = @id = name
    unless (list(tk_call(@tpath, 'tab', 'names', @id)).empty?)
      if pos
        idx = tk_call(@tpath, 'index', @id)
        if pos.to_s == 'end'
          tk_call(@tpath, 'move', idx, 'after', 'end')
        else
          tk_call(@tpath, 'move', idx, 'before', pos)
        end
      end
      tk_call(@tpath, 'tab', 'configure', @id, keys)
    else
      fail ArgumentError, "can't find tab \"#{@id}\" in #{@t}"
    end
  else
    pos = 'end' unless pos
    @path = @id = tk_call(@tpath, 'insert', pos, keys)
  end
end