# File tk/lib/tk/menu.rb, line 523 def initialize(*args) # args :: [parent,] [var,] [value[, ...],] [keys] # parent --> TkWindow or nil # var --> TkVariable or nil # keys --> Hash # keys[:parent] or keys['parent'] --> parent # keys[:variable] or keys['variable'] --> var # keys[:values] or keys['values'] --> value, ... # other Hash keys are menubutton options keys = {} keys = args.pop if args[-1].kind_of?(Hash) keys = _symbolkey2str(keys) parent = nil if args[0].kind_of?(TkWindow) || args[0] == nil keys.delete('parent') # ignore parent = args.shift else parent = keys.delete('parent') end @variable = nil if args[0].kind_of?(TkVariable) || args[0] == nil keys.delete('variable') # ignore @variable = args.shift else @variable = keys.delete('variable') end @variable = TkVariable.new unless @variable (args = keys.delete('values') || []) if args.empty? if args.empty? args << @variable.value else @variable.value = args[0] end install_win(if parent then parent.path end) @menu = OptionMenu.new(tk_call('tk_optionMenu', @path, @variable.id, *args)) configure(keys) if keys end
# File tk/lib/tk/menu.rb, line 575 def activate(index) @menu.activate(index) self end
# File tk/lib/tk/menu.rb, line 579 def add(value) @menu.add('radiobutton', 'variable'=>@variable, 'label'=>value, 'value'=>value) self end
# File tk/lib/tk/menu.rb, line 628 def current_entryconfiginfo(index, key=nil) @menu.current_entryconfiginfo(index, key) end
# File tk/lib/tk/menu.rb, line 595 def delete(index, last=None) @menu.delete(index, last) self end
# File tk/lib/tk/menu.rb, line 618 def entrycget(index, key) @menu.entrycget(index, key) end
# File tk/lib/tk/menu.rb, line 625 def entryconfiginfo(index, key=nil) @menu.entryconfiginfo(index, key) end
# File tk/lib/tk/menu.rb, line 621 def entryconfigure(index, key, val=None) @menu.entryconfigure(index, key, val) self end
# File tk/lib/tk/menu.rb, line 584 def index(index) @menu.index(index) end
# File tk/lib/tk/menu.rb, line 590 def insert(index, value) @menu.insert(index, 'radiobutton', 'variable'=>@variable, 'label'=>value, 'value'=>value) self end
# File tk/lib/tk/menu.rb, line 587 def invoke(index) @menu.invoke(index) end