From: Hidetoshi NAGAI Date: 2003-11-22T23:19:03+09:00 Subject: Re: Need some addition in Ruby/Tk Hi, From: "Sabyasachi Mustafi" Subject: Need some addition in Ruby/Tk Date: Sat, 8 Nov 2003 16:24:55 +0900 Message-ID: <20031108072219.9857.qmail@webmail18.rediffmail.com> > 1. Tkcombobox should be added in the Ruby Distribution. I added new 4 sample scripts to CVS. 1. tktextframe.rb : simple text frame with 'scrollbar 0N/OFF' method 2. tkballoonhelp.rb : simple balloon help widget --------------------------------------- TkButton.new('text'=>'This button has another balloon help') {|b| pack('fill'=>'x') TkBalloonHelp.new(b, 'text'=>'configured message', 'interval'=>500, 'font'=>'courier', 'background'=>'gray', 'foreground'=>'red') } -------------------------------------------------------- 3. tkmultilistbox.rb : multiple listboxes with pane tabs --------------------------------------- f = TkFrame.new(nil, 'width'=>300, 'height'=>200).pack('fill'=>'both', 'expand'=>'true') l = TkMultiListbox.new(f, 150, [ ['L1', 100], ['L2', 200], ['L3', 50] ], 'titlefont'=>'courier', 'titleforeground'=>'yellow', 'titlebackground'=>'navy' ).pack('fill'=>'both', 'expand'=>true) l.insert('end', [1,2,3]) l.insert('end', [4,5,6]) l.insert('end', [4,5,6], [4,5,6]) l.insert('end', ['aaaaaaaaaaaaaaa','bbbbbbbbbbb','ccccccccccccccccc']) p l.columns(1) p l.columns(1..3) p l.columns(1,2) -------------------------------------------------------- 4. tkcombobox.rb : listbox with auto-scroll tab, and combobox widget --------------------------------------- v = TkVariable.new e = TkCombobox.new(:height=>7, :scrollbar=>true, :textvariable=>v, :startwait=>400, :interval=>200).pack e.values(%w(aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp qq rr ss)) #e.see(e.list_index('end') - 2) e.value = 'cc' TkFrame.new{|f| fnt = TkFont.new('Helvetica 10') TkLabel.new(f, :font=>fnt, :text=>'TkCombobox value :').pack(:side=>:left) TkLabel.new(f, :font=>fnt, :textvariable=>v).pack(:side=>:left) }.pack TkFrame.new(:relief=>:raised, :borderwidth=>2, :height=>3).pack(:fill=>:x, :expand=>true, :padx=>5, :pady=>3) l = TkAutoScrollbox.new(nil, :relief=>:groove, :borderwidth=>4, :width=>20).pack(:fill=>:both, :expand=>true) (0..20).each{|i| l.insert('end', "line #{i}")} TkFrame.new(:relief=>:ridge, :borderwidth=>3){ TkButton.new(self, :text=>'ON', :command=>proc{l.scrollbar(true)}).pack(:side=>:left) TkButton.new(self, :text=>'OFF', :command=>proc{l.scrollbar(false)}).pack(:side=>:right) pack(:fill=>:x) } -------------------------------------------------------- Those will be included in ext/tk/sample/ directory of 1.8.1-preview3. Welcome to comments and bug reports. -- Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)