Class TkOptionMenubutton
In: tk/lib/tk/menu.rb
Parent: TkMenubutton

Methods

Classes and Modules

Class TkOptionMenubutton::OptionMenu

Constants

TkCommandNames = ['tk_optionMenu'.freeze].freeze

Public Class methods

[Source]

# File tk/lib/tk/menu.rb, line 455
  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

Public Instance methods

[Source]

# File tk/lib/tk/menu.rb, line 507
  def activate(index)
    @menu.activate(index)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 511
  def add(value)
    @menu.add('radiobutton', 'variable'=>@variable, 
              'label'=>value, 'value'=>value)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 560
  def current_entryconfiginfo(index, key=nil)
    @menu.current_entryconfiginfo(index, key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 547
  def current_menuconfiginfo(key=nil)
    @menu.current_configinfo(key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 527
  def delete(index, last=None)
    @menu.delete(index, last)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 550
  def entrycget(index, key)
    @menu.entrycget(index, key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 557
  def entryconfiginfo(index, key=nil)
    @menu.entryconfiginfo(index, key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 553
  def entryconfigure(index, key, val=None)
    @menu.entryconfigure(index, key, val)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 516
  def index(index)
    @menu.index(index)
  end

[Source]

# File tk/lib/tk/menu.rb, line 522
  def insert(index, value)
    @menu.insert(index, 'radiobutton', 'variable'=>@variable, 
              'label'=>value, 'value'=>value)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 519
  def invoke(index)
    @menu.invoke(index)
  end

[Source]

# File tk/lib/tk/menu.rb, line 534
  def menu
    @menu
  end

[Source]

# File tk/lib/tk/menu.rb, line 537
  def menucget(key)
    @menu.cget(key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 544
  def menuconfiginfo(key=nil)
    @menu.configinfo(key)
  end

[Source]

# File tk/lib/tk/menu.rb, line 540
  def menuconfigure(key, val=None)
    @menu.configure(key, val)
    self
  end

[Source]

# File tk/lib/tk/menu.rb, line 499
  def value
    @variable.value
  end

[Source]

# File tk/lib/tk/menu.rb, line 503
  def value=(val)
    @variable.value = val
  end

[Source]

# File tk/lib/tk/menu.rb, line 531
  def yposition(index)
    @menu.yposition(index)
  end

[Validate]