1# 2# ttk_selector 3# 4###################################### 5# toplevel classes/modules 6module Tk 7 @TOPLEVEL_ALIAS_TABLE[:Ttk] = { 8 :TkButton => 'tkextlib/tile/tbutton', 9 10 :TkCheckbutton => 'tkextlib/tile/tcheckbutton', 11 :TkCheckButton => 'tkextlib/tile/tcheckbutton', 12 13 # :TkDialog => 'tkextlib/tile/dialog', 14 15 :TkEntry => 'tkextlib/tile/tentry', 16 17 :TkCombobox => 'tkextlib/tile/tcombobox', 18 19 :TkFrame => 'tkextlib/tile/tframe', 20 21 :TkLabel => 'tkextlib/tile/tlabel', 22 23 :TkLabelframe => 'tkextlib/tile/tlabelframe', 24 :TkLabelFrame => 'tkextlib/tile/tlabelframe', 25 26 :TkMenubutton => 'tkextlib/tile/tmenubutton', 27 :TkMenuButton => 'tkextlib/tile/tmenubutton', 28 29 :TkNotebook => 'tkextlib/tile/tnotebook', 30 31 # :TkPaned => 'tkextlib/tile/tpaned', 32 :TkPanedwindow => 'tkextlib/tile/tpaned', 33 :TkPanedWindow => 'tkextlib/tile/tpaned', 34 35 :TkProgressbar => 'tkextlib/tile/tprogressbar', 36 37 :TkRadiobutton => 'tkextlib/tile/tradiobutton', 38 :TkRadioButton => 'tkextlib/tile/tradiobutton', 39 40 :TkScale => 'tkextlib/tile/tscale', 41 # :TkProgress => 'tkextlib/tile/tscale', 42 43 :TkScrollbar => 'tkextlib/tile/tscrollbar', 44 :TkXScrollbar => 'tkextlib/tile/tscrollbar', 45 :TkYScrollbar => 'tkextlib/tile/tscrollbar', 46 47 :TkSeparator => 'tkextlib/tile/tseparator', 48 49 :TkSizeGrip => 'tkextlib/tile/sizegrip', 50 :TkSizegrip => 'tkextlib/tile/sizegrip', 51 52 # :TkSquare => 'tkextlib/tile/tsquare', 53 54 :TkTreeview => 'tkextlib/tile/treeview', 55 } 56 57 # @TOPLEVEL_ALIAS_TABLE[:Tile] = @TOPLEVEL_ALIAS_TABLE[:Ttk] 58 Tk.__create_widget_set__(:Tile, :Ttk) 59 60 ############################################ 61 # depend on the version of Tcl/Tk 62 major, minor, type, patchlevel = TclTkLib.get_version 63 64 # ttk::spinbox is supported on Tcl/Tk8.6b1 or later 65 if ([major,minor,type,patchlevel] <=> 66 [8,6,TclTkLib::RELEASE_TYPE::BETA,1]) >= 0 67 @TOPLEVEL_ALIAS_TABLE[:Ttk].update( 68 :TkSpinbox => 'tkextlib/tile/tspinbox' 69 ) 70 end 71 72 ################################################ 73 # register some Ttk widgets as default 74 # (Ttk is a standard library on Tcl/Tk8.5+) 75 @TOPLEVEL_ALIAS_TABLE[:Ttk].each{|sym, file| 76 #unless Tk::TOPLEVEL_ALIASES.autoload?(sym) || Tk::TOPLEVEL_ALIASES.const_defined?(sym) 77 # @TOPLEVEL_ALIAS_OWNER[sym] = :Ttk 78 # Tk::TOPLEVEL_ALIASES.autoload(sym, file) 79 #end 80 Tk.__regist_toplevel_aliases__(:Ttk, file, sym) 81 } 82 83 ################################################ 84 85 # @TOPLEVEL_ALIAS_SETUP_PROC[:Tile] = 86 # @TOPLEVEL_ALIAS_SETUP_PROC[:Ttk] = proc{|mod| 87 # unless Tk.autoload?(:Tile) || Tk.const_defined?(:Tile) 88 # Object.autoload :Ttk, 'tkextlib/tile' 89 # Tk.autoload :Tile, 'tkextlib/tile' 90 # end 91 # } 92 Tk.__toplevel_alias_setup_proc__(:Ttk, :Tile){|mod| 93 unless Tk.autoload?(:Tile) || Tk.const_defined?(:Tile) 94 Object.autoload :Ttk, 'tkextlib/tile' 95 Tk.autoload :Tile, 'tkextlib/tile' 96 end 97 } 98end 99