# class Tk::Menu

### Constants

TkCommandNames
WidgetClassName

### Public Class Methods

new_menuspec(menu_spec, parent = nil, tearoff = false, keys = nil) click to toggle source

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

### Public Instance Methods

activate(index) click to toggle source

    # File lib/tk/menu.rb, line 99
    def activate(index)
      tk_send_without_enc('activate', _get_eval_enc_str(index))
      self
    end

add(type, keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 103
    def add(type, keys=nil)
      tk_send_without_enc('add', type, *hash_kv(keys, true))
      self
    end

add_cascade(keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 107
    def add_cascade(keys=nil)
      add('cascade', keys)
    end

add_checkbutton(keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 110
    def add_checkbutton(keys=nil)
      add('checkbutton', keys)
    end

add_command(keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 113
    def add_command(keys=nil)
      add('command', keys)
    end

add_radiobutton(keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 116
    def add_radiobutton(keys=nil)
      add('radiobutton', keys)
    end

add_separator(keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 119
    def add_separator(keys=nil)
      add('separator', keys)
    end

delete(first, last=nil) click to toggle source

    # File lib/tk/menu.rb, line 164
    def delete(first, last=nil)
      if last
        tk_send_without_enc('delete', _get_eval_enc_str(first),
                            _get_eval_enc_str(last))
      else
        tk_send_without_enc('delete', _get_eval_enc_str(first))
      end
      self
    end

index(idx) click to toggle source

    # File lib/tk/menu.rb, line 152
    def index(idx)
      ret = tk_send_without_enc('index', _get_eval_enc_str(idx))
      (ret == 'none')? nil: number(ret)
    end

insert(index, type, keys=nil) click to toggle source

    # File lib/tk/menu.rb, line 159
    def insert(index, type, keys=nil)
      tk_send_without_enc('insert', _get_eval_enc_str(index),
                          type, *hash_kv(keys, true))
      self
    end

invoke(index) click to toggle source

    # File lib/tk/menu.rb, line 156
    def invoke(index)
      _fromUTF8(tk_send_without_enc('invoke', _get_eval_enc_str(index)))
    end

menutype(index) click to toggle source

    # File lib/tk/menu.rb, line 201
    def menutype(index)
      tk_send_without_enc('type', _get_eval_enc_str(index))
    end

popup(x, y, index=nil) click to toggle source

    # File lib/tk/menu.rb, line 173
    def popup(x, y, index=nil)
      if index
        tk_call_without_enc('tk_popup', path, x, y,
                            _get_eval_enc_str(index))
      else
        tk_call_without_enc('tk_popup', path, x, y)
      end
      self
    end

post(x, y) click to toggle source

    # File lib/tk/menu.rb, line 182
    def post(x, y)
      _fromUTF8(tk_send_without_enc('post', x, y))
    end

postcascade(index) click to toggle source

    # File lib/tk/menu.rb, line 185
    def postcascade(index)
      tk_send_without_enc('postcascade', _get_eval_enc_str(index))
      self
    end

postcommand(cmd=Proc.new) click to toggle source

    # File lib/tk/menu.rb, line 189
    def postcommand(cmd=Proc.new)
      configure_cmd 'postcommand', cmd
      self
    end

set_focus() click to toggle source

    # File lib/tk/menu.rb, line 193
    def set_focus
      tk_call_without_enc('tk_menuSetFocus', path)
      self
    end

tagid(id) click to toggle source

    # File lib/tk/menu.rb, line 94
    def tagid(id)
      #id.to_s
      _get_eval_string(id)
    end

tearoffcommand(cmd=Proc.new) click to toggle source

    # File lib/tk/menu.rb, line 197
    def tearoffcommand(cmd=Proc.new)
      configure_cmd 'tearoffcommand', cmd
      self
    end

unpost() click to toggle source

    # File lib/tk/menu.rb, line 204
    def unpost
      tk_send_without_enc('unpost')
      self
    end

xposition(index) click to toggle source

    # File lib/tk/menu.rb, line 208
    def xposition(index)
      number(tk_send_without_enc('xposition', _get_eval_enc_str(index)))
    end

yposition(index) click to toggle source

    # File lib/tk/menu.rb, line 211
    def yposition(index)
      number(tk_send_without_enc('yposition', _get_eval_enc_str(index)))
    end

### Private Instance Methods

__boolval_optkeys() click to toggle source
Calls superclass method TkConfigMethod#__boolval_optkeys

    # File lib/tk/menu.rb, line 71
    def __boolval_optkeys
      super() << 'tearoff'
    end

__strval_optkeys() click to toggle source

def create_self(keys)

    if keys and keys != None
      tk_call_without_enc('menu', @path, *hash_kv(keys, true))
    else
      tk_call_without_enc('menu', @path)
    end

end private :create_self

Calls superclass method TkConfigMethod#__strval_optkeys

    # File lib/tk/menu.rb, line 66
    def __strval_optkeys
      super() << 'selectcolor' << 'title'
    end