diff options
author | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-12 23:08:32 +0000 |
---|---|---|
committer | nagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-07-12 23:08:32 +0000 |
commit | ed6ce8b43b6f25df1d4809ac799de4dd1c85c1f3 (patch) | |
tree | 09bc05d679d0f224a29fee44d10beea321bdc0b5 /ext/tk/lib/tk/menubar.rb | |
parent | e13fb8029b87943ab8af2211226b7c9347d3976d (diff) |
* ext/tk/extconf.rb: New strategy for searching Tcl/Tk libraries.
* ext/tk/*: Support new features of Tcl/Tk8.6b1 and minor bug fixes.
( [KNOWN BUG] Ruby/Tk on Ruby 1.9 will not work on Cygwin. )
* ext/tk/*: Unify sources between Ruby 1.8 & 1.9.
Improve default_widget_set handling.
* ext/tk/*: Multi-TkInterpreter (multi-tk.rb) works on Ruby 1.8 & 1.9.
( [KNOWN BUG] On Ruby 1.8, join to a long term Thread on Tk
callbacks may freeze. On Ruby 1.9, cannot create a second
master interpreter (creating slaves are OK); supported master
interpreter is the default master interpreter only. )
* ext/tk/lib/tkextlib/*: Update supported versions of Tk extensions.
Tcllib 1.8/Tklib 0.4.1 ==> Tcllib 1.11.1/Tklib 0.5
BWidgets 1.7 ==> BWidgets 1.8
TkTable 2.9 ==> TkTable 2.10
TkTreeCtrl 2005-12-02 ==> TkTreeCtrl 2.2.9
Tile 0.8.0/8.5.1 ==> Tile 0.8.3/8.6b1
IncrTcl 2005-02-14 ==> IncrTcl 2008-12-15
TclX 2005-02-07 ==> TclX 2008-12-15
Trofs 0.4.3 ==> Trofs 0.4.4
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/tk/menubar.rb')
-rw-r--r-- | ext/tk/lib/tk/menubar.rb | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/ext/tk/lib/tk/menubar.rb b/ext/tk/lib/tk/menubar.rb index ac537cb4ec..9d5571c470 100644 --- a/ext/tk/lib/tk/menubar.rb +++ b/ext/tk/lib/tk/menubar.rb @@ -93,24 +93,30 @@ class TkMenubar<Tk::Frame include TkComposite include TkMenuSpec - def initialize(parent = nil, spec = nil, options = nil) + def initialize(parent = nil, spec = nil, options = {}) if parent.kind_of? Hash - options = _symbolkey2str(parent) - spec = options.delete('spec') - super(options) - else - super(parent, options) + options = parent + parent = nil + spec = (options.has_key?('spec'))? options.delete('spec'): nil end + _symbolkey2str(options) + menuspec_opt = {} + TkMenuSpec::MENUSPEC_OPTKEYS.each{|key| + menuspec_opt[key] = options.delete(key) if options.has_key?(key) + } + + super(parent, options) + @menus = [] - spec.each{|info| add_menu(info)} if spec + spec.each{|info| add_menu(info, menuspec_opt)} if spec options.each{|key, value| configure(key, value)} if options end - def add_menu(menu_info) - mbtn, menu = _create_menubutton(@frame, menu_info) + def add_menu(menu_info, menuspec_opt={}) + mbtn, menu = _create_menubutton(@frame, menu_info, menuspec_opt) submenus = _get_cascade_menus(menu).flatten |