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