# frozen_string_literal: false # # tk/scrollbox.rb - Tk Listbox with Scrollbar # as an example of Composite Widget # by Yukihiro Matsumoto # require 'tk' require 'tk/listbox' class TkScrollbox use current TkListbox class list = TkListbox.new(@frame) #scroll = Tk::Scrollbar.new(@frame) # -> use current TkScrollbar class scroll = TkScrollbar.new(@frame) @path = list.path =begin list.configure 'yscroll', scroll.path+" set" list.pack 'side'=>'left','fill'=>'both','expand'=>'yes' scroll.configure 'command', list.path+" yview" scroll.pack 'side'=>'right','fill'=>'y' =end list.yscrollbar(scroll) list.pack('side'=>'left','fill'=>'both','expand'=>'yes') scroll.pack('side'=>'right','fill'=>'y') delegate('DEFAULT', list) delegate('foreground', list) delegate('background', list, scroll) delegate('borderwidth', @frame) delegate('relief', @frame) configure keys if keys end private :initialize_composite end