1#
2#  tscrollbar 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 TScrollbar < Tk::Scrollbar
11    end
12    Scrollbar = TScrollbar
13  end
14end
15
16class Tk::Tile::TScrollbar < Tk::Scrollbar
17  include Tk::Tile::TileWidget
18
19  if Tk::Tile::USE_TTK_NAMESPACE
20    TkCommandNames = ['::ttk::scrollbar'.freeze].freeze
21  else
22    TkCommandNames = ['::tscrollbar'.freeze].freeze
23  end
24  WidgetClassName = 'TScrollbar'.freeze
25  WidgetClassNames[WidgetClassName] ||= self
26
27  def self.style(*args)
28    [self::WidgetClassName, *(args.map!{|a| _get_eval_string(a)})].join('.')
29  end
30
31  alias identify ttk_identify
32end
33
34#Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scrollbar, :TkScrollbar)
35Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
36                                   :Ttk, Tk::Tile::Scrollbar, :TkScrollbar)
37
38#######################################################################
39
40class Tk::Tile::XScrollbar < Tk::Tile::TScrollbar
41  def create_self(keys)
42    keys = {} unless keys
43    keys['orient'] = 'horizontal'
44    super(keys)
45  end
46  private :create_self
47end
48
49class Tk::Tile::YScrollbar < Tk::Tile::TScrollbar
50  def create_self(keys)
51    keys = {} unless keys
52    keys['orient'] = 'vertical'
53    super(keys)
54  end
55  private :create_self
56end
57
58#Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::XScrollbar, :TkXScrollbar)
59#Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::YScrollbar, :TkYScrollbar)
60Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
61                                   :Ttk, Tk::Tile::XScrollbar, :TkXScrollbar)
62Tk.__set_loaded_toplevel_aliases__('tkextlib/tile/tscrollbar.rb',
63                                   :Ttk, Tk::Tile::YScrollbar, :TkYScrollbar)
64