Sha256: fa024850dfb74b0dfb18ef804df4f594b3bdc131ea4eaaebb7ffc7ba1d1e5b70

Contents?: true

Size: 834 Bytes

Versions: 2

Compression:

Stored size: 834 Bytes

Contents

require 'swing/menu'
require 'swing/menu_item'
require 'swing/attr_setter'

module Swing

  class MenuBar < javax.swing.JMenuBar
    include AttrSetter

    def initialize opts = {}
      set_attributes(opts) { super() }

      if opts[:structure]
        [opts[:structure]].flatten.each do |element|
          case element
            when Hash # Hash defines menu structure
              element.each do |menu_name, menu_structure|
                menu = Menu.new menu_name.to_s, :parent => self
                menu_structure.each do |item_name, item_action|
                  MenuItem.new item_name.to_s, :parent => menu, &item_action
                end
              end
            else
              self.add element
          end
        end
      end
      opts[:parent].setJMenuBar self if opts[:parent]
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
swing-0.0.5 lib/swing/menu_bar.rb
swing-0.0.3 lib/swing/menu_bar.rb