1#
2#               tk/scrollbox.rb - Tk Listbox with Scrollbar
3#                                 as an example of Composite Widget
4#                       by Yukihiro Matsumoto <matz@netlab.co.jp>
5#
6require 'tk'
7require 'tk/listbox'
8
9class TkScrollbox<Tk::Listbox
10  include TkComposite
11  def initialize_composite(keys=nil)
12    #list = Tk::Listbox.new(@frame)
13    # -> use current TkListbox class
14    list = TkListbox.new(@frame)
15    #scroll = Tk::Scrollbar.new(@frame)
16    # -> use current TkScrollbar class
17    scroll = TkScrollbar.new(@frame)
18    @path = list.path
19
20=begin
21    list.configure 'yscroll', scroll.path+" set"
22    list.pack 'side'=>'left','fill'=>'both','expand'=>'yes'
23    scroll.configure 'command', list.path+" yview"
24    scroll.pack 'side'=>'right','fill'=>'y'
25=end
26    list.yscrollbar(scroll)
27    list.pack('side'=>'left','fill'=>'both','expand'=>'yes')
28    scroll.pack('side'=>'right','fill'=>'y')
29
30    delegate('DEFAULT', list)
31    delegate('foreground', list)
32    delegate('background', list, scroll)
33    delegate('borderwidth', @frame)
34    delegate('relief', @frame)
35
36    configure keys if keys
37  end
38  private :initialize_composite
39end
40