# File tk/lib/tkextlib/iwidgets/tabset.rb, line 65
def add(keys={})
window(tk_call(@path, 'add', *hash_kv(keys)))
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 69
def delete(idx1, idx2=nil)
if idx2
tk_call(@path, 'delete', index(idx1), index(idx2))
else
tk_call(@path, 'delete', index(idx1))
end
self
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 78
def index(idx)
number(tk_call(@path, 'index', tagid(idx)))
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 82
def insert(idx, keys={})
window(tk_call(@path, 'insert', index(idx), *hash_kv(keys)))
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 86
def next
tk_call(@path, 'next')
self
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 91
def prev
tk_call(@path, 'prev')
self
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 96
def select(idx)
tk_call(@path, 'select', index(idx))
self
end
# File tk/lib/tkextlib/iwidgets/tabset.rb, line 101
def show_tab(idx)
if index(idx) == 0
self.start = 0
return
end
reutrn unless @canvas ||= self.winfo_children[0]
delta = 1 if (delta = cget(:gap)) == 'overlap' ||
(delta = self.winfo_pixels(delta) + 1) <= 0
case cget(:tabpos)
when 's', 'n'
if (head = tabcget(idx, :left)) < 0
self.start -= head
return
end
tabs_size = @canvas.winfo_width
tab_start, tab_end = @canvas .
find_overlapping(head, 0, head + delta, @canvas.winfo_height) .
find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
map!{|id| bbox = @canvas.bbox(id); [bbox[0], bbox[2]]} . max
when 'e', 'w'
if (head = tabcget(idx, :top)) < 0
self.start -= head
return
end
tabs_size = @canvas.winfo_height
tab_start, tab_end = @canvas .
find_overlapping(0, head, @canvas.winfo_width, head + delta) .
find_all{|id| @canvas.itemtype(id) == TkcPolygon} .
map!{|id| bbox = @canvas.bbox(id); [bbox[1], bbox[3]]} . max
end
if (size = tab_end - tab_start + 1) > tabs_size
self.start -= tab_start
elsif head + size > tabs_size
self.start -= head + size - tabs_size
end
self
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.