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 74
def __methodcall_optkeys
  {'menubuttons'=>'menubuttons'}
end
            
_parse_menu_spec(menu_spec) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 87
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 135
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 151
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 159
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 163
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 179
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 55
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 203
def type(path)
  tk_call(@path, 'type', path)
end
            
yposition(path) click to toggle source
 
               # File tk/lib/tkextlib/iwidgets/menubar.rb, line 207
def yposition(path)
  number(tk_call(@path, 'yposition', path))
end