# File tk/lib/tk/menu.rb, line 593 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.empty? && (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.empty? && (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 645 def activate(index) @menu.activate(index) self end
# File tk/lib/tk/menu.rb, line 649 def add(value) @menu.add('radiobutton', 'variable'=>@variable, 'label'=>value, 'value'=>value) self end
# File tk/lib/tk/menu.rb, line 707 def current_entryconfiginfo(index, key=nil) @menu.current_entryconfiginfo(index, key) end
# File tk/lib/tk/menu.rb, line 665 def delete(index, last=None) @menu.delete(index, last) self end
# File tk/lib/tk/menu.rb, line 694 def entrycget(index, key) @menu.entrycget(index, key) end
# File tk/lib/tk/menu.rb, line 697 def entrycget_strict(index, key) @menu.entrycget_strict(index, key) end
# File tk/lib/tk/menu.rb, line 704 def entryconfiginfo(index, key=nil) @menu.entryconfiginfo(index, key) end
# File tk/lib/tk/menu.rb, line 700 def entryconfigure(index, key, val=None) @menu.entryconfigure(index, key, val) self end
# File tk/lib/tk/menu.rb, line 654 def index(index) @menu.index(index) end
# File tk/lib/tk/menu.rb, line 660 def insert(index, value) @menu.insert(index, 'radiobutton', 'variable'=>@variable, 'label'=>value, 'value'=>value) self end
# File tk/lib/tk/menu.rb, line 657 def invoke(index) @menu.invoke(index) end
# File tk/lib/tk/menu.rb, line 641 def value=(val) @variable.value = val end