1#
2#  tcombobox widget
3#                               by Hidetoshi NAGAI (nagai@ai.kyutech.ac.jp)
4#
5require 'tk'
6require 'tkextlib/tile.rb'
7
8module Tk
9  module Tile
10    class TCombobox < Tk::Tile::TEntry
11    end
12    Combobox = TCombobox
13  end
14end
15
16class Tk::Tile::TCombobox < Tk::Tile::TEntry
17  include Tk::Tile::TileWidget
18
19  if Tk::Tile::USE_TTK_NAMESPACE
20    TkCommandNames = ['::ttk::combobox'.freeze].freeze
21  else
22    TkCommandNames = ['::tcombobox'.freeze].freeze
23  end
24  WidgetClassName = 'TCombobox'.freeze
25  WidgetClassNames[WidgetClassName] ||= self
26
27  def __boolval_optkeys
28    super() << 'exportselection'
29  end
30  private :__boolval_optkeys
31
32  def __listval_optkeys
33    super() << 'values'
34  end
35  private :__listval_optkeys
36
37  def self.style(*args)
38    [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
39  end
40
41  def current
42    number(tk_send_without_enc('current'))
43  end
44  def current=(idx)
45    tk_send_without_enc('current', idx)
46  end
47
48  def set(val)
49    tk_send('set', val)
50  end
51end
52
53#Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Combobox, :TkCombobox)
54Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tcombobox.rb',
55                                   :Ttk, Tk::Tile::Combobox, :TkCombobox)
56