1# 2# tkextlib/tcllib/panelframe.rb 3# by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp) 4# 5# * Part of tcllib extension 6# * Create PanelFrame widgets. 7# 8 9require 'tk' 10require 'tkextlib/tcllib.rb' 11 12# TkPackage.require('widget::panelframe', '1.0') 13TkPackage.require('widget::panelframe') 14 15module Tk::Tcllib 16 module Widget 17 class PanelFrame < TkWindow 18 PACKAGE_NAME = 'widget::panelframe'.freeze 19 def self.package_name 20 PACKAGE_NAME 21 end 22 23 def self.package_version 24 begin 25 TkPackage.require('widget::panelframe') 26 rescue 27 '' 28 end 29 end 30 end 31 Panelframe = PanelFrame 32 end 33end 34 35class Tk::Tcllib::Widget::PanelFrame 36 TkCommandNames = ['::widget::panelframe'.freeze].freeze 37 38 def create_self(keys) 39 if keys and keys != None 40 tk_call_without_enc(self.class::TkCommandNames[0], @path, 41 *hash_kv(keys, true)) 42 else 43 tk_call_without_enc(self.class::TkCommandNames[0], @path) 44 end 45 end 46 private :create_self 47 48 def add(what, *args) 49 window(tk_send('add', *args)) 50 end 51 52 #def get_frame 53 # window(tk_send('getframe')) 54 #end 55 56 def set_widget(widget) 57 tk_send('setwidget', widget) 58 self 59 end 60 61 def remove(*wins) 62 tk_send('remove', *wins) 63 self 64 end 65 def remove_destroy(*wins) 66 tk_send('remove', '-destroy', *wins) 67 self 68 end 69 70 def delete(*wins) 71 tk_send('delete', *wins) 72 self 73 end 74 75 def items 76 simplelist(tk_send('items')).collect!{|w| window(w)} 77 end 78end 79