# File tk/lib/tkextlib/blt/tabset.rb, line 26
def self.id2obj(tabset, id)
tpath = tabset.path
TabID_TBL.mutex.synchronize{
if TabID_TBL[tpath]
TabID_TBL[tpath][id]? TabID_TBL[tpath][id]: id
else
id
end
}
end
# File tk/lib/tkextlib/blt/tabset.rb, line 70
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', '-name', @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
pos = 'end' unless pos
tk_call(@tpath, 'insert', pos, @id, keys)
end
else
pos = 'end' unless pos
TabsetTab_ID.mutex.synchronize{
@path = @id = TabsetTab_ID.join(TkCore::INTERP._ip_id_)
TabsetTab_ID[1].succ!
}
tk_call(@tpath, 'insert', pos, @id, keys)
end
end
# File tk/lib/tkextlib/blt/tabset.rb, line 37
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
def bind(context, cmd=Proc.new, *args)
@t.tab_bind(@id, context, cmd, *args) self
end
# File tk/lib/tkextlib/blt/tabset.rb, line 103
def bind(context, *args)
# 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
@t.tab_bind(@id, context, cmd, *args)
self
end
def bind_append(context, cmd=Proc.new, *args)
@t.tab_bind_append(@id, context, cmd, *args) self
end
# File tk/lib/tkextlib/blt/tabset.rb, line 117
def bind_append(context, *args)
# 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
@t.tab_bind_append(@id, context, cmd, *args)
self
end
# File tk/lib/tkextlib/blt/tabset.rb, line 127
def bind_remove(context)
@t.tab_bind_remove(@id, context)
self
end
# File tk/lib/tkextlib/blt/tabset.rb, line 131
def bindinfo(context=nil)
@t.tab_bindinfo(@id, context)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 138
def cget(*args)
@t.tab_cget(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 141
def cget_strict(*args)
@t.tab_cget_strict(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 135
def cget_tkstring(*args)
@t.tab_cget_tkstring(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 147
def configinfo(*args)
@t.tab_configinfo(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 144
def configure(*args)
@t.tab_configure(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 150
def current_configinfo(*args)
@t.current_tab_configinfo(@id, *args)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 154
def delete()
@t.delete(@id)
TabID_TBL.mutex.synchronize{
TabID_TBL[@tpath].delete(@id)
}
self
end
# File tk/lib/tkextlib/blt/tabset.rb, line 166
def focus()
@t.focus(self.index)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 162
def get_name()
@id.dup
end
# File tk/lib/tkextlib/blt/tabset.rb, line 170
def index()
@t.index_name(@id)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 174
def invoke()
@t.invoke(self.index)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 181
def move_after(idx)
@t.move_after(self.index, idx)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 178
def move_before(idx)
@t.move_before(self.index, idx)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 185
def perforation_highlight(mode)
@t.perforation_highlight(self.index, mode)
end
# File tk/lib/tkextlib/blt/tabset.rb, line 188
def perforation_invoke()
@t.perforation_invoke(self.index)
end