Sha256: 7d834a91195a5def1b69b6355745335adfa1ab92809efea34cd95e9855505e47

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

require 'swing'
require 'swing/j_menu'
require 'swing/j_menu_item'

module Swing::JMenuBar

  def initialize opts = {}
    super opts

    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 = JMenu.new menu_name.to_s, :parent => self
              menu_structure.each do |item_name, item_action|
                JMenuItem.new item_name.to_s, :parent => menu, &item_action
              end
            end
          else
            self.add element
        end
      end
    end
  end

  # Post-processing (non-setter) options given to initialize
  def self.add_component component, parent
    parent.setJMenuBar component if parent
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
swing-0.1.0 lib/swing/j_menu_bar.rb