diff options
Diffstat (limited to 'ruby_1_8_6/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb')
-rw-r--r-- | ruby_1_8_6/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/ruby_1_8_6/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb b/ruby_1_8_6/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb new file mode 100644 index 0000000000..90be46b40b --- /dev/null +++ b/ruby_1_8_6/ext/tk/sample/tkextlib/iwidgets/sample/tabset.rb @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby +require 'tk' +require 'tkextlib/iwidgets' + +# Create a listbox with two items (one and two) +l = TkListbox.new(:selectmode=>:single, :exportselection=>false).pack +l.insert('end', 'one') +l.insert('end', 'two') +l.selection_set(0) + +# Define a proc that knows how to select an item +# from a list given an index from the tabset -command callback. +selectItem = proc{|item| + l.selection_clear(l.curselection) + l.selection_set(item) + l.see(item) +} + +# Create a tabset, set its -command to call selectItem +# Add two labels to the tabset (one and two). +ts = Tk::Iwidgets::Tabset.new(:command=>selectItem) +ts.add(:label=>1) +ts.add(:label=>2) +ts.select(0) +ts.pack(:fill=>:x, :expand=>true) + +# Define a proc that knows how to select a tab +# given a y pixel coordinate from the list.. +selectTab = proc{|y| ts.select(l.nearest(y)) } + +# bind button 1 press to the selectTab procedure. +l.bind('ButtonPress-1', proc{|y| selectTab.call(y) }, '%y') + +Tk.mainloop |