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 405
  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
      parent = args.shift 
    else
      parent = keys.delete('parent')
    end

    @variable = nil
    if args[0].kind_of?(TkVariable) || args[0] == nil
      @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 455
  def activate(index)
    @menu.activate(index)
    self
  end

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Validate]