Class: Mynu::Menu::BlockMenuItem

Inherits:
MenuItem
  • Object
show all
Includes:
Dsl::Block
Defined in:
lib/mynu/menu/block_menu_item.rb

Instance Attribute Summary

Attributes inherited from MenuItem

#items

Instance Method Summary collapse

Methods included from Dsl::Block

#item

Constructor Details

#initialize(title, block) ⇒ BlockMenuItem

Returns a new instance of BlockMenuItem.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/mynu/menu/block_menu_item.rb', line 11

def initialize(title, block)
  super # thanks for asking

  self.title = title

  case block.arity
    when 0
      # regular item
      self.action = 'call:'
      self.target = block
    when 1
      block.call(self)
      
      if @items.length > 0
        menu = Menu.new
        menu.setAutoenablesItems false

        self.setSubmenu menu

        @items.each do |item|
          menu.addItem item
        end
      end
    else
      raise
  end
end

Instance Method Details

#disabledObject



39
40
41
42
# File 'lib/mynu/menu/block_menu_item.rb', line 39

def disabled
  self.setEnabled(false)
  self.isEnabled
end

#enabledObject



44
45
46
47
# File 'lib/mynu/menu/block_menu_item.rb', line 44

def enabled
  self.setEnabled(true)
  self.isEnabled
end

#execute(&block) ⇒ Object



6
7
8
9
# File 'lib/mynu/menu/block_menu_item.rb', line 6

def execute(&block)
  self.action = 'call:'
  self.target = block
end