Class | Tk::Iwidgets::Menubar
In: | tk/lib/tkextlib/iwidgets/menubar.rb
Parent: | Tk::Itk::Widget

### Methods

__methodcall_optkeys _parse_menu_spec add delete index insert invoke menubuttons menupath menupath_glob menupath_tclregexp tagid type yposition

### Included Modules

TkItemConfigMethod

### Constants

TkCommandNames | = | ['::iwidgets::menubar'.freeze].freeze
WidgetClassName | = | 'Menubar'.freeze

### External Aliases

itemcget | -> | menucget
itemconfigure | -> | menuconfigure
itemconfiginfo | -> | menuconfiginfo
current_itemconfiginfo | -> | current_menuconfiginfo

### Public Instance methods

__methodcall_optkeys()

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 74
      def __methodcall_optkeys
        {'menubuttons'=>'menubuttons'}
      end

_parse_menu_spec(menu_spec)

[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={})

[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)

[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)

[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={})

[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)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 179
      def invoke(idx)
        tk_call(@path, 'invoke', index(idx))
        self
      end

menubuttons(val = nil)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 78
      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)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 184
      def menupath(pat)
        if (win = tk_call(@path, 'path', pat)) == '-1'
          return nil
        end
        window(win)
      end

menupath_glob(pat)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 190
      def menupath_glob(pat)
        if (win = tk_call(@path, 'path', '-glob', pat)) == '-1'
          return nil
        end
        window(win)
      end

menupath_tclregexp(pat)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 196
      def menupath_tclregexp(pat)
        if (win = tk_call(@path, 'path', '-regexp', pat)) == '-1'
          return nil
        end
        window(win)
      end

tagid(tagOrId)

[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)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 203
      def type(path)
        tk_call(@path, 'type', path)
      end

yposition(path)

[Source]

    # File tk/lib/tkextlib/iwidgets/menubar.rb, line 207
      def yposition(path)
        number(tk_call(@path, 'yposition', path))
      end

[Validate]