In Files

  • tk/lib/tkextlib/iwidgets/menubar.rb

Class/Module Index [+]

Quicksearch

Tk::Iwidgets::Menubar

Public Instance Methods

__methodcall_optkeys() click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 77
def __methodcall_optkeys
  {'menubuttons'=>'menubuttons'}
end
            
_parse_menu_spec(menu_spec) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 90
def _parse_menu_spec(menu_spec)
  ret = ''
  menu_spec.each{|spec|
    next unless spec

    if spec.kind_of?(Hash)
      args = [spec]
      type = 'options'
    else
      type, *args = spec
    end

    type = type.to_s
    case type
    when 'options'
      keys = args[0]
      ary = [type]
      ary.concat(hash_kv(keys))
      ret << array2tk_list(ary) << "\n"

    when 'menubutton', 'cascade'
      name, keys = args
      if keys
        ary = [type, name]
        keys = _symbolkey2str(keys)
        keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu')
        ary.concat(hash_kv(keys))
        ret << array2tk_list(ary) << "\n"
      else
        ret << array2tk_list([type, name]) << "\n"
      end

    else
      name, keys = args
      if keys
        ary = [type, name]
        ary.concat(hash_kv(keys))
        ret << array2tk_list(ary) << "\n"
      else
        ret << array2tk_list([type, name]) << "\n"
      end
    end
  }
  ret
end
            
add(type, tag=nil, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 138
def add(type, tag=nil, keys={})
  if tag.kind_of?(Hash)
    keys = tag
    tag = nil
  end
  if tag
    tag = Tk::Itk::Component.new(self, tagid(tag))
  else
    tag = Tk::Itk::Component.new(self)
  end
  keys = _symbolkey2str(keys)
  keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu')
  tk_call(@path, 'add', type, tagid(tag), *hash_kv(keys))
  tag
end
            
delete(path1, path2=nil) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 154
def delete(path1, path2=nil)
  if path2
  else
    tk_call(@path, 'delete', index(idx))
  end
  self
end
            
index(idx) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 162
def index(idx)
  number(tk_call(@path, 'index', tagid(idx)))
end
            
insert(idx, type, tag=nil, keys={}) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 166
def insert(idx, type, tag=nil, keys={})
  if tag.kind_of?(Hash)
    keys = tag
    tag = nil
  end
  if tag
    tag = Tk::Itk::Component.new(self, tagid(tag))
  else
    tag = Tk::Itk::Component.new(self)
  end
  keys = _symbolkey2str(keys)
  keys['menu'] = _parse_menu_spec(keys['menu']) if keys.key?('menu')
  tk_call(@path, 'insert', index(idx), type, tagid(tag), *hash_kv(keys))
  tag
end
            
invoke(idx) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 182
def invoke(idx)
  tk_call(@path, 'invoke', index(idx))
  self
end
            
tagid(tagOrId) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 56
def tagid(tagOrId)
  if tagOrId.kind_of?(Tk::Itk::Component)
    tagOrId.name
  else
    #_get_eval_string(tagOrId)
    tagOrId
  end
end
            
type(path) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 206
def type(path)
  tk_call(@path, 'type', path)
end
            
yposition(path) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 210
def yposition(path)
  number(tk_call(@path, 'yposition', path))
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.