Methods
#
A
D
I
M
T
Y
Included Modules
Constants
TkCommandNames = ['::iwidgets::menubar'.freeze].freeze
 
WidgetClassName = 'Menubar'.freeze
 
Instance Public methods
__methodcall_optkeys()
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 76
def __methodcall_optkeys
  {'menubuttons'=>'menubuttons'}
end
_parse_menu_spec(menu_spec)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 89
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={})
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 137
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)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 153
def delete(path1, path2=nil)
  if path2
  else
    tk_call(@path, 'delete', index(idx))
  end
  self
end
index(idx)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 161
def index(idx)
  number(tk_call(@path, 'index', tagid(idx)))
end
insert(idx, type, tag=nil, keys={})
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 165
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)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 181
def invoke(idx)
  tk_call(@path, 'invoke', index(idx))
  self
end
menubuttons(val = nil)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 80
def menubuttons(val = nil)
  unless val
    return tk_call(@path, 'cget', '-menubuttons')
  end

  tk_call(@path, 'configure', '-menubuttons', _parse_menu_spec(val))
  self
end
menupath(pat)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 186
def menupath(pat)
  if (win = tk_call(@path, 'path', pat)) == '-1'
    return nil
  end
  window(win)
end
menupath_glob(pat)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 192
def menupath_glob(pat)
  if (win = tk_call(@path, 'path', '-glob', pat)) == '-1'
    return nil
  end
  window(win)
end
menupath_tclregexp(pat)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 198
def menupath_tclregexp(pat)
  if (win = tk_call(@path, 'path', '-regexp', pat)) == '-1'
    return nil
  end
  window(win)
end
tagid(tagOrId)
# File ext/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)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 205
def type(path)
  tk_call(@path, 'type', path)
end
yposition(path)
# File ext/tk/lib/tkextlib/iwidgets/menubar.rb, line 209
def yposition(path)
  number(tk_call(@path, 'yposition', path))
end