diff options
Diffstat (limited to 'ext/tk/lib/tk/menu.rb')
-rw-r--r-- | ext/tk/lib/tk/menu.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ext/tk/lib/tk/menu.rb b/ext/tk/lib/tk/menu.rb index 1972193e51..8a33b482c7 100644 --- a/ext/tk/lib/tk/menu.rb +++ b/ext/tk/lib/tk/menu.rb @@ -3,6 +3,7 @@ # require 'tk' require 'tk/itemconfig' +require 'tk/menuspec' module TkMenuEntryConfig include TkItemConfigMethod @@ -33,6 +34,7 @@ end class TkMenu<TkWindow include TkMenuEntryConfig + extend TkMenuSpec TkCommandNames = ['menu'.freeze].freeze WidgetClassName = 'Menu'.freeze @@ -47,6 +49,24 @@ class TkMenu<TkWindow #end #private :create_self + def self.new_menuspec(menu_spec, parent = nil, tearoff = false, keys = nil) + if parent.kind_of?(Hash) + keys = _symbolkey2str(parent) + parent = keys.delete('parent') + tearoff = keys.delete('tearoff') + elsif tearoff.kind_of?(Hash) + keys = _symbolkey2str(tearoff) + tearoff = keys.delete('tearoff') + elsif keys + keys = _symbolkey2str(keys) + else + keys = {} + end + + widgetname = keys.delete('widgetname') + _create_menu(parent, menu_spec, widgetname, tearoff, keys) + end + def tagid(id) #id.to_s _get_eval_string(id) @@ -389,6 +409,7 @@ class TkMenubutton<TkLabel end private :create_self end +TkMenuButton = TkMenubutton class TkOptionMenubutton<TkMenubutton @@ -509,3 +530,4 @@ class TkOptionMenubutton<TkMenubutton @menu.current_entryconfiginfo(index, key) end end +TkOptionMenuButton = TkOptionMenubutton |