Class: EverydayMenu::Menu
- Inherits:
-
Object
- Object
- EverydayMenu::Menu
show all
- Includes:
- MyAccessors
- Defined in:
- lib/everyday-menu/menu.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#[], #[]=, #has, #is, key_to_name, my_attr_accessor, my_attr_accessor_bool, my_attr_reader, my_attr_reader_bool, my_attr_writer, name_to_key
Constructor Details
#initialize(label, &block) ⇒ Menu
Returns a new instance of Menu.
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/everyday-menu/menu.rb', line 23
def initialize(label, &block)
@label = label
@builder = block
@menu = NSMenu.alloc.init
@menuItems = MenuItemList.new(@menu)
@mainMenu = false
@statusMenu = false
@servicesMenu = false
@windowsMenu = false
@helpMenu = false
@statusItemTitle = nil
@statusItemIcon = nil
@statusItemViewClass = nil
end
|
Instance Attribute Details
#builder ⇒ Object
Returns the value of attribute builder.
13
14
15
|
# File 'lib/everyday-menu/menu.rb', line 13
def builder
@builder
end
|
Returns the value of attribute menu.
13
14
15
|
# File 'lib/everyday-menu/menu.rb', line 13
def
@menu
end
|
Class Method Details
.create(label, title, options = {}, &block) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/everyday-menu/menu.rb', line 15
def self.create(label, title, options = {}, &block)
new(label, &block).tap { ||
[:label] = label
[:title] = title
options.each { |option| [option[0]] = option[1] }
}
end
|
.registerBuildBlock(field, &block) ⇒ Object
69
70
71
72
|
# File 'lib/everyday-menu/menu.rb', line 69
def self.registerBuildBlock(field, &block)
@@buildBlocks ||= {}
@@buildBlocks[field] = block
end
|
Instance Method Details
#<<(item) ⇒ Object
55
56
57
|
# File 'lib/everyday-menu/menu.rb', line 55
def <<(item)
@menuItems << item
end
|
#containedObject ⇒ Object
59
60
61
|
# File 'lib/everyday-menu/menu.rb', line 59
def containedObject
@menu
end
|
#createStatusItem! ⇒ Object
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/everyday-menu/menu.rb', line 110
def createStatusItem!
statusBar = NSStatusBar.systemStatusBar
@statusItem = statusBar.statusItemWithLength(NSSquareStatusItemLength)
@statusItem.highlightMode = true
@statusItem. = self.
unless @statusItemViewClass.nil?
statusItemView = @statusItemViewClass.viewWithStatusItem(@statusItem)
@statusItem..delegate = @statusItemView
@statusItem.view = statusItemView
end
@statusItem.title = @statusItemTitle
@statusItem.image = @statusItemIcon
@statusItem
end
|
#items ⇒ Object
129
130
131
|
# File 'lib/everyday-menu/menu.rb', line 129
def items
@menuItems
end
|
#label ⇒ Object
79
80
81
|
# File 'lib/everyday-menu/menu.rb', line 79
def label
@label ||= nil
end
|
45
46
47
|
# File 'lib/everyday-menu/menu.rb', line 45
def
@mainMenuItem.item
end
|
38
39
40
41
|
# File 'lib/everyday-menu/menu.rb', line 38
def
@mainMenuItem ||= MenuItem.create(self[:label], self[:title], submenu: self)
self
end
|
#runOnBuild ⇒ Object
63
64
65
66
67
|
# File 'lib/everyday-menu/menu.rb', line 63
def runOnBuild
@@buildBlocks ||= {}
@@buildBlocks.each { |block| block[1].call(self) if self.is(block[0]) }
@menuItems.each { |item| item.runOnBuild }
end
|
#setStatusItemIcon(icon) ⇒ Object
Also known as:
statusItemIcon=, status_item_icon=
92
93
94
95
96
|
# File 'lib/everyday-menu/menu.rb', line 92
def setStatusItemIcon(icon)
@mainMenu = false unless icon.nil?
@statusItemIcon = icon
@statusMenu = true unless icon.nil?
end
|
#setStatusItemTitle(title) ⇒ Object
Also known as:
statusItemTitle=, status_item_title=
83
84
85
86
87
|
# File 'lib/everyday-menu/menu.rb', line 83
def setStatusItemTitle(title)
@mainMenu = false unless title.nil?
@statusItemTitle = title
@statusMenu = true unless title.nil?
end
|
#setStatusItemViewClass(viewClass) ⇒ Object
Also known as:
statusItemViewClass=, status_item_view_class=
101
102
103
104
105
|
# File 'lib/everyday-menu/menu.rb', line 101
def setStatusItemViewClass(viewClass)
@mainMenu = false unless viewClass.nil?
@statusItemViewClass = viewClass
@statusMenu = true unless viewClass.nil?
end
|
#subscribe(label, command_id = nil, &block) ⇒ Object
51
52
53
|
# File 'lib/everyday-menu/menu.rb', line 51
def subscribe(label, command_id = nil, &block)
self.items[label].subscribe(command_id, &block)
end
|