ruby-changes:4128
From: ko1@a...
Date: Thu, 28 Feb 2008 03:46:08 +0900 (JST)
Subject: [ruby-changes:4128] nagai - Ruby:r15618 (trunk): * ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set
nagai 2008-02-28 03:44:31 +0900 (Thu, 28 Feb 2008) New Revision: 15618 Modified files: trunk/ChangeLog trunk/ext/tk/lib/tk/autoload.rb trunk/ext/tk/lib/tk/button.rb trunk/ext/tk/lib/tk/canvas.rb trunk/ext/tk/lib/tk/checkbutton.rb trunk/ext/tk/lib/tk/composite.rb trunk/ext/tk/lib/tk/entry.rb trunk/ext/tk/lib/tk/event.rb trunk/ext/tk/lib/tk/font.rb trunk/ext/tk/lib/tk/frame.rb trunk/ext/tk/lib/tk/label.rb trunk/ext/tk/lib/tk/labelframe.rb trunk/ext/tk/lib/tk/listbox.rb trunk/ext/tk/lib/tk/macpkg.rb trunk/ext/tk/lib/tk/menu.rb trunk/ext/tk/lib/tk/menubar.rb trunk/ext/tk/lib/tk/menuspec.rb trunk/ext/tk/lib/tk/message.rb trunk/ext/tk/lib/tk/optiondb.rb trunk/ext/tk/lib/tk/panedwindow.rb trunk/ext/tk/lib/tk/radiobutton.rb trunk/ext/tk/lib/tk/root.rb trunk/ext/tk/lib/tk/scale.rb trunk/ext/tk/lib/tk/scrollbar.rb trunk/ext/tk/lib/tk/scrollbox.rb trunk/ext/tk/lib/tk/spinbox.rb trunk/ext/tk/lib/tk/text.rb trunk/ext/tk/lib/tk/textimage.rb trunk/ext/tk/lib/tk/textmark.rb trunk/ext/tk/lib/tk/texttag.rb trunk/ext/tk/lib/tk/textwindow.rb trunk/ext/tk/lib/tk/toplevel.rb trunk/ext/tk/lib/tk/ttk_selector.rb trunk/ext/tk/lib/tk/variable.rb trunk/ext/tk/lib/tk/winpkg.rb trunk/ext/tk/lib/tk.rb trunk/ext/tk/lib/tkextlib/blt/busy.rb trunk/ext/tk/lib/tkextlib/blt/eps.rb trunk/ext/tk/lib/tkextlib/blt/tile/button.rb trunk/ext/tk/lib/tkextlib/blt/tile/checkbutton.rb trunk/ext/tk/lib/tkextlib/blt/tile/frame.rb trunk/ext/tk/lib/tkextlib/blt/tile/label.rb trunk/ext/tk/lib/tkextlib/blt/tile/radiobutton.rb trunk/ext/tk/lib/tkextlib/blt/tile/scrollbar.rb trunk/ext/tk/lib/tkextlib/blt/tile/toplevel.rb trunk/ext/tk/lib/tkextlib/bwidget/button.rb trunk/ext/tk/lib/tkextlib/bwidget/buttonbox.rb trunk/ext/tk/lib/tkextlib/bwidget/dialog.rb trunk/ext/tk/lib/tkextlib/bwidget/entry.rb trunk/ext/tk/lib/tkextlib/bwidget/label.rb trunk/ext/tk/lib/tkextlib/bwidget/labelentry.rb trunk/ext/tk/lib/tkextlib/bwidget/spinbox.rb trunk/ext/tk/lib/tkextlib/itk/incr_tk.rb trunk/ext/tk/lib/tkextlib/iwidgets/checkbox.rb trunk/ext/tk/lib/tkextlib/iwidgets/hierarchy.rb trunk/ext/tk/lib/tkextlib/iwidgets/notebook.rb trunk/ext/tk/lib/tkextlib/iwidgets/radiobox.rb trunk/ext/tk/lib/tkextlib/iwidgets/selectionbox.rb trunk/ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb trunk/ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb trunk/ext/tk/lib/tkextlib/iwidgets/tabset.rb trunk/ext/tk/lib/tkextlib/tcllib/autoscroll.rb trunk/ext/tk/lib/tkextlib/tcllib/ctext.rb trunk/ext/tk/lib/tkextlib/tcllib/datefield.rb trunk/ext/tk/lib/tkextlib/tcllib/ip_entry.rb trunk/ext/tk/lib/tkextlib/tcllib/plotchart.rb trunk/ext/tk/lib/tkextlib/tile/sizegrip.rb trunk/ext/tk/lib/tkextlib/tile/style.rb trunk/ext/tk/lib/tkextlib/tile/tbutton.rb trunk/ext/tk/lib/tkextlib/tile/tcheckbutton.rb trunk/ext/tk/lib/tkextlib/tile/tcombobox.rb trunk/ext/tk/lib/tkextlib/tile/tentry.rb trunk/ext/tk/lib/tkextlib/tile/tframe.rb trunk/ext/tk/lib/tkextlib/tile/tlabel.rb trunk/ext/tk/lib/tkextlib/tile/tlabelframe.rb trunk/ext/tk/lib/tkextlib/tile/tmenubutton.rb trunk/ext/tk/lib/tkextlib/tile/tnotebook.rb trunk/ext/tk/lib/tkextlib/tile/tpaned.rb trunk/ext/tk/lib/tkextlib/tile/tprogressbar.rb trunk/ext/tk/lib/tkextlib/tile/tradiobutton.rb trunk/ext/tk/lib/tkextlib/tile/treeview.rb trunk/ext/tk/lib/tkextlib/tile/tscale.rb trunk/ext/tk/lib/tkextlib/tile/tscrollbar.rb trunk/ext/tk/lib/tkextlib/tile/tseparator.rb trunk/ext/tk/lib/tkextlib/tile.rb trunk/ext/tk/lib/tkextlib/tktrans/tktrans.rb trunk/ext/tk/lib/tkextlib/vu/spinbox.rb trunk/ext/tk/sample/tkextlib/tile/toolbutton.tcl Log: * ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set switchable between Tk (standard Tcl/Tk widget set) and Ttk (Tile). Initial default widget set is Tk. Now, toplevel widget classes are removed and defined as aliases. For example, "TkButton" is an alias of the "Tk::Button" class. Those aliases are replaced when switching default widget set. "Tk.default_widget_set=" is the method for switching default widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile) widget set as default. It means that "TkButton" denotes "Tk::Tile::Button" class. And then, "TkButton.new" creates a Tk::Tile::Button widget. Of course, you can back to use standard Tk widgets as the default widget set by calling "Tk.default_widget_set = :Tk", whenever you want. Based on thie feature, you can use Ttk widget styling engine on your old Ruby/Tk application without modifying its source, if you don'tuse widget options unsupported on Ttk widgets (At first, call "Tk.default_widget_set = :Ttk", and next load and run your application). This is one step for supporting Tcl/Tk8.5 features. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tcllib/plotchart.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/event.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tcllib/ip_entry.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tnotebook.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/macpkg.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/labelentry.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/spinbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/autoload.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/itk/incr_tk.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/hierarchy.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/treeview.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/checkbutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/textwindow.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/root.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/frame.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tscale.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/font.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/buttonbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/listbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/radiobutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/textimage.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/button.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/sizegrip.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/checkbutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/scrollbar.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/notebook.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/label.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/ttk_selector.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tbutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/sample/tkextlib/tile/toolbutton.tcl?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tprogressbar.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tlabelframe.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tframe.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tcllib/datefield.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/scrollbar.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/label.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/checkbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/radiobutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tcllib/ctext.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/entry.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/button.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tseparator.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tpaned.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/busy.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/panedwindow.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/entry.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/menu.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/menubar.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/bwidget/dialog.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tcheckbutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/text.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/button.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/message.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/style.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/labelframe.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/winpkg.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/label.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/radiobox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/scale.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/vu/spinbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/menuspec.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/canvas.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/composite.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tlabel.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/textmark.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/toplevel.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/spinbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tscrollbar.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tradiobutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tcombobox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/selectionbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/scrollbox.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tktrans/tktrans.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/frame.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/texttag.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/variable.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tmenubutton.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tile/tentry.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/iwidgets/tabset.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/tcllib/autoscroll.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/tile/toplevel.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tk/optiondb.rb?r1=15618&r2=15617&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ext/tk/lib/tkextlib/blt/eps.rb?r1=15618&r2=15617&diff_format=u Index: ChangeLog =================================================================== --- ChangeLog (revision 15617) +++ ChangeLog (revision 15618) @@ -1,3 +1,25 @@ +Thu Feb 28 03:03:32 2008 Hidetoshi NAGAI <nagai@a...> + + * ext/tk/lib/tk.rb, ext/tk/lib/*: make default widget set + switchable between Tk (standard Tcl/Tk widget set) and + Ttk (Tile). Initial default widget set is Tk. Now, toplevel + widget classes are removed and defined as aliases. + For example, "TkButton" is an alias of the "Tk::Button" class. + Those aliases are replaced when switching default widget set. + "Tk.default_widget_set=" is the method for switching default + widget set. "Tk.default_widget_set = :Ttk" defines Ttk (Tile) + widget set as default. It means that "TkButton" denotes + "Tk::Tile::Button" class. And then, "TkButton.new" creates + a Tk::Tile::Button widget. Of course, you can back to use + standard Tk widgets as the default widget set by calling + "Tk.default_widget_set = :Tk", whenever you want. Based on + thie feature, you can use Ttk widget styling engine on your + old Ruby/Tk application without modifying its source, if you + don'tuse widget options unsupported on Ttk widgets (At first, + call "Tk.default_widget_set = :Ttk", and next load and run + your application). + This is one step for supporting Tcl/Tk8.5 features. + Wed Feb 27 22:55:42 2008 NARUSE, Yui <naruse@r...> * string.c (rb_str_coderange_scan_restartable): coderange scaning @@ -5079,7 +5101,7 @@ * bootstraptest/test_io.rb, test_knownbug.rb: move a fixed test. -Fri Dec 21 17:56:30 2007 <nagai@o...> +Fri Dec 21 17:56:30 2007 Hidetoshi NAGAI <nagai@a...> * ext/tk/tcltklib.c: provisional support on Ruby-VM. Index: ext/tk/sample/tkextlib/tile/toolbutton.tcl =================================================================== --- ext/tk/sample/tkextlib/tile/toolbutton.tcl (revision 15617) +++ ext/tk/sample/tkextlib/tile/toolbutton.tcl (revision 15618) @@ -4,6 +4,18 @@ # Demonstration of custom widget styles. # +set tile_ver [package require tile] +if {[package vcompare $tile_ver 0.8] >= 0} { + set style ::ttk::style +} { + set style style +} +if {[package vcompare $tile_ver 0.7] >= 0} { + set conf_subcmd configure +} { + set conf_subcmd default +} + # # ~ BACKGROUND # @@ -42,7 +54,8 @@ # style; see demo.tcl.) # -style theme settings "step" { +#$style theme settings "step" { +$style theme settings "alt" { # # First, we use [style layout] to define what elements to @@ -51,7 +64,7 @@ # and a label. (See also the TScrollbar layout definition # in demos/blue.tcl for a more complicated layout spec.) # - style layout Toolbutton { + $style layout Toolbutton { Toolbutton.background Toolbutton.border -children { Toolbutton.padding -children { @@ -68,7 +81,7 @@ # For many options (like -background), the defaults # inherited from the parent style are sufficient. # - style default Toolbutton -width 0 -padding 1 -relief flat -borderwidth 2 + $style $conf_subcmd Toolbutton -width 0 -padding 1 -relief flat -borderwidth 2 # # Finally, use [style map] to specify state-specific @@ -78,7 +91,7 @@ # over the widget). Each state-value pair is checked # in order, and the first matching state takes precedence. # - style map Toolbutton -relief { + $style map Toolbutton -relief { disabled flat selected sunken pressed sunken @@ -93,19 +106,19 @@ # design decisions from an aesthetic standpoint.) # if {![catch {package require tile::theme::blue}]} { -style theme settings "blue" { +$style theme settings "blue" { # # Default values: # - style default Toolbutton \ + $style $conf_subcmd Toolbutton \ -width 0 -relief flat -borderwidth 2 \ -background #6699CC -foreground #000000 ; # # Configure state-specific values for -relief, as before: # - style map Toolbutton -relief { + $style map Toolbutton -relief { disabled flat selected sunken pressed sunken @@ -116,8 +129,8 @@ # Adjust the -padding at the same time, to enhance # the raised/sunken illusion: # - style default Toolbutton -padding 4 - style map Toolbutton -padding { + $style $conf_subcmd Toolbutton -padding 4 + $style map Toolbutton -padding { disabled {4} selected {6 6 2 2} pressed {6 6 2 2} @@ -128,7 +141,7 @@ # ... and change the foreground and background colors # when the mouse cursor is over the widget: # - style map Toolbutton -background { + $style map Toolbutton -background { active #008800 } -foreground { active #FFFFFF Index: ext/tk/lib/tk.rb =================================================================== --- ext/tk/lib/tk.rb (revision 15617) +++ ext/tk/lib/tk.rb (revision 15618) @@ -935,7 +935,7 @@ def _bindinfo(what, context=nil) if context - tk_call_without_enc(*what+["<#{tk_event_sequence(context)}>"]) .collect {|cmdline| + tk_call_without_enc(*what+["<#{tk_event_sequence(context)}>"]).each_line.collect {|cmdline| =begin if cmdline =~ /^rb_out\S* (c(?:_\d+_)?\d+)\s+(.*)$/ #[Tk_CMDTBL[$1], $2] @@ -4102,6 +4102,14 @@ include TkWinfo extend TkBindCore + @@WIDGET_INSPECT_FULL = false + def TkWindow._widget_inspect_full_? + @@WIDGET_INSPECT_FULL + end + def TkWindow._widget_inspect_full_=(mode) + @@WIDGET_INSPECT_FULL = (mode && true) || false + end + TkCommandNames = [].freeze ## ==> If TkCommandNames[0] is a string (not a null string), ## assume the string is a Tcl/Tk's create command of the widget class. @@ -4204,8 +4212,12 @@ private :create_self def inspect - str = super - str[0..(str.index(' '))] << '@path=' << @path.inspect << '>' + if @@WIDGET_INSPECT_FULL + super + else + str = super + str[0..(str.index(' '))] << '@path=' << @path.inspect << '>' + end end def exist? @@ -4717,6 +4729,7 @@ bindtags(bindtags().unshift(tag)) end end +TkWidget = TkWindow # freeze core modules #TclTkLib.freeze Index: ext/tk/lib/tkextlib/iwidgets/hierarchy.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/hierarchy.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/hierarchy.rb (revision 15618) @@ -207,7 +207,7 @@ self end - # based on TkText widget + # based on Tk::Text widget def bbox(index) list(tk_send_without_enc('bbox', _get_eval_enc_str(index))) Index: ext/tk/lib/tkextlib/iwidgets/tabset.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/tabset.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/tabset.rb (revision 15618) @@ -96,4 +96,48 @@ tk_call(@path, 'select', index(idx)) self end + + def show_tab(idx) + if index(idx) == 0 + self.start = 0 + return + end + + reutrn unless @canvas ||= self.winfo_children[0] + + delta = 1 if (delta = cget(:gap)) == 'overlap' || + (delta = self.winfo_pixels(delta) + 1) <= 0 + + case cget(:tabpos) + when 's', 'n' + if (head = tabcget(idx, :left)) < 0 + self.start -= head + return + end + tabs_size = @canvas.winfo_width + tab_start, tab_end = @canvas . + find_overlapping(head, 0, head + delta, @canvas.winfo_height) . + find_all{|id| @canvas.itemtype(id) == TkcPolygon} . + map!{|id| bbox = @canvas.bbox(id); [bbox[0], bbox[2]]} . max + + when 'e', 'w' + if (head = tabcget(idx, :top)) < 0 + self.start -= head + return + end + tabs_size = @canvas.winfo_height + tab_start, tab_end = @canvas . + find_overlapping(0, head, @canvas.winfo_width, head + delta) . + find_all{|id| @canvas.itemtype(id) == TkcPolygon} . + map!{|id| bbox = @canvas.bbox(id); [bbox[1], bbox[3]]} . max + end + + if (size = tab_end - tab_start + 1) > tabs_size + self.start -= tab_start + elsif head + size > tabs_size + self.start -= head + size - tabs_size + end + + self + end end Index: ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/selectiondialog.rb (revision 15618) @@ -49,7 +49,7 @@ self end - # based on TkListbox ( and TkTextWin ) + # based on Tk::Listbox ( and TkTextWin ) def curselection list(tk_send_without_enc('curselection')) end Index: ext/tk/lib/tkextlib/iwidgets/radiobox.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/radiobox.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/radiobox.rb (revision 15618) @@ -85,12 +85,15 @@ self end - def get(idx) - simplelist(tk_call(@path, 'get', index(idx))).collect{|id| - Tk::Itk::Component.id2obj(self, id) - } + def get_tag + ((tag = tk_call_without_enc(@path, 'get')).empty?)? nil: tag end + alias get get_tag + def get_obj + (tag = get_tag)? Tk::Itk::Component.id2obj(self, tag): nil + end + def index(idx) number(tk_call(@path, 'index', tagid(idx))) end Index: ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/tabnotebook.rb (revision 15618) @@ -116,6 +116,11 @@ self end + def show_tab(idx) + @tabset.show_tab(idx) + self + end + def scrollcommand(cmd=Proc.new) configure_cmd 'scrollcommand', cmd self @@ -147,7 +152,12 @@ def view(*index) if index.size == 0 - window(tk_send_without_enc('view')) + idx = num_or_str(tk_send_without_enc('view')) + if idx.kind_of?(Fixnum) && idx < 0 + nil + else + idx + end else tk_send_without_enc('view', *index) self @@ -161,8 +171,8 @@ end alias xview_moveto view_moveto alias yview_moveto view_moveto - def view_scroll(*index) - view('scroll', *index) + def view_scroll(index, what='pages') + view('scroll', index, what) end alias xview_scroll view_scroll alias yview_scroll view_scroll Index: ext/tk/lib/tkextlib/iwidgets/notebook.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/notebook.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/notebook.rb (revision 15618) @@ -146,7 +146,12 @@ def view(*idxs) if idxs.size == 0 - window(tk_send_without_enc('view')) + idx = num_or_str(tk_send_without_enc('view')) + if idx.kind_of?(Fixnum) && idx < 0 + nil + else + idx + end else tk_send_without_enc('view', *idxs) self @@ -160,8 +165,8 @@ end alias xview_moveto view_moveto alias yview_moveto view_moveto - def view_scroll(*idxs) - view('scroll', *idxs) + def view_scroll(index, what='pages') + view('scroll', index, what) end alias xview_scroll view_scroll alias yview_scroll view_scroll Index: ext/tk/lib/tkextlib/iwidgets/checkbox.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/checkbox.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/checkbox.rb (revision 15618) @@ -85,12 +85,24 @@ self end - def get(idx) - simplelist(tk_call(@path, 'get', index(idx))).collect{|id| + def get_tags + simplelist(tk_call_without_enc(@path, 'get')) + end + + def get_objs + simplelist(tk_call_without_enc(@path, 'get')).collect{|id| Tk::Itk::Component.id2obj(self, id) } end + def get(idx=nil) + if idx + bool(tk_call_without_enc(@path, 'get', index(idx))) + else + get_tags + end + end + def index(idx) number(tk_call(@path, 'index', tagid(idx))) end Index: ext/tk/lib/tkextlib/iwidgets/selectionbox.rb =================================================================== --- ext/tk/lib/tkextlib/iwidgets/selectionbox.rb (revision 15617) +++ ext/tk/lib/tkextlib/iwidgets/selectionbox.rb (revision 15618) @@ -59,7 +59,7 @@ self end - # based on TkListbox ( and TkTextWin ) + # based on Tk::Listbox ( and TkTextWin ) def curselection list(tk_send_without_enc('curselection')) end Index: ext/tk/lib/tkextlib/blt/busy.rb =================================================================== --- ext/tk/lib/tkextlib/blt/busy.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/busy.rb (revision 15618) @@ -19,7 +19,7 @@ class Shield < TkWindow def self.shield_path(win) win = window(win) unless win.kind_of?(TkWindow) - if win.kind_of?(TkToplevel) + if win.kind_of?(Tk::Toplevel) win.path + '._Busy' else win.path + '_Busy' Index: ext/tk/lib/tkextlib/blt/eps.rb =================================================================== --- ext/tk/lib/tkextlib/blt/eps.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/eps.rb (revision 15618) @@ -14,7 +14,7 @@ end end -class TkCanvas +class Tk::Canvas alias __BLT_EPS_item_strval_optkeys __item_strval_optkeys def __item_strval_optkeys(id) __BLT_EPS_item_strval_optkeys(id) + [ Index: ext/tk/lib/tkextlib/blt/tile/label.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/label.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/label.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class Label < TkLabel + class Label < Tk::Label TkCommandNames = ['::blt::tile::label'.freeze].freeze end end Index: ext/tk/lib/tkextlib/blt/tile/scrollbar.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/scrollbar.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/scrollbar.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class Scrollbar < TkScrollbar + class Scrollbar < Tk::Scrollbar TkCommandNames = ['::blt::tile::scrollbar'.freeze].freeze end end Index: ext/tk/lib/tkextlib/blt/tile/checkbutton.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/checkbutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/checkbutton.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class CheckButton < TkCheckButton + class CheckButton < Tk::CheckButton TkCommandNames = ['::blt::tile::checkbutton'.freeze].freeze end Checkbutton = CheckButton Index: ext/tk/lib/tkextlib/blt/tile/frame.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/frame.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/frame.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class Frame < TkFrame + class Frame < Tk::Frame TkCommandNames = ['::blt::tile::frame'.freeze].freeze end end Index: ext/tk/lib/tkextlib/blt/tile/radiobutton.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/radiobutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/radiobutton.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class RadioButton < TkRadioButton + class RadioButton < Tk::RadioButton TkCommandNames = ['::blt::tile::radiobutton'.freeze].freeze end Radiobutton = RadioButton Index: ext/tk/lib/tkextlib/blt/tile/toplevel.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/toplevel.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/toplevel.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class Toplevel < TkToplevel + class Toplevel < Tk::Toplevel TkCommandNames = ['::blt::tile::toplevel'.freeze].freeze end end Index: ext/tk/lib/tkextlib/blt/tile/button.rb =================================================================== --- ext/tk/lib/tkextlib/blt/tile/button.rb (revision 15617) +++ ext/tk/lib/tkextlib/blt/tile/button.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk::BLT module Tile - class Button < TkButton + class Button < Tk::Button TkCommandNames = ['::blt::tile::button'.freeze].freeze end end Index: ext/tk/lib/tkextlib/itk/incr_tk.rb =================================================================== --- ext/tk/lib/tkextlib/itk/incr_tk.rb (revision 15617) +++ ext/tk/lib/tkextlib/itk/incr_tk.rb (revision 15618) @@ -156,7 +156,7 @@ master = master.to_s end return id unless ComponentID_TBL.key?(master) - (ComponentID_TBL.key?(id))? ComponentID_TBL[master][id]: id + (ComponentID_TBL[master].key?(id))? ComponentID_TBL[master][id]: id end def self.new(master, component=nil) Index: ext/tk/lib/tkextlib/tcllib/datefield.rb =================================================================== --- ext/tk/lib/tkextlib/tcllib/datefield.rb (revision 15617) +++ ext/tk/lib/tkextlib/tcllib/datefield.rb (revision 15618) @@ -24,7 +24,7 @@ module Tk module Tcllib - class Datefield < TkEntry + class Datefield < Tk::Entry PACKAGE_NAME = 'datefield'.freeze def self.package_name PACKAGE_NAME Index: ext/tk/lib/tkextlib/tcllib/ctext.rb =================================================================== --- ext/tk/lib/tkextlib/tcllib/ctext.rb (revision 15617) +++ ext/tk/lib/tkextlib/tcllib/ctext.rb (revision 15618) @@ -15,7 +15,7 @@ module Tk module Tcllib - class CText < TkText + class CText < Tk::Text PACKAGE_NAME = 'ctext'.freeze def self.package_name PACKAGE_NAME Index: ext/tk/lib/tkextlib/tcllib/autoscroll.rb =================================================================== --- ext/tk/lib/tkextlib/tcllib/autoscroll.rb (revision 15617) +++ ext/tk/lib/tkextlib/tcllib/autoscroll.rb (revision 15618) @@ -108,7 +108,7 @@ end end -class TkScrollbar +class Tk::Scrollbar def autoscroll # Arranges for the already existing scrollbar to be mapped # and unmapped as needed. Index: ext/tk/lib/tkextlib/tcllib/ip_entry.rb =================================================================== --- ext/tk/lib/tkextlib/tcllib/ip_entry.rb (revision 15617) +++ ext/tk/lib/tkextlib/tcllib/ip_entry.rb (revision 15618) @@ -18,7 +18,7 @@ module Tk module Tcllib - class IP_Entry < TkEntry + class IP_Entry < Tk::Entry PACKAGE_NAME = 'ipentry'.freeze def self.package_name PACKAGE_NAME Index: ext/tk/lib/tkextlib/tcllib/plotchart.rb =================================================================== --- ext/tk/lib/tkextlib/tcllib/plotchart.rb (revision 15617) +++ ext/tk/lib/tkextlib/tcllib/plotchart.rb (revision 15618) @@ -225,7 +225,7 @@ end ############################ - class XYPlot < TkCanvas + class XYPlot < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -247,7 +247,7 @@ @xaxis = args.shift @yaxis = args.shift - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -337,7 +337,7 @@ end ############################ - class PolarPlot < TkCanvas + class PolarPlot < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -356,7 +356,7 @@ @radius_data = args.shift - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -395,7 +395,7 @@ Polarplot = PolarPlot ############################ - class IsometricPlot < TkCanvas + class IsometricPlot < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -430,7 +430,7 @@ @stepsize = args.shift end - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -475,7 +475,7 @@ Isometricplot = IsometricPlot ############################ - class Plot3D < TkCanvas + class Plot3D < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -500,7 +500,7 @@ @yaxis = args.shift @zaxis = args.shift - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -557,7 +557,7 @@ end ############################ - class Piechart < TkCanvas + class Piechart < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -566,7 +566,7 @@ ].freeze def initialize(*args) # args := ([parent] [, keys]) - if args[0].kind_of?(TkCanvas) + if args[0].kind_of?(Tk::Canvas) parent = args.shift @path = parent.path else @@ -588,7 +588,7 @@ end ############################ - class Barchart < TkCanvas + class Barchart < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -626,7 +626,7 @@ @series_size = args.shift end - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -672,7 +672,7 @@ end ############################ - class Timechart < TkCanvas + class Timechart < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -699,7 +699,7 @@ @time_end = args.shift @items = args.shift - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget @@ -733,7 +733,7 @@ end ############################ - class Gnattchart < TkCanvas + class Gnattchart < Tk::Canvas include ChartMethod TkCommandNames = [ @@ -772,7 +772,7 @@ @text_width = None end - if parent.kind_of?(TkCanvas) + if parent.kind_of?(Tk::Canvas) @path = parent.path else super(parent, *args) # create canvas widget Index: ext/tk/lib/tkextlib/bwidget/label.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/label.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/label.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk module BWidget - class Label < TkLabel + class Label < Tk::Label end end end Index: ext/tk/lib/tkextlib/bwidget/spinbox.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/spinbox.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/spinbox.rb (revision 15618) @@ -10,7 +10,7 @@ module Tk module BWidget - class SpinBox < TkEntry + class SpinBox < Tk::Entry end end end Index: ext/tk/lib/tkextlib/bwidget/buttonbox.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/buttonbox.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/buttonbox.rb (revision 15618) @@ -31,7 +31,7 @@ name = tagOrId[:name] return index(name) unless name.empty? end - if tagOrId.kind_of?(TkButton) + if tagOrId.kind_of?(Tk::Button) return index(tagOrId[:text]) end # index(tagOrId.to_s) @@ -54,7 +54,7 @@ name = idx[:name] idx = name unless name.empty? end - if idx.kind_of?(TkButton) + if idx.kind_of?(Tk::Button) idx = idx[:text] end number(tk_send('index', idx.to_s)) Index: ext/tk/lib/tkextlib/bwidget/dialog.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/dialog.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/dialog.rb (revision 15618) @@ -103,7 +103,7 @@ name = tagOrId[:name] return index(name) unless name.empty? end - if tagOrId.kind_of?(TkButton) + if tagOrId.kind_of?(Tk::Button) return index(tagOrId[:text]) end # index(tagOrId.to_s) Index: ext/tk/lib/tkextlib/bwidget/entry.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/entry.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/entry.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk module BWidget - class Entry < TkEntry + class Entry < Tk::Entry end end end Index: ext/tk/lib/tkextlib/bwidget/labelentry.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/labelentry.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/labelentry.rb (revision 15618) @@ -11,7 +11,7 @@ module Tk module BWidget - class LabelEntry < TkEntry + class LabelEntry < Tk::Entry end end end Index: ext/tk/lib/tkextlib/bwidget/button.rb =================================================================== --- ext/tk/lib/tkextlib/bwidget/button.rb (revision 15617) +++ ext/tk/lib/tkextlib/bwidget/button.rb (revision 15618) @@ -9,7 +9,7 @@ module Tk module BWidget - class Button < TkButton + class Button < Tk::Button end end end Index: ext/tk/lib/tkextlib/tktrans/tktrans.rb =================================================================== --- ext/tk/lib/tkextlib/tktrans/tktrans.rb (revision 15617) +++ ext/tk/lib/tkextlib/tktrans/tktrans.rb (revision 15618) @@ -39,7 +39,7 @@ end end -class TkRoot +class Tk::Root undef tktrans_set_image, tktrans_get_image def tktrans_set_image(img) @@ -51,7 +51,7 @@ end end -class TkToplevel +class Tk::Toplevel undef tktrans_set_image, tktrans_get_image def tktrans_set_image(img) Index: ext/tk/lib/tkextlib/vu/spinbox.rb =================================================================== --- ext/tk/lib/tkextlib/vu/spinbox.rb (revision 15617) +++ ext/tk/lib/tkextlib/vu/spinbox.rb (revision 15618) @@ -17,6 +17,6 @@ module Tk module Vu - Spinbox = TkSpinbox + Spinbox = Tk::Spinbox end end Index: ext/tk/lib/tkextlib/tile/tprogressbar.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tprogressbar.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tprogressbar.rb (revision 15618) @@ -13,6 +13,9 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Progressbar, :TkProgressbar) + + class Tk::Tile::TProgressbar include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/tradiobutton.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tradiobutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tradiobutton.rb (revision 15618) @@ -7,7 +7,7 @@ module Tk module Tile - class TRadioButton < TkRadioButton + class TRadioButton < Tk::RadioButton end TRadiobutton = TRadioButton RadioButton = TRadioButton @@ -15,7 +15,11 @@ end end -class Tk::Tile::TRadioButton < TkRadioButton +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Radiobutton, + :TkRadiobutton, :TkRadioButton) + + +class Tk::Tile::TRadioButton < Tk::RadioButton include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/tlabelframe.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tlabelframe.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tlabelframe.rb (revision 15618) @@ -9,10 +9,16 @@ module Tile class TLabelframe < Tk::Tile::TFrame end - Labelframe = TLabelframe + TLabelFrame = TLabelframe + Labelframe = TLabelframe + LabelFrame = TLabelframe end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Labelframe, + :TkLabelframe, :TkLabelFrame) + + class Tk::Tile::TLabelframe < Tk::Tile::TFrame include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/tframe.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tframe.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tframe.rb (revision 15618) @@ -7,13 +7,16 @@ module Tk module Tile - class TFrame < TkFrame + class TFrame < Tk::Frame end Frame = TFrame end end -class Tk::Tile::TFrame < TkFrame +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Frame, :TkFrame) + + +class Tk::Tile::TFrame < Tk::Frame include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/tmenubutton.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tmenubutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tmenubutton.rb (revision 15618) @@ -7,13 +7,19 @@ module Tk module Tile - class TMenubutton < TkMenubutton + class TMenubutton < Tk::Menubutton end - Menubutton = TMenubutton + TMenuButton = TMenubutton + Menubutton = TMenubutton + MenuButton = TMenubutton end end -class Tk::Tile::TMenubutton < TkMenubutton +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Menubutton, + :TkMenubutton, :TkMenuButton) + + +class Tk::Tile::TMenubutton < Tk::Menubutton include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/tseparator.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tseparator.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tseparator.rb (revision 15618) @@ -13,6 +13,9 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Separator, :TkSeparator) + + class Tk::Tile::TSeparator < TkWindow include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/tentry.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tentry.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tentry.rb (revision 15618) @@ -7,13 +7,16 @@ module Tk module Tile - class TEntry < TkEntry + class TEntry < Tk::Entry end Entry = TEntry end end -class Tk::Tile::TEntry < TkEntry +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Entry, :TkEntry) + + +class Tk::Tile::TEntry < Tk::Entry include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/treeview.rb =================================================================== --- ext/tk/lib/tkextlib/tile/treeview.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/treeview.rb (revision 15618) @@ -12,6 +12,9 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Treeview, :TkTreeview) + + module Tk::Tile::TreeviewConfig include TkItemConfigMethod Index: ext/tk/lib/tkextlib/tile/tcombobox.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tcombobox.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tcombobox.rb (revision 15618) @@ -13,6 +13,9 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Combobox, :TkCombobox) + + class Tk::Tile::TCombobox < Tk::Tile::TEntry include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/sizegrip.rb =================================================================== --- ext/tk/lib/tkextlib/tile/sizegrip.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/sizegrip.rb (revision 15618) @@ -9,9 +9,13 @@ module Tile class SizeGrip < TkWindow end + Sizegrip = SizeGrip end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Sizegrip, :TkSizegrip, :TkSizeGrip) + + class Tk::Tile::SizeGrip < TkWindow include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/tcheckbutton.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tcheckbutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tcheckbutton.rb (revision 15618) @@ -7,7 +7,7 @@ module Tk module Tile - class TCheckButton < TkCheckButton + class TCheckButton < Tk::CheckButton end TCheckbutton = TCheckButton CheckButton = TCheckButton @@ -15,7 +15,11 @@ end end -class Tk::Tile::TCheckButton < TkCheckButton +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Checkbutton, + :TkCheckbutton, :TkCheckButton) + + +class Tk::Tile::TCheckButton < Tk::CheckButton include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/tbutton.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tbutton.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tbutton.rb (revision 15618) @@ -7,13 +7,16 @@ module Tk module Tile - class TButton < TkButton + class TButton < Tk::Button end Button = TButton end end -class Tk::Tile::TButton < TkButton +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Button, :TkButton) + + +class Tk::Tile::TButton < Tk::Button include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/style.rb =================================================================== --- ext/tk/lib/tkextlib/tile/style.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/style.rb (revision 15618) @@ -52,12 +52,30 @@ style = '.' unless style if keys && keys != None - tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys)) + if keys.kind_of?(Hash) + tk_call(TkCommandNames[0], 'map', style, *hash_kv(keys)) + else + simplelist(tk_call(TkCommandNames[0], 'map', style, '-' << keys.to_s)) + end else - tk_call(TkCommandNames[0], 'map', style) + ret = {} + Hash[*(simplelist(tk_call(TkCommandNames[0], 'map', style)))].each{|k, v| + ret[k[1..-1]] = list(v) + } + ret end end + alias map_configure map + def map_configinfo(style=nil, key=None) + style = '.' unless style + map(style, key) + end + + def map_default_configinfo(key=None) + map('.', key) + end + def lookup(style, opt, state=None, fallback_value=None) tk_call(TkCommandNames[0], 'lookup', style, '-' << opt.to_s, state, fallback_value) @@ -92,16 +110,20 @@ end def theme_create(name, keys=nil) + name = name.to_s if keys && keys != None tk_call(TkCommandNames[0], 'theme', 'create', name, *hash_kv(keys)) else tk_call(TkCommandNames[0], 'theme', 'create', name) end + name end def theme_settings(name, cmd=nil, &b) + name = name.to_s cmd = Proc.new(&b) if !cmd && b tk_call(TkCommandNames[0], 'theme', 'settings', name, cmd) + name end def theme_names() @@ -109,6 +131,8 @@ end def theme_use(name) + name = name.to_s tk_call(TkCommandNames[0], 'theme', 'use', name) + name end end Index: ext/tk/lib/tkextlib/tile/tlabel.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tlabel.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tlabel.rb (revision 15618) @@ -7,13 +7,16 @@ module Tk module Tile - class TLabel < TkLabel + class TLabel < Tk::Label end Label = TLabel end end -class Tk::Tile::TLabel < TkLabel +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Label, :TkLabel) + + +class Tk::Tile::TLabel < Tk::Label include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile/tnotebook.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tnotebook.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tnotebook.rb (revision 15618) @@ -13,6 +13,9 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Notebook, :TkNotebook) + + class Tk::Tile::TNotebook < TkWindow ################################ include TkItemConfigMethod Index: ext/tk/lib/tkextlib/tile/tscrollbar.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tscrollbar.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tscrollbar.rb (revision 15618) @@ -7,13 +7,16 @@ module Tk module Tile - class TScrollbar < TkScrollbar + class TScrollbar < Tk::Scrollbar end Scrollbar = TScrollbar end end -class Tk::Tile::TScrollbar < TkScrollbar +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scrollbar, :TkScrollbar) + + +class Tk::Tile::TScrollbar < Tk::Scrollbar include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE @@ -47,3 +50,5 @@ private :create_self end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::XScrollbar, :TkXScrollbar) +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::YScrollbar, :TkYScrollbar) Index: ext/tk/lib/tkextlib/tile/tpaned.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tpaned.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tpaned.rb (revision 15618) @@ -13,6 +13,10 @@ end end +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Panedwindow, + :TkPanedwindow, :TkPanedWindow) + + class Tk::Tile::TPaned < TkWindow include Tk::Tile::TileWidget Index: ext/tk/lib/tkextlib/tile/tscale.rb =================================================================== --- ext/tk/lib/tkextlib/tile/tscale.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile/tscale.rb (revision 15618) @@ -7,7 +7,7 @@ module Tk module Tile - class TScale < TkScale + class TScale < Tk::Scale end Scale = TScale @@ -17,7 +17,10 @@ end end -class Tk::Tile::TScale < TkScale +Tk.__set_toplevel_aliases__(:Ttk, Tk::Tile::Scale, :TkScale) + + +class Tk::Tile::TScale < Tk::Scale include Tk::Tile::TileWidget if Tk::Tile::USE_TTK_NAMESPACE Index: ext/tk/lib/tkextlib/tile.rb =================================================================== --- ext/tk/lib/tkextlib/tile.rb (revision 15617) +++ ext/tk/lib/tkextlib/tile.rb (revision 15618) @@ -4,6 +4,7 @@ # require 'tk' +require 'tk/ttk_selector' # call setup script for general 'tkextlib' libraries require 'tkextlib/setup.rb' @@ -262,6 +263,9 @@ autoload :TSquare, 'tkextlib/tile/tsquare' autoload :Square, 'tkextlib/tile/tsquare' + autoload :SizeGrip, 'tkextlib/tile/sizegrip' + autoload :Sizegrip, 'tkextlib/tile/sizegrip' + autoload :Treeview, 'tkextlib/tile/treeview' autoload :Style, 'tkextlib/tile/style' Index: ext/tk/lib/tk/optiondb.rb =================================================================== --- ext/tk/lib/tk/optiondb.rb (revision 15617) +++ ext/tk/lib/tk/optiondb.rb (revision 15618) @@ -362,7 +362,7 @@ def new_proc_class_random(klass, func, safe = 4, add = false, &b) eval_under_random_base(){ - TkOption.new_proc_class(klass, func, safe, add, self, &b) + TkOptionDB.new_proc_class(klass, func, safe, add, self, &b) } end module_function :new_proc_class_random Index: ext/tk/lib/tk/toplevel.rb =================================================================== --- ext/tk/lib/tk/toplevel.rb (revision 15617) +++ ext/tk/lib/tk/toplevel.rb (revision 15618) @@ -258,4 +258,5 @@ end end -TkToplevel = Tk::Toplevel unless Object.const_defined? :TkToplevel +#TkToplevel = Tk::Toplevel unless Object.const_defined? :TkToplevel +Tk.__set_toplevel_aliases__(:Tk, Tk::Toplevel, :TkToplevel) Index: ext/tk/lib/tk/frame.rb =================================================================== --- ext/tk/lib/tk/frame.rb (revision 15617) +++ ext/tk/lib/tk/frame.rb (revision 15618) @@ -127,4 +127,5 @@ end end -TkFrame = Tk::Frame unless Object.const_defined? :TkFrame +#TkFrame = Tk::Frame unless Object.const_defined? :TkFrame +Tk.__set_toplevel_aliases__(:Tk, Tk::Frame, :TkFrame) Index: ext/tk/lib/tk/labelframe.rb =================================================================== --- ext/tk/lib/tk/labelframe.rb (revision 15617) +++ ext/tk/lib/tk/labelframe.rb (revision 15618) @@ -4,7 +4,7 @@ require 'tk' require 'tk/frame' -class Tk::LabelFrame<TkFrame +class Tk::LabelFrame<Tk::Frame TkCommandNames = ['labelframe'.freeze].freeze WidgetClassName = 'Labelframe'.freeze WidgetClassNames[WidgetClassName] = self @@ -23,6 +23,7 @@ private :__val2ruby_optkeys end -Tk::Labelframe = TkLabelFrame -TkLabelFrame = Tk::LabelFrame unless Object.const_defined? :TkLabelFrame -TkLabelframe = Tk::Labelframe unless Object.const_defined? :TkLabelframe +Tk::Labelframe = Tk::LabelFrame +#TkLabelFrame = Tk::LabelFrame unless Object.const_defined? :TkLabelFrame +#TkLabelframe = Tk::Labelframe unless Object.const_defined? :TkLabelframe +Tk.__set_toplevel_aliases__(:Tk, Tk::LabelFrame, :TkLabelFrame, :TkLabelframe) Index: ext/tk/lib/tk/scrollbar.rb =================================================================== --- ext/tk/lib/tk/scrollbar.rb (revision 15617) +++ ext/tk/lib/tk/scrollbar.rb (revision 15618) @@ -105,10 +105,11 @@ end end -TkScrollbar = Tk::Scrollbar unless Object.const_defined? :TkScrollbar +#TkScrollbar = Tk::Scrollbar unless Object.const_defined? :TkScrollbar +Tk.__set_toplevel_aliases__(:Tk, Tk::Scrollbar, :TkScrollbar) -class Tk::XScrollbar<TkScrollbar +class Tk::XScrollbar<Tk::Scrollbar def create_self(keys) keys = {} unless keys keys['orient'] = 'horizontal' @@ -117,10 +118,11 @@ private :create_self end -TkXScrollbar = Tk::XScrollbar unless Object.const_defined? :TkXScrollbar +#TkXScrollbar = Tk::XScrollbar unless Object.const_defined? :TkXScrollbar +Tk.__set_toplevel_aliases__(:Tk, Tk::XScrollbar, :TkXScrollbar) -class Tk::YScrollbar<TkScrollbar +class Tk::YScrollbar<Tk::Scrollbar def create_self(keys) keys = {} unless keys keys['orient'] = 'vertical' @@ -129,4 +131,5 @@ private :create_self end -TkYScrollbar = Tk::YScrollbar unless Object.const_defined? :TkYScrollbar +#TkYScrollbar = Tk::YScrollbar unless Object.const_defined? :TkYScrollbar +Tk.__set_toplevel_aliases__(:Tk, Tk::YScrollbar, :TkYScrollbar) Index: ext/tk/lib/tk/text.rb =================================================================== --- ext/tk/lib/tk/text.rb (revision 15617) +++ ext/tk/lib/tk/text.rb (revision 15618) @@ -73,9 +73,9 @@ mod = mod.to_s if mod =~ /^\s*[+-]?\d/ - TkText::IndexString.new(String.new(id) << ' + ' << mod) + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod) else - TkText::IndexString.new(String.new(id) << ' ' << mod) + Tk::Text::IndexString.new(String.new(id) << ' ' << mod) end end @@ -84,20 +84,20 @@ mod = mod.to_s if mod =~ /^\s*[+-]?\d/ - TkText::IndexString.new(String.new(id) << ' - ' << mod) + Tk::Text::IndexString.new(String.new(id) << ' - ' << mod) elsif mod =~ /^\s*[-]\s+(\d.*)$/ - TkText::IndexString.new(String.new(id) << ' - -' << $1) + Tk::Text::IndexString.new(String.new(id) << ' - -' << $1) else - TkText::IndexString.new(String.new(id) << ' ' << mod) + Tk::Text::IndexString.new(String.new(id) << ' ' << mod) end end def chars(mod) fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' chars') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' chars') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' chars') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' chars') end end alias char chars @@ -106,9 +106,9 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display chars') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display chars') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display chars') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display chars') end end alias display_char display_chars @@ -117,9 +117,9 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any chars') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any chars') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any chars') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any chars') end end alias any_char any_chars @@ -128,9 +128,9 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' indices') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' indices') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' indices') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' indices') end end @@ -138,9 +138,9 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display indices') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display indices') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display indices') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display indices') end end @@ -148,18 +148,18 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any indices') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any indices') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any indices') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any indices') end end def lines(mod) fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' lines') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' lines') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' lines') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' lines') end end alias line lines @@ -168,9 +168,9 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display_lines') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' display_lines') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display lines') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' display lines') end end alias display_line display_lines @@ -179,43 +179,43 @@ # Tk8.5 feature fail ArgumentError, 'expect Integer' unless mod.kind_of?(Integer) if mod < 0 - TkText::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any_lines') + Tk::Text::IndexString.new(String.new(id) << ' ' << mod.to_s << ' any_lines') else - TkText::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any lines') + Tk::Text::IndexString.new(String.new(id) << ' + ' << mod.to_s << ' any lines') end end alias any_line any_lines def linestart - TkText::IndexString.new(String.new(id) << ' linestart') + Tk::Text::IndexString.new(String.new(id) << ' linestart') end def lineend - TkText::IndexString.new(String.new(id) << ' lineend') + Tk::Text::IndexString.new(String.new(id) << ' lineend') end def display_linestart # Tk8.5 feature - TkText::IndexString.new(String.new(id) << ' display linestart') + Tk::Text::IndexString.new(String.new(id) << ' display linestart') end def display_lineend # Tk8.5 feature - TkText::IndexString.new(String.new(id) << ' display lineend') + Tk::Text::IndexString.new(String.new(id) << ' display lineend') end def wordstart - TkText::IndexString.new(String.new(id) << ' wordstart') + Tk::Text::IndexString.new(String.new(id) << ' wordstart') end def wordend - TkText::IndexString.new(String.new(id) << ' wordend') + Tk::Text::IndexString.new(String.new(id) << ' wordend') end def display_wordstart # Tk8.5 feature - TkText::IndexString.new(String.new(id) << ' display wordstart') + Tk::Text::IndexString.new(String.new(id) << ' display wordstart') end def display_wordend # Tk8.5 feature - TkText::IndexString.new(String.new(id) << ' display wordend') + Tk::Text::IndexString.new(String.new(id) << ' display wordend') end end @@ -284,16 +284,16 @@ private :__strval_optkeys def self.at(x, y) - TkText::IndexString.at(x, y) + Tk::Text::IndexString.at(x, y) end def at(x, y) - TkText::IndexString.at(x, y) + Tk::Text::IndexString.at(x, y) end def index(idx) - TkText::IndexString.new(tk_send_without_enc('index', - _get_eval_enc_str(idx))) + Tk::Text::IndexString.new(tk_send_without_enc('index', + _get_eval_enc_str(idx))) end def get_displaychars(*index) @@ -967,7 +967,7 @@ false, true) r = [] while key=l.shift - r.push [TkText::IndexString.new(key), TkText::IndexString.new(l.shift)] + r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)] end r end @@ -977,7 +977,7 @@ _get_eval_enc_str(tag), _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| - TkText::IndexString.new(idx) + Tk::Text::IndexString.new(idx) } end @@ -986,7 +986,7 @@ _get_eval_enc_str(tag), _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| - TkText::IndexString.new(idx) + Tk::Text::IndexString.new(idx) } end @@ -1236,7 +1236,7 @@ if ret == "" nil else - TkText::IndexString.new(ret) + Tk::Text::IndexString.new(ret) end end @@ -1271,7 +1271,7 @@ if ret == "" nil else - TkText::IndexString.new(ret) + Tk::Text::IndexString.new(ret) end end @@ -1460,10 +1460,10 @@ # retrieve index idx = str.index(/ /, i) if idx - result.push(TkText::IndexString.new(str[i..(idx-1)])) + result.push(Tk::Text::IndexString.new(str[i..(idx-1)])) i = idx + 1 else - result.push(TkText::IndexString.new(str[i..-1])) + result.push(Tk::Text::IndexString.new(str[i..-1])) break end end @@ -1531,15 +1531,16 @@ end end -TkText = Tk::Text unless Object.const_defined? :TkText +#TkText = Tk::Text unless Object.const_defined? :TkText +Tk.__set_toplevel_aliases__(:Tk, Tk::Text, :TkText) ####################################### -class TkText::Peer < TkText +class Tk::Text::Peer < Tk::Text # Tk8.5 feature def initialize(text, parent=nil, keys={}) - unless text.kind_of?(TkText) + unless text.kind_of?(Tk::Text) fail ArgumentError, "TkText is expected for 1st argument" end @src_text = text Index: ext/tk/lib/tk/listbox.rb =================================================================== --- ext/tk/lib/tk/listbox.rb (revision 15617) +++ ext/tk/lib/tk/listbox.rb (revision 15618) @@ -278,4 +278,5 @@ =end end -TkListbox = Tk::Listbox unless Object.const_defined? :TkListbox +#TkListbox = Tk::Listbox unless Object.const_defined? :TkListbox +Tk.__set_toplevel_aliases__(:Tk, Tk::Listbox, :TkListbox) Index: ext/tk/lib/tk/message.rb =================================================================== --- ext/tk/lib/tk/message.rb (revision 15617) +++ ext/tk/lib/tk/message.rb (revision 15618) @@ -4,7 +4,7 @@ require 'tk' require 'tk/label' -class Tk::Message<TkLabel +class Tk::Message<Tk::Label TkCommandNames = ['message'.freeze].freeze WidgetClassName = 'Message'.freeze WidgetClassNames[WidgetClassName] = self @@ -18,4 +18,5 @@ private :create_self end -TkMessage = Tk::Message unless Object.const_defined? :TkMessage +#TkMessage = Tk::Message unless Object.const_defined? :TkMessage +Tk.__set_toplevel_aliases__(:Tk, Tk::Message, :TkMessage) Index: ext/tk/lib/tk/scale.rb =================================================================== --- ext/tk/lib/tk/scale.rb (revision 15617) +++ ext/tk/lib/tk/scale.rb (revision 15618) @@ -85,4 +85,5 @@ end end -TkScale = Tk::Scale unless Object.const_defined? :TkScale +#TkScale = Tk::Scale unless Object.const_defined? :TkScale +Tk.__set_toplevel_aliases__(:Tk, Tk::Scale, :TkScale) Index: ext/tk/lib/tk/entry.rb =================================================================== --- ext/tk/lib/tk/entry.rb (revision 15617) +++ ext/tk/lib/tk/entry.rb (revision 15618) @@ -7,7 +7,7 @@ require 'tk/scrollable' require 'tk/validation' -class Tk::Entry<TkLabel +class Tk::Entry<Tk::Label include X_Scrollable include TkValidation @@ -115,4 +115,5 @@ end end -TkEntry = Tk::Entry unless Object.const_defined? :TkEntry +#TkEntry = Tk::Entry unless Object.const_defined? :TkEntry +Tk.__set_toplevel_aliases__(:Tk, Tk::Entry, :TkEntry) Index: ext/tk/lib/tk/ttk_selector.rb =================================================================== --- ext/tk/lib/tk/ttk_selector.rb (revision 15617) +++ ext/tk/lib/tk/ttk_selector.rb (revision 15618) @@ -1,55 +1,67 @@ # # ttk_selector # -module Ttk_Selector - @TTK_CLASS_NAMES = {} +###################################### +# toplevel classes/modules +module Tk + @TOPLEVEL_ALIAS_TABLE[:Ttk] = { + :TkButton => 'tkextlib/tile/tbutton', - def self.use_ttk_as_default(mode = true) - if mode # Use Ttk widgets - @TTK_CLASS_NAMES.each{|name, status| - eval("::Tk#{name} = ::Tk::#{(status)? 'Tile::': '::'}#{name}", - TOPLEVEL_BINDING) - } - else # Use standard Tk widagets - @TTK_CLASS_NAMES.each{|name, status| - eval("::Tk#{name} = ::Tk::#{name}", TOPLEVEL_BINDING) - } - end - end + :TkCheckbutton => 'tkextlib/tile/tcheckbutton', + :TkCheckButton => 'tkextlib/tile/tcheckbutton', - def self.add(name) - @TTK_CLASS_NAMES[name] = true - end + # :TkDialog => 'tkextlib/tile/dialog', - def self.remove(name) - @TTK_CLASS_NAMES[name] = false - end -end + :TkEntry => 'tkextlib/tile/tentry', -#-------------------------------------------------------------------- + :TkCombobox => 'tkextlib/tile/tcombobox', -Ttk_Selector.add('Button') -Ttk_Selector.add('Checkbutton') -Ttk_Selector.add('Entry') -##(ttk only) Ttk_Selector.add('Combobox') -##(ttk only) Ttk_Selector.add('Dialog') -Ttk_Selector.add('Frame') -Ttk_Selector.add('Label') -Ttk_Selector.add('Labelframe') -##(std only) Ttk_Selector.add('Listbox') -Ttk_Selector.add('Menubutton') -##(ttk only) Ttk_Selector.add('Notebook') -Ttk_Selector.add('Panedwindow') -##(ttk only) Ttk_Selector.add('Progressbar') -Ttk_Selector.add('Radiobutton') -Ttk_Selector.add('Scale') -##(ttk only) Ttk_Selector.add('Progress') -Ttk_Selector.add('Scrollbar') -Ttk_Selector.add('XScrollbar') -Ttk_Selector.add('YScrollbar') -##(ttk only) Ttk_Selector.add('Separator') -##(ttk only) Ttk_Selector.add('SizeGrip') -##(ttk only) Ttk_Selector.add('Square') -##(ttk only) Ttk_Selector.add('Treeview') + :TkFrame => 'tkextlib/tile/tframe', -#-------------------------------------------------------------------- + :TkLabel => 'tkextlib/tile/tlabel', + + :TkLabelframe => 'tkextlib/tile/tlabelframe', + :TkLabelFrame => 'tkextlib/tile/tlabelframe', + + :TkMenubutton => 'tkextlib/tile/tmenubutton', + :TkMenuButton => 'tkextlib/tile/tmenubutton', + + :TkNotebook => 'tkextlib/tile/tnotebook', + + # :TkPaned => 'tkextlib/tile/tpaned', + :TkPanedwindow => 'tkextlib/tile/tpaned', + :TkPanedWindow => 'tkextlib/tile/tpaned', + + :TkProgressbar => 'tkextlib/tile/tprogressbar', + + :TkRadiobutton => 'tkextlib/tile/tradiobutton', + :TkRadioButton => 'tkextlib/tile/tradiobutton', + + :TkScale => 'tkextlib/tile/tscale', + # :TkProgress => 'tkextlib/tile/tscale', + + :TkScrollbar => 'tkextlib/tile/tscrollbar', + :TkXScrollbar => 'tkextlib/tile/tscrollbar', + :TkYScrollbar => 'tkextlib/tile/tscrollbar', + + :TkSeparator => 'tkextlib/tile/tseparator', + + :TkSizeGrip => 'tkextlib/tile/sizegrip', + :TkSizegrip => 'tkextlib/tile/sizegrip', + + # :TkSquare => 'tkextlib/tile/tsquare', + + :TkTreeview => 'tkextlib/tile/treeview', + } + @TOPLEVEL_ALIAS_TABLE[:Tile] = @TOPLEVEL_ALIAS_TABLE[:Ttk] + + ################################################ + + @TOPLEVEL_ALIAS_SETUP_PROC[:Tile] = + @TOPLEVEL_ALIAS_SETUP_PROC[:Ttk] = proc{|mod| + unless Tk.autoload?(:Tile) || Tk.const_defined?(:Tile) + Object.autoload :Ttk, 'tkextlib/tile' + Tk.autoload :Tile, 'tkextlib/tile' + end + } +end Index: ext/tk/lib/tk/menu.rb =================================================================== --- ext/tk/lib/tk/menu.rb (revision 15617) +++ ext/tk/lib/tk/menu.rb (revision 15618) @@ -140,9 +140,9 @@ type = keys.delete('type') if keys.has_key?('type') if keys.empty? - TkMenuClone.new(self, parent, type) + Tk::MenuClone.new(self, parent, type) else - TkMenuClone.new(self, parent, type, keys) + Tk::MenuClone.new(self, parent, type, keys) end end @@ -381,10 +381,11 @@ =end end -TkMenu = Tk::Menu unless Object.const_defined? :TkMenu +#TkMenu = Tk::Menu unless Object.const_defined? :TkMenu +Tk.__set_toplevel_aliases__(:Tk, Tk::Menu, :TkMenu) -class Tk::MenuClone<TkMenu +class Tk::MenuClone<Tk::Menu =begin def initialize(parent, type=None) widgetname = nil @@ -439,10 +440,11 @@ end end Tk::CloneMenu = Tk::MenuClone -TkMenuClone = Tk::MenuClone unless Object.const_defined? :TkMenuClone -TkCloneMenu = Tk::CloneMenu unless Object.const_defined? :TkCloneMenu +#TkMenuClone = Tk::MenuClone unless Object.const_defined? :TkMenuClone +#TkCloneMenu = Tk::CloneMenu unless Object.const_defined? :TkCloneMenu +Tk.__set_toplevel_aliases__(:Tk, Tk::MenuClone, :TkMenuClone, :TkCloneMenu) -module TkSystemMenu +module Tk::SystemMenu def initialize(parent, keys=nil) if parent.kind_of? Hash keys = _symbolkey2str(parent) @@ -465,33 +467,37 @@ end end end +TkSystemMenu = Tk::SystemMenu -class Tk::SysMenu_Help<TkMenu +class Tk::SysMenu_Help<Tk::Menu # for all platform - include TkSystemMenu + include Tk::SystemMenu SYSMENU_NAME = 'help' end -TkSysMenu_Help = Tk::SysMenu_Help unless Object.const_defined? :TkSysMenu_Help +#TkSysMenu_Help = Tk::SysMenu_Help unless Object.const_defined? :TkSysMenu_Help +Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_Help, :TkSysMenu_Help) -class Tk::SysMenu_System<TkMenu +class Tk::SysMenu_System<Tk::Menu # for Windows - include TkSystemMenu + include Tk::SystemMenu SYSMENU_NAME = 'system' end -TkSysMenu_System = Tk::SysMenu_System unless Object.const_defined? :TkSysMenu_System +#TkSysMenu_System = Tk::SysMenu_System unless Object.const_defined? :TkSysMenu_System +Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_System, :TkSysMenu_System) -class Tk::SysMenu_Apple<TkMenu +class Tk::SysMenu_Apple<Tk::Menu # for Machintosh - include TkSystemMenu + include Tk::SystemMenu SYSMENU_NAME = 'apple' end -TkSysMenu_Apple = Tk::SysMenu_Apple unless Object.const_defined? :TkSysMenu_Apple +#TkSysMenu_Apple = Tk::SysMenu_Apple unless Object.const_defined? :TkSysMenu_Apple +Tk.__set_toplevel_aliases__(:Tk, Tk::SysMenu_Apple, :TkSysMenu_Apple) -class Tk::Menubutton<TkLabel +class Tk::Menubutton<Tk::Label TkCommandNames = ['menubutton'.freeze].freeze WidgetClassName = 'Menubutton'.freeze WidgetClassNames[WidgetClassName] = self @@ -514,11 +520,12 @@ end Tk::MenuButton = Tk::Menubutton -TkMenubutton = Tk::Menubutton unless Object.const_defined? :TkMenubutton -TkMenuButton = Tk::MenuButton unless Object.const_defined? :TkMenuButton +#TkMenubutton = Tk::Menubutton unless Object.const_defined? :TkMenubutton +#TkMenuButton = Tk::MenuButton unless Object.const_defined? :TkMenuButton +Tk.__set_toplevel_aliases__(:Tk, Tk::Menubutton, :TkMenubutton, :TkMenuButton) -class Tk::OptionMenubutton<TkMenubutton +class Tk::OptionMenubutton<Tk::Menubutton TkCommandNames = ['tk_optionMenu'.freeze].freeze class OptionMenu<TkMenu @@ -640,5 +647,7 @@ end Tk::OptionMenuButton = Tk::OptionMenubutton -TkOptionMenubutton = Tk::OptionMenubutton unless Object.const_defined? :TkOptionMenubutton -TkOptionMenuButton = Tk::OptionMenuButton unless Object.const_defined? :TkOptionMenuButton +#TkOptionMenubutton = Tk::OptionMenubutton unless Object.const_defined? :TkOptionMenubutton +#TkOptionMenuButton = Tk::OptionMenuButton unless Object.const_defined? :TkOptionMenuButton +Tk.__set_toplevel_aliases__(:Tk, Tk::OptionMenubutton, + :TkOptionMenubutton, :TkOptionMenuButton) Index: ext/tk/lib/tk/label.rb =================================================================== --- ext/tk/lib/tk/label.rb (revision 15617) +++ ext/tk/lib/tk/label.rb (revision 15618) @@ -17,4 +17,5 @@ #private :create_self end -TkLabel = Tk::Label unless Object.const_defined? :TkLabel +#TkLabel = Tk::Label unless Object.const_defined? :TkLabel +Tk.__set_toplevel_aliases__(:Tk, Tk::Label, :TkLabel) Index: ext/tk/lib/tk/menuspec.rb =================================================================== --- ext/tk/lib/tk/menuspec.rb (revision 15617) +++ ext/tk/lib/tk/menuspec.rb (revision 15618) @@ -61,8 +61,12 @@ tearoff = orig_opts.delete('tearoff') if orig_opts.key?('tearoff') if menu_name + #menu = Tk::Menu.new(parent, :widgetname=>menu_name, :tearoff=>tearoff) + # --> use current TkMenu class menu = TkMenu.new(parent, :widgetname=>menu_name, :tearoff=>tearoff) else + #menu = Tk::Menu.new(parent, :tearoff=>tearoff) + # --> use current TkMenu class menu = TkMenu.new(parent, :tearoff=>tearoff) end @@ -150,7 +154,7 @@ def _use_menubar?(parent) use_menubar = false - if parent.kind_of?(TkRoot) || parent.kind_of?(TkToplevel) + if parent.kind_of?(Tk::Root) || parent.kind_of?(Tk::Toplevel) return true else begin @@ -164,7 +168,11 @@ private :_use_menubar? def _create_menu_for_menubar(parent) - unless (mbar = parent.menu).kind_of?(TkMenu) + #unless (mbar = parent.menu).kind_of?(TkMenu) + # --> use current TkMenu class + mbar = parent.menu + unless parent.menu.kind_of?(Tk::Menu) || parent.menu.kind_of?(TkMenu) + #mbar = Tk::Menu.new(parent, :tearoff=>false) mbar = TkMenu.new(parent, :tearoff=>false) parent.menu(mbar) end @@ -221,6 +229,8 @@ else # menubar by menubuttons + #mbtn = Tk::Menubutton.new(parent) + # --> use current TkMenubutton class mbtn = TkMenubutton.new(parent) menu_name = nil Index: ext/tk/lib/tk/spinbox.rb =================================================================== --- ext/tk/lib/tk/spinbox.rb (revision 15617) +++ ext/tk/lib/tk/spinbox.rb (revision 15618) @@ -5,7 +5,7 @@ require 'tk' require 'tk/entry' -class Tk::Spinbox<TkEntry +class Tk::Spinbox<Tk::Entry TkCommandNames = ['spinbox'.freeze].freeze WidgetClassName = 'Spinbox'.freeze WidgetClassNames[WidgetClassName] = self @@ -97,4 +97,5 @@ end end -TkSpinbox = Tk::Spinbox unless Object.const_defined? :TkSpinbox +#TkSpinbox = Tk::Spinbox unless Object.const_defined? :TkSpinbox +Tk.__set_toplevel_aliases__(:Tk, Tk::Spinbox, :TkSpinbox) Index: ext/tk/lib/tk/menubar.rb =================================================================== --- ext/tk/lib/tk/menubar.rb (revision 15617) +++ ext/tk/lib/tk/menubar.rb (revision 15618) @@ -89,7 +89,7 @@ require 'tk/composite' require 'tk/menuspec' -class TkMenubar<TkFrame +class TkMenubar<Tk::Frame include TkComposite include TkMenuSpec Index: ext/tk/lib/tk/winpkg.rb =================================================================== --- ext/tk/lib/tk/winpkg.rb (revision 15617) +++ ext/tk/lib/tk/winpkg.rb (revision 15618) @@ -9,7 +9,8 @@ module Tk::WinDDE end -TkWinDDE = Tk::WinDDE +#TkWinDDE = Tk::WinDDE +Tk.__set_toplevel_aliases__(:Tk, Tk::WinDDE, :TkWinDDE) module Tk::WinDDE extend Tk @@ -91,7 +92,8 @@ module Tk::WinRegistry end -TkWinRegistry = Tk::WinRegistry +#TkWinRegistry = Tk::WinRegistry +Tk.__set_toplevel_aliases__(:Tk, Tk::WinRegistry, :TkWinRegistry) module Tk::WinRegistry extend Tk Index: ext/tk/lib/tk/textmark.rb =================================================================== --- ext/tk/lib/tk/textmark.rb (revision 15617) +++ ext/tk/lib/tk/textmark.rb (revision 15618) @@ -5,7 +5,7 @@ require 'tk/text' class TkTextMark<TkObject - include TkText::IndexModMethods + include Tk::Text::IndexModMethods TMarkID_TBL = TkCore::INTERP.create_table Tk_TextMark_ID = ['mark'.freeze, '00000'.taint].freeze @@ -19,8 +19,8 @@ end def initialize(parent, index) - #unless parent.kind_of?(TkText) - # fail ArgumentError, "expect TkText for 1st argument" + #unless parent.kind_of?(Tk::Text) + # fail ArgumentError, "expect Tk::Text for 1st argument" #end @parent = @t = parent @tpath = parent.path @@ -36,7 +36,7 @@ end def id - TkText::IndexString.new(@id) + Tk::Text::IndexString.new(@id) end def exist? @@ -49,15 +49,15 @@ end =begin - # move to TkText::IndexModMethods module + # move to Tk::Text::IndexModMethods module def +(mod) return chars(mod) if mod.kind_of?(Numeric) mod = mod.to_s if mod =~ /^\s*[+-]?\d/ - TkText::IndexString.new(@id + ' + ' + mod) + Tk::Text::IndexString.new(@id + ' + ' + mod) else - TkText::IndexString.new(@id + ' ' + mod) + Tk::Text::IndexString.new(@id + ' ' + mod) end end @@ -66,11 +66,11 @@ mod = mod.to_s if mod =~ /^\s*[+-]?\d/ - TkText::IndexString.new(@id + ' - ' + mod) + Tk::Text::IndexString.new(@id + ' - ' + mod) elsif mod =~ /^\s*[-]\s+(\d.*)$/ - TkText::IndexString.new(@id + ' - -' + $1) + Tk::Text::IndexString.new(@id + ' - -' + $1) else - TkText::IndexString.new(@id + ' ' + mod) + Tk::Text::IndexString.new(@id + ' ' + mod) end end =end @@ -133,8 +133,8 @@ end def initialize(parent, name, index=nil) - #unless parent.kind_of?(TkText) - # fail ArgumentError, "expect TkText for 1st argument" + #unless parent.kind_of?(Tk::Text) + # fail ArgumentError, "expect Tk::Text for 1st argument" #end @parent = @t = parent @tpath = parent.path Index: ext/tk/lib/tk/font.rb =================================================================== --- ext/tk/lib/tk/font.rb (revision 15617) +++ ext/tk/lib/tk/font.rb (revision 15618) @@ -899,13 +899,15 @@ if key.include?(';') win, tag, optkey = key.split(';') winobj = tk_tcl2ruby(win) - if winobj.kind_of? TkText + #if winobj.kind_of? TkText + if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text) if optkey ret.push([winobj, winobj.tagid2obj(tag), optkey]) else ret.push([winobj, winobj.tagid2obj(tag)]) end - elsif winobj.kind_of? TkCanvas + #elsif winobj.kind_of? TkCanvas + elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas) if (tagobj = TkcTag.id2obj(winobj, tag)).kind_of? TkcTag if optkey ret.push([winobj, tagobj, optkey]) @@ -925,7 +927,8 @@ ret.push([winobj, tag]) end end - elsif winobj.kind_of? TkMenu + #elsif winobj.kind_of? TkMenu + elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu) if optkey ret.push([winobj, tag, optkey]) else @@ -1504,11 +1507,14 @@ optkey = 'font' if optkey == nil || optkey == '' winobj = tk_tcl2ruby(win) # winobj.tagfont_configure(tag, {'font'=>@latinfont}) - if winobj.kind_of? TkText + #if winobj.kind_of? TkText + if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text) tk_call(win, 'tag', 'configure', tag, "-#{optkey}", @latinfont) - elsif winobj.kind_of? TkCanvas + #elsif winobj.kind_of? TkCanvas + elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas) tk_call(win, 'itemconfigure', tag, "-#{optkey}", @latinfont) - elsif winobj.kind_of? TkMenu + #elsif winobj.kind_of? TkMenu + elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu) tk_call(win, 'entryconfigure', tag, "-#{optkey}", @latinfont) else raise RuntimeError, "unknown widget type" @@ -1539,11 +1545,14 @@ optkey = 'kanjifont' unless optkey winobj = tk_tcl2ruby(win) # winobj.tagfont_configure(tag, {'kanjifont'=>@kanjifont}) - if winobj.kind_of? TkText + #if winobj.kind_of? TkText + if winobj.kind_of?(TkText) || winobj.kind_of?(Tk::Text) tk_call(win, 'tag', 'configure', tag, "-#{optkey}", @kanjifont) - elsif winobj.kind_of? TkCanvas + #elsif winobj.kind_of? TkCanvas + elsif winobj.kind_of?(TkCanvas) || winobj.kind_of?(Tk::Canvas) tk_call(win, 'itemconfigure', tag, "-#{optkey}", @kanjifont) - elsif winobj.kind_of? TkMenu + #elsif winobj.kind_of? TkMenu + elsif winobj.kind_of?(TkMenu) || winobj.kind_of?(Tk::Menu) tk_call(win, 'entryconfigure', tag, "-#{optkey}", @latinfont) else raise RuntimeError, "unknown widget type" Index: ext/tk/lib/tk/checkbutton.rb =================================================================== --- ext/tk/lib/tk/checkbutton.rb (revision 15617) +++ ext/tk/lib/tk/checkbutton.rb (revision 15618) @@ -4,7 +4,7 @@ require 'tk' require 'tk/radiobutton' -class Tk::CheckButton<TkRadioButton +class Tk::CheckButton<Tk::RadioButton TkCommandNames = ['checkbutton'.freeze].freeze WidgetClassName = 'Checkbutton'.freeze WidgetClassNames[WidgetClassName] = self @@ -24,5 +24,7 @@ end Tk::Checkbutton = Tk::CheckButton -TkCheckButton = Tk::CheckButton unless Object.const_defined? :TkCheckButton -TkCheckbutton = Tk::Checkbutton unless Object.const_defined? :TkCheckbutton +#TkCheckButton = Tk::CheckButton unless Object.const_defined? :TkCheckButton +#TkCheckbutton = Tk::Checkbutton unless Object.const_defined? :TkCheckbutton +Tk.__set_toplevel_aliases__(:Tk, Tk::CheckButton, + :TkCheckButton, :TkCheckbutton) Index: ext/tk/lib/tk/panedwindow.rb =================================================================== --- ext/tk/lib/tk/panedwindow.rb (revision 15617) +++ ext/tk/lib/tk/panedwindow.rb (revision 15618) @@ -231,5 +231,7 @@ end Tk::Panedwindow = Tk::PanedWindow -TkPanedWindow = Tk::PanedWindow unless Object.const_defined? :TkPanedWindow -TkPanedwindow = Tk::Panedwindow unless Object.const_defined? :TkPanedwindow +#TkPanedWindow = Tk::PanedWindow unless Object.const_defined? :TkPanedWindow +#TkPanedwindow = Tk::Panedwindow unless Object.const_defined? :TkPanedwindow +Tk.__set_toplevel_aliases__(:Tk, Tk::PanedWindow, + :TkPanedWindow, :TkPanedwindow) Index: ext/tk/lib/tk/texttag.rb =================================================================== --- ext/tk/lib/tk/texttag.rb (revision 15617) +++ ext/tk/lib/tk/texttag.rb (revision 15618) @@ -7,7 +7,7 @@ class TkTextTag<TkObject include TkTreatTagFont - include TkText::IndexModMethods + include Tk::Text::IndexModMethods TTagID_TBL = TkCore::INTERP.create_table Tk_TextTag_ID = ['tag'.freeze, '00000'.taint].freeze @@ -47,7 +47,7 @@ end def id - TkText::IndexString.new(@id) + Tk::Text::IndexString.new(@id) end def exist? @@ -60,11 +60,11 @@ end def first - TkText::IndexString.new(@id + '.first') + Tk::Text::IndexString.new(@id + '.first') end def last - TkText::IndexString.new(@id + '.last') + Tk::Text::IndexString.new(@id + '.last') end def add(*indices) @@ -83,7 +83,7 @@ l = tk_split_simplelist(tk_call_without_enc(@t.path, 'tag', 'ranges', @id)) r = [] while key=l.shift - r.push [TkText::IndexString.new(key), TkText::IndexString.new(l.shift)] + r.push [Tk::Text::IndexString.new(key), Tk::Text::IndexString.new(l.shift)] end r end @@ -92,7 +92,7 @@ simplelist(tk_call_without_enc(@t.path, 'tag', 'nextrange', @id, _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| - TkText::IndexString.new(idx) + Tk::Text::IndexString.new(idx) } end @@ -100,7 +100,7 @@ simplelist(tk_call_without_enc(@t.path, 'tag', 'prevrange', @id, _get_eval_enc_str(first), _get_eval_enc_str(last))).collect{|idx| - TkText::IndexString.new(idx) + Tk::Text::IndexString.new(idx) } end @@ -248,8 +248,8 @@ end def initialize(parent, name, *args) - #unless parent.kind_of?(TkText) - # fail ArgumentError, "expect TkText for 1st argument" + #unless parent.kind_of?(Tk::Text) + # fail ArgumentError, "expect Tk::Text for 1st argument" #end @parent = @t = parent @tpath = parent.path Index: ext/tk/lib/tk/event.rb =================================================================== --- ext/tk/lib/tk/event.rb (revision 15617) +++ ext/tk/lib/tk/event.rb (revision 15618) @@ -15,6 +15,8 @@ module TkEvent class Event < TkUtil::CallbackSubst module Grp + major, minor, type, type_name, patchlevel = TclTkLib.get_version + KEY = 0x1 BUTTON = 0x2 MOTION = 0x4 @@ -39,7 +41,7 @@ RESIZEREQ = 0x200000 CIRCREQ = 0x400000 - MWHEEL = 0x10000000 + MWHEEL = KEY ALL = 0xFFFFFFFF @@ -298,31 +300,54 @@ [ ?b, ?n, :num ], [ ?c, ?n, :count ], [ ?d, ?s, :detail ], + # ?e [ ?f, ?b, :focus ], + # ?g [ ?h, ?n, :height ], [ ?i, ?s, :win_hex ], + # ?j [ ?k, ?n, :keycode ], + # ?l [ ?m, ?s, :mode ], + # ?n [ ?o, ?b, :override ], [ ?p, ?s, :place ], + # ?q + # ?r [ ?s, ?x, :state ], [ ?t, ?n, :time ], + # ?u + [ ?v, ?n, :value_mask ], [ ?w, ?n, :width ], [ ?x, ?n, :x ], [ ?y, ?n, :y ], + # ?z [ ?A, ?s, :char ], [ ?B, ?n, :borderwidth ], + # ?C [ ?D, ?n, :wheel_delta ], [ ?E, ?b, :send_event ], + # ?F + # ?G + # ?H + # ?I + # ?J [ ?K, ?s, :keysym ], + # ?L + # ?M [ ?N, ?n, :keysym_num ], + # ?O [ ?P, ?s, :property ], + # ?Q [ ?R, ?s, :rootwin_id ], [ ?S, ?s, :subwindow ], [ ?T, ?n, :type ], + # ?U + # ?V [ ?W, ?w, :widget ], [ ?X, ?n, :x_root ], [ ?Y, ?n, :y_root ], + # ?Z nil ] Index: ext/tk/lib/tk/root.rb =================================================================== --- ext/tk/lib/tk/root.rb (revision 15617) +++ ext/tk/lib/tk/root.rb (revision 15618) @@ -14,28 +14,7 @@ end private :__methodcall_optkeys -=begin - ROOT = [] - def TkRoot.new(keys=nil) - if ROOT[0] - Tk_WINDOWS["."] = ROOT[0] - return ROOT[0] - end - new = super(:without_creating=>true, :widgetname=>'.') - if keys # wm commands - keys.each{|k,v| - if v.kind_of? Array - new.send(k,*v) - else - new.send(k,v) - end - } - end - ROOT[0] = new - Tk_WINDOWS["."] = new - end -=end - def TkRoot.new(keys=nil, &b) + def Root.new(keys=nil, &b) unless TkCore::INTERP.tk_windows['.'] TkCore::INTERP.tk_windows['.'] = super(:without_creating=>true, :widgetname=>'.'){} @@ -102,9 +81,10 @@ self.menu end - def TkRoot.destroy + def Root.destroy TkCore::INTERP._invoke('destroy', '.') end end -TkRoot = Tk::Root unless Object.const_defined? :TkRoot +#TkRoot = Tk::Root unless Object.const_defined? :TkRoot +Tk.__set_toplevel_aliases__(:Tk, Tk::Root, :TkRoot) Index: ext/tk/lib/tk/variable.rb =================================================================== --- ext/tk/lib/tk/variable.rb (revision 15617) +++ ext/tk/lib/tk/variable.rb (revision 15618) @@ -20,7 +20,7 @@ #TkCore::INTERP.add_tk_procs('rb_var', 'args', # "ruby [format \"TkVariable.callback %%Q!%s!\" $args]") -TkCore::INTERP.add_tk_procs('rb_var', 'args', <<-'EOL') + TkCore::INTERP.add_tk_procs('rb_var', 'args', <<-'EOL') if {[set st [catch {eval {ruby_cmd TkVariable callback} $args} ret]] != 0} { set idx [string first "\n\n" $ret] if {$idx > 0} { Index: ext/tk/lib/tk/textimage.rb =================================================================== --- ext/tk/lib/tk/textimage.rb (revision 15617) +++ ext/tk/lib/tk/textimage.rb (revision 15618) @@ -5,11 +5,11 @@ require 'tk/text' class TkTextImage<TkObject - include TkText::IndexModMethods + include Tk::Text::IndexModMethods def initialize(parent, index, keys) - #unless parent.kind_of?(TkText) - # fail ArgumentError, "expect TkText for 1st argument" + #unless parent.kind_of?(Tk::Text) + # fail ArgumentError, "expect Tk::Text for 1st argument" #end @t = parent if index == 'end' || index == :end @@ -34,7 +34,7 @@ end def id - TkText::IndexString.new(@id) + Tk::Text::IndexString.new(@id) end def mark @path Index: ext/tk/lib/tk/radiobutton.rb =================================================================== --- ext/tk/lib/tk/radiobutton.rb (revision 15617) +++ ext/tk/lib/tk/radiobutton.rb (revision 15618) @@ -4,7 +4,7 @@ require 'tk' require 'tk/button' -class Tk::RadioButton<TkButton +class Tk::RadioButton<Tk::Button TkCommandNames = ['radiobutton'.freeze].freeze WidgetClassName = 'Radiobutton'.freeze WidgetClassNames[WidgetClassName] = self @@ -65,5 +65,7 @@ end Tk::Radiobutton = Tk::RadioButton -TkRadioButton = Tk::RadioButton unless Object.const_defined? :TkRadioButton -TkRadiobutton = Tk::Radiobutton unless Object.const_defined? :TkRadiobutton +#TkRadioButton = Tk::RadioButton unless Object.const_defined? :TkRadioButton +#TkRadiobutton = Tk::Radiobutton unless Object.const_defined? :TkRadiobutton +Tk.__set_toplevel_aliases__(:Tk, Tk::RadioButton, + :TkRadioButton, :TkRadiobutton) Index: ext/tk/lib/tk/composite.rb =================================================================== --- ext/tk/lib/tk/composite.rb (revision 15617) +++ ext/tk/lib/tk/composite.rb (revision 15618) @@ -34,7 +34,8 @@ if klass # WidgetClassName is a known class - if klass <= TkFrame || klass < TkComposite + #if klass <= TkFrame || klass < TkComposite + if klass <= TkFrame || klass < Tk::Frame || klass < TkComposite # klass is valid for the base frame if self.class <= klass # use my classname @@ -50,7 +51,8 @@ else # klass is invalid for the base frame - if self.class < TkFrame || self.class.superclass < TkComposite + #if self.class < TkFrame || self.class.superclass < TkComposite + if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite # my class name is valid for the base frame -> use my classname base_class_name = self.class.name if base_class_name == '' @@ -69,7 +71,8 @@ else # no valid WidgetClassName - if self.class < TkFrame || self.class.superclass < TkComposite + #if self.class < TkFrame || self.class.superclass < TkComposite + if self.class < TkFrame || self.class.superclass < Tk::Frame || self.class.superclass < TkComposite # my class name is valid for the base frame -> use my classname base_class_name = self.class.name if base_class_name == '' @@ -108,8 +111,12 @@ end if base_class_name + # @frame = Tk::Frame.new(parent, :class=>base_class_name) + # --> use current TkFrame class @frame = TkFrame.new(parent, :class=>base_class_name) else + # @frame = Tk::Frame.new(parent) + # --> use current TkFrame class @frame = TkFrame.new(parent) end @path = @epath = @frame.path Index: ext/tk/lib/tk/macpkg.rb =================================================================== --- ext/tk/lib/tk/macpkg.rb (revision 15617) +++ ext/tk/lib/tk/macpkg.rb (revision 15618) @@ -22,7 +22,8 @@ module Tk::MacResource end -TkMacResource = Tk::MacResource +#TkMacResource = Tk::MacResource +Tk.__set_toplevel_aliases__(:Tk, Tk::MacResource, :TkMacResource) module Tk::MacResource extend Tk Index: ext/tk/lib/tk/scrollbox.rb =================================================================== --- ext/tk/lib/tk/scrollbox.rb (revision 15617) +++ ext/tk/lib/tk/scrollbox.rb (revision 15618) @@ -6,10 +6,14 @@ require 'tk' require 'tk/listbox' -class TkScrollbox<TkListbox +class TkScrollbox<Tk::Listbox include TkComposite def initialize_composite(keys=nil) + #list = Tk::Listbox.new(@frame) + # -> use current TkListbox class list = TkListbox.new(@frame) + #scroll = Tk::Scrollbar.new(@frame) + # -> use current TkScrollbar class scroll = TkScrollbar.new(@frame) @path = list.path Index: ext/tk/lib/tk/autoload.rb =================================================================== --- ext/tk/lib/tk/autoload.rb (revision 15617) +++ ext/tk/lib/tk/autoload.rb (revision 15618) @@ -1,21 +1,7 @@ # # autoload # -major, minor, type, type_name, patchlevel = TclTkLib.get_version - -###################################### -# depend on version of Tcl/Tk -if major > 8 || - (major == 8 && minor > 5) || - (major == 8 && minor == 5 && type >= TclTkLib::RELEASE_TYPE::BETA) - # Tcl/Tk 8.5 beta or later - autoload :Ttk, 'tkextlib/tile' - module Tk - autoload :Tile, 'tkextlib/tile' - end -end - -###################################### +############################################ # geometry manager module Tk autoload :Grid, 'tk/grid' @@ -38,12 +24,7 @@ def TkPlace(*args); TkPlace.configure(*args); end -###################################### -# Ttk (Tile) support -require 'tk/ttk_selector' - - -###################################### +############################################ # classes on Tk module module Tk autoload :Button, 'tk/button' @@ -66,12 +47,15 @@ autoload :Menu, 'tk/menu' autoload :MenuClone, 'tk/menu' + autoload :CloneMenu, 'tk/menu' autoload :SystemMenu, 'tk/menu' autoload :SysMenu_Help, 'tk/menu' autoload :SysMenu_System, 'tk/menu' autoload :SysMenu_Apple, 'tk/menu' autoload :Menubutton, 'tk/menu' + autoload :MenuButton, 'tk/menu' autoload :OptionMenubutton, 'tk/menu' + autoload :OptionMenBbutton, 'tk/menu' autoload :Message, 'tk/message' @@ -97,7 +81,7 @@ end -###################################### +############################################ # sub-module of Tk module Tk autoload :Clock, 'tk/clock' @@ -129,184 +113,287 @@ end -###################################### -# toplevel classes/modules -autoload_list = { - :TkBgError => 'tk/bgerror', - :TkBindTag => 'tk/bindtag', - :TkBindTagAll => 'tk/bindtag', - :TkDatabaseClass => 'tk/bindtag', +############################################ +# toplevel classes/modules (fixed) +autoload :TkBgError, 'tk/bgerror' - :TkButton => 'tk/button', +autoload :TkBindTag, 'tk/bindtag' +autoload :TkBindTagAll, 'tk/bindtag' +autoload :TkDatabaseClass, 'tk/bindtag' - :TkCanvas => 'tk/canvas', +autoload :TkConsole, 'tk/console' - :TkcItem => 'tk/canvas', - :TkcArc => 'tk/canvas', - :TkcBitmap => 'tk/canvas', - :TkcImage => 'tk/canvas', - :TkcLine => 'tk/canvas', - :TkcOval => 'tk/canvas', - :TkcPolygon => 'tk/canvas', - :TkcRectangle => 'tk/canvas', - :TkcText => 'tk/canvas', - :TkcWindow => 'tk/canvas', +autoload :TkcItem, 'tk/canvas' +autoload :TkcArc, 'tk/canvas' +autoload :TkcBitmap, 'tk/canvas' +autoload :TkcImage, 'tk/canvas' +autoload :TkcLine, 'tk/canvas' +autoload :TkcOval, 'tk/canvas' +autoload :TkcPolygon, 'tk/canvas' +autoload :TkcRectangle, 'tk/canvas' +autoload :TkcText, 'tk/canvas' +autoload :TkcWindow, 'tk/canvas' - :TkcTagAccess => 'tk/canvastag', - :TkcTag => 'tk/canvastag', - :TkcTagString => 'tk/canvastag', - :TkcNamedTag => 'tk/canvastag', - :TkcTagAll => 'tk/canvastag', - :TkcTagCurrent => 'tk/canvastag', - :TkcTagGroup => 'tk/canvastag', +autoload :TkcTagAccess, 'tk/canvastag' +autoload :TkcTag, 'tk/canvastag' +autoload :TkcTagString, 'tk/canvastag' +autoload :TkcNamedTag, 'tk/canvastag' +autoload :TkcTagAll, 'tk/canvastag' +autoload :TkcTagCurrent, 'tk/canvastag' +autoload :TkcTagGroup, 'tk/canvastag' - :TkCheckButton => 'tk/checkbutton', - :TkCheckbutton => 'tk/checkbutton', +autoload :TkClipboard, 'tk/clipboard' - :TkClipboard => 'tk/clipboard', +autoload :TkComposite, 'tk/composite' - :TkComposite => 'tk/composite', +autoload :TkConsole, 'tk/console' - :TkConsole => 'tk/console', +autoload :TkDialog, 'tk/dialog' +autoload :TkDialog2, 'tk/dialog' +autoload :TkDialogObj, 'tk/dialog' +autoload :TkWarning, 'tk/dialog' +autoload :TkWarning2, 'tk/dialog' +autoload :TkWarningObj, 'tk/dialog' - :TkDialog => 'tk/dialog', - :TkDialog2 => 'tk/dialog', - :TkDialogObj => 'tk/dialog', - :TkWarning => 'tk/dialog', - :TkWarning2 => 'tk/dialog', - :TkWarningObj => 'tk/dialog', +autoload :TkEvent, 'tk/event' - :TkEntry => 'tk/entry', +autoload :TkFont, 'tk/font' +autoload :TkTreatTagFont, 'tk/font' - :TkEvent => 'tk/event', +autoload :TkImage, 'tk/image' +autoload :TkBitmapImage, 'tk/image' +autoload :TkPhotoImage, 'tk/image' - :TkFont => 'tk/font', - :TkTreatTagFont => 'tk/font', +autoload :TkItemConfigMethod, 'tk/itemconfig' - :TkFrame => 'tk/frame', +autoload :TkTreatItemFont, 'tk/itemfont' - :TkImage => 'tk/image', - :TkBitmapImage => 'tk/image', - :TkPhotoImage => 'tk/image', +autoload :TkKinput, 'tk/kinput' - :TkItemConfigMethod => 'tk/itemconfig', +autoload :TkSystemMenu, 'tk/menu' - :TkTreatItemFont => 'tk/itemfont', +autoload :TkMenubar, 'tk/menubar' - :TkKinput => 'tk/kinput', +autoload :TkMenuSpec, 'tk/menuspec' - :TkLabel => 'tk/label', +autoload :TkManageFocus, 'tk/mngfocus' - :TkLabelFrame => 'tk/labelframe', - :TkLabelframe => 'tk/labelframe', +autoload :TkMsgCatalog, 'tk/msgcat' +autoload :TkMsgCat, 'tk/msgcat' - :TkListbox => 'tk/listbox', +autoload :TkNamespace, 'tk/namespace' - :TkMacResource => 'tk/macpkg', +autoload :TkOptionDB, 'tk/optiondb' +autoload :TkOption, 'tk/optiondb' +autoload :TkResourceDB, 'tk/optiondb' - :TkMenu => 'tk/menu', - :TkMenuClone => 'tk/menu', - :TkSystemMenu => 'tk/menu', - :TkSysMenu_Help => 'tk/menu', - :TkSysMenu_System => 'tk/menu', - :TkSysMenu_Apple => 'tk/menu', - :TkMenubutton => 'tk/menu', - :TkOptionMenubutton => 'tk/menu', +autoload :TkPackage, 'tk/package' - :TkMenubar => 'tk/menubar', +autoload :TkPalette, 'tk/palette' - :TkMenuSpec => 'tk/menuspec', +autoload :TkScrollbox, 'tk/scrollbox' - :TkMessage => 'tk/message', +autoload :TkSelection, 'tk/selection' - :TkManageFocus => 'tk/mngfocus', +autoload :TkTreatTagFont, 'tk/tagfont' - :TkMsgCatalog => 'tk/msgcat', - :TkMsgCat => 'tk/msgcat', +autoload :TkTextImage, 'tk/textimage' +autoload :TktImage, 'tk/textimage' - :TkNamespace => 'tk/namespace', +autoload :TkTextMark, 'tk/textmark' +autoload :TkTextNamedMark, 'tk/textmark' +autoload :TkTextMarkInsert, 'tk/textmark' +autoload :TkTextMarkCurrent, 'tk/textmark' +autoload :TkTextMarkAnchor, 'tk/textmark' +autoload :TktMark, 'tk/textmark' +autoload :TktNamedMark, 'tk/textmark' +autoload :TktMarkInsert, 'tk/textmark' +autoload :TktMarkCurrent, 'tk/textmark' +autoload :TktMarkAnchor, 'tk/textmark' - :TkOptionDB => 'tk/optiondb', - :TkOption => 'tk/optiondb', - :TkResourceDB => 'tk/optiondb', +autoload :TkTextTag, 'tk/texttag' +autoload :TkTextNamedTag, 'tk/texttag' +autoload :TkTextTagSel, 'tk/texttag' +autoload :TktTag, 'tk/texttag' +autoload :TktNamedTag, 'tk/texttag' +autoload :TktTagSel, 'tk/texttag' - :TkPackage => 'tk/package', +autoload :TkTextWindow, 'tk/textwindow' +autoload :TktWindow, 'tk/textwindow' - :TkPalette => 'tk/palette', +autoload :TkAfter, 'tk/timer' +autoload :TkTimer, 'tk/timer' +autoload :TkRTTimer, 'tk/timer' - :TkPanedWindow => 'tk/panedwindow', - :TkPanedwindow => 'tk/panedwindow', +autoload :TkTextWin, 'tk/txtwin_abst' - :TkRadioButton => 'tk/radiobutton', - :TkRadiobutton => 'tk/radiobutton', +autoload :TkValidation, 'tk/validation' +autoload :TkValidateCommand, 'tk/validation' - :TkRoot => 'tk/root', +autoload :TkVariable, 'tk/variable' +autoload :TkVarAccess, 'tk/variable' - :TkScale => 'tk/scale', +autoload :TkVirtualEvent, 'tk/virtevent' +autoload :TkNamedVirtualEvent,'tk/virtevent' - :TkScrollbar => 'tk/scrollbar', - :TkXScrollbar => 'tk/scrollbar', - :TkYScrollbar => 'tk/scrollbar', +autoload :TkWinfo, 'tk/winfo' - :TkScrollbox => 'tk/scrollbox', +autoload :TkXIM, 'tk/xim' - :TkSelection => 'tk/selection', - :TkSpinbox => 'tk/spinbox', +############################################ +# toplevel classes/modules (switchable) +module Tk + @TOPLEVEL_ALIAS_TABLE = {} + @TOPLEVEL_ALIAS_TABLE[:Tk] = { + :TkButton => 'tk/button', - :TkTreatTagFont => 'tk/tagfont', + :TkCanvas => 'tk/canvas', - :TkText => 'tk/text', + :TkCheckButton => 'tk/checkbutton', + :TkCheckbutton => 'tk/checkbutton', - :TkTextImage => 'tk/textimage', - :TktImage => 'tk/textimage', + # :TkDialog => 'tk/dialog', + # :TkDialog2 => 'tk/dialog', + # :TkDialogObj => 'tk/dialog', + # :TkWarning => 'tk/dialog', + # :TkWarning2 => 'tk/dialog', + # :TkWarningObj => 'tk/dialog', - :TkTextMark => 'tk/textmark', - :TkTextNamedMark => 'tk/textmark', - :TkTextMarkInsert => 'tk/textmark', - :TkTextMarkCurrent => 'tk/textmark', - :TkTextMarkAnchor => 'tk/textmark', - :TktMark => 'tk/textmark', - :TktNamedMark => 'tk/textmark', - :TktMarkInsert => 'tk/textmark', - :TktMarkCurrent => 'tk/textmark', - :TktMarkAnchor => 'tk/textmark', + :TkEntry => 'tk/entry', - :TkTextTag => 'tk/texttag', - :TkTextNamedTag => 'tk/texttag', - :TkTextTagSel => 'tk/texttag', - :TktTag => 'tk/texttag', - :TktNamedTag => 'tk/texttag', - :TktTagSel => 'tk/texttag', + :TkFrame => 'tk/frame', - :TkTextWindow => 'tk/textwindow', - :TktWindow => 'tk/textwindow', + :TkLabel => 'tk/label', - :TkAfter => 'tk/timer', - :TkTimer => 'tk/timer', - :TkRTTimer => 'tk/timer', + :TkLabelFrame => 'tk/labelframe', + :TkLabelframe => 'tk/labelframe', - :TkToplevel => 'tk/toplevel', + :TkListbox => 'tk/listbox', - :TkTextWin => 'tk/txtwin_abst', + :TkMacResource => 'tk/macpkg', - :TkValidation => 'tk/validation', + :TkMenu => 'tk/menu', + :TkMenuClone => 'tk/menu', + :TkCloneMenu => 'tk/menu', + # :TkSystemMenu => 'tk/menu', + :TkSysMenu_Help => 'tk/menu', + :TkSysMenu_System => 'tk/menu', + :TkSysMenu_Apple => 'tk/menu', + :TkMenubutton => 'tk/menu', + :TkMenuButton => 'tk/menu', + :TkOptionMenubutton => 'tk/menu', + :TkOptionMenuButton => 'tk/menu', - :TkVariable => 'tk/variable', - :TkVarAccess => 'tk/variable', + :TkMessage => 'tk/message', - :TkVirtualEvent => 'tk/virtevent', - :TkNamedVirtualEvent => 'tk/virtevent', + :TkPanedWindow => 'tk/panedwindow', + :TkPanedwindow => 'tk/panedwindow', - :TkWinfo => 'tk/winfo', + :TkRadioButton => 'tk/radiobutton', + :TkRadiobutton => 'tk/radiobutton', - :TkWinDDE => 'tk/winpkg', - :TkWinRegistry => 'tk/winpkg', + :TkRoot => 'tk/root', - :TkXIM => 'tk/xim', -} -autoload_list.each{|mod, lib| - #autoload mod, lib unless - autoload mod, lib unless (Object.const_defined? mod) && (autoload? mod) -} + :TkScale => 'tk/scale', + + :TkScrollbar => 'tk/scrollbar', + :TkXScrollbar => 'tk/scrollbar', + :TkYScrollbar => 'tk/scrollbar', + + :TkSpinbox => 'tk/spinbox', + + :TkText => 'tk/text', + + :TkToplevel => 'tk/toplevel', + + :TkWinDDE => 'tk/winpkg', + :TkWinRegistry => 'tk/winpkg', + } + + @TOPLEVEL_ALIAS_SETUP_PROC = {} + + @current_default_widget_set = nil +end + +############################################ + +class << Tk + def default_widget_set + @current_default_widget_set + end + + def default_widget_set=(target) + target = target.to_sym + return target if target == @current_default_widget_set + + if (cmd = @TOPLEVEL_ALIAS_SETUP_PROC[target]) + cmd.call(target) + end + + _replace_toplevel_aliases(target) + end + + def __set_toplevel_aliases__(target, obj, *symbols) + @TOPLEVEL_ALIAS_TABLE[target = target.to_sym] ||= {} + symbols.each{|sym| + @TOPLEVEL_ALIAS_TABLE[target][sym = sym.to_sym] = obj + if @current_default_widget_set == target + Object.class_eval{remove_const sym} if Object.const_defined?(sym) + Object.const_set(sym, obj) + end + } + end + + ################################### + private + def _replace_toplevel_aliases(target) + # check already autoloaded + if (table = @TOPLEVEL_ALIAS_TABLE[current = @current_default_widget_set]) + table.each{|sym, file| + if !Object.autoload?(sym) && Object.const_defined?(sym) && + @TOPLEVEL_ALIAS_TABLE[current][sym].kind_of?(String) + # autoload -> class + @TOPLEVEL_ALIAS_TABLE[current][sym] = Object.const_get(sym) + end + } + end + + # setup autoloads + @TOPLEVEL_ALIAS_TABLE[target].each{|sym, file| + Object.class_eval{remove_const sym} if Object.const_defined?(sym) + if file.kind_of?(String) + # file => autoload target file + Object.autoload(sym, file) + else + # file => loaded class object + Object.const_set(sym, file) + end + } + + # update current alias + @current_default_widget_set = target + end +end + +############################################ +# setup default widget set => :Tk +Tk.default_widget_set = :Tk + + +############################################ +# depend on the version of Tcl/Tk +major, minor, type, type_name, patchlevel = TclTkLib.get_version + +############################################ +# Ttk (Tile) support +if major > 8 || + (major == 8 && minor > 5) || + (major == 8 && minor == 5 && type >= TclTkLib::RELEASE_TYPE::BETA) + # Tcl/Tk 8.5 beta or later + Object.autoload :Ttk, 'tkextlib/tile' + Tk.autoload :Tile, 'tkextlib/tile' + + require 'tk/ttk_selector' +end Index: ext/tk/lib/tk/canvas.rb =================================================================== --- ext/tk/lib/tk/canvas.rb (revision 15617) +++ ext/tk/lib/tk/canvas.rb (revision 15618) @@ -572,7 +572,8 @@ end end -TkCanvas = Tk::Canvas unless Object.const_defined? :TkCanvas +#TkCanvas = Tk::Canvas unless Object.const_defined? :TkCanvas +Tk.__set_toplevel_aliases__(:Tk, Tk::Canvas, :TkCanvas) class TkcItem<TkObject @@ -660,8 +661,8 @@ ######################################## def initialize(parent, *args) - #unless parent.kind_of?(TkCanvas) - # fail ArgumentError, "expect TkCanvas for 1st argument" + #unless parent.kind_of?(Tk::Canvas) + # fail ArgumentError, "expect Tk::Canvas for 1st argument" #end @parent = @c = parent @path = parent.path Index: ext/tk/lib/tk/button.rb =================================================================== --- ext/tk/lib/tk/button.rb (revision 15617) +++ ext/tk/lib/tk/button.rb (revision 15618) @@ -4,7 +4,7 @@ require 'tk' require 'tk/label' -class Tk::Button<TkLabel +class Tk::Button<Tk::Label TkCommandNames = ['button'.freeze].freeze WidgetClassName = 'Button'.freeze WidgetClassNames[WidgetClassName] = self @@ -26,4 +26,5 @@ end end -TkButton = Tk::Button unless Object.const_defined? :TkButton +#TkButton = Tk::Button unless Object.const_defined? :TkButton +Tk.__set_toplevel_aliases__(:Tk, Tk::Button, :TkButton) Index: ext/tk/lib/tk/textwindow.rb =================================================================== --- ext/tk/lib/tk/textwindow.rb (revision 15617) +++ ext/tk/lib/tk/textwindow.rb (revision 15618) @@ -5,11 +5,11 @@ require 'tk/text' class TkTextWindow<TkObject - include TkText::IndexModMethods + include Tk::Text::IndexModMethods def initialize(parent, index, keys = {}) - #unless parent.kind_of?(TkText) - # fail ArgumentError, "expect TkText for 1st argument" + #unless parent.kind_of?(Tk::Text) + # fail ArgumentError, "expect Tk::Text for 1st argument" #end @t = parent if index == 'end' || index == :end @@ -55,7 +55,7 @@ end def id - TkText::IndexString.new(_epath(@id)) + Tk::Text::IndexString.new(_epath(@id)) end def mark @path -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/