Class: EverydayMenu::MenuItem
- Inherits:
-
Object
- Object
- EverydayMenu::MenuItem
show all
- Includes:
- MyAccessors
- Defined in:
- lib/everyday-menu/menu_item.rb
Class Method Summary
collapse
Instance Method Summary
collapse
#[], #[]=, common_names, def_getter, def_setter, define_methods, fill_options, #get_val, getter_names, #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, #set_val, setter_names, setup_obj
Constructor Details
#initialize(menuItem = nil) ⇒ MenuItem
Returns a new instance of MenuItem.
22
23
24
|
# File 'lib/everyday-menu/menu_item.rb', line 22
def initialize(=nil)
@menuItem = || NSMenuItem.alloc.init
end
|
Class Method Details
.create(label, title, options = {}) ⇒ Object
5
6
7
|
# File 'lib/everyday-menu/menu_item.rb', line 5
def self.create(label, title, options = {})
new.tap { |item| setup_obj(item, label, title, options) }
end
|
.def_close_preset ⇒ Object
114
115
116
117
118
|
# File 'lib/everyday-menu/menu_item.rb', line 114
def self.def_close_preset
definePreset(:close) { |item|
fill_preset(item, key_equivalent: 'w') { |_, _| NSApp.keyWindow.performClose(item) }
}
end
|
.def_hide_others_preset ⇒ Object
96
97
98
99
100
|
# File 'lib/everyday-menu/menu_item.rb', line 96
def self.def_hide_others_preset
definePreset(:hide_others) { |item|
fill_preset(item, key_equivalent: 'H', key_equivalent_modifier_mask: NSCommandKeyMask|NSAlternateKeyMask) { |_, _| NSApp.hideOtherApplications(item) }
}
end
|
.def_hide_preset ⇒ Object
90
91
92
93
94
|
# File 'lib/everyday-menu/menu_item.rb', line 90
def self.def_hide_preset
definePreset(:hide) { |item|
fill_preset(item, key_equivalent: 'h') { |_, _| NSApp.hide(item) }
}
end
|
.def_presets ⇒ Object
76
77
78
79
80
81
82
83
|
# File 'lib/everyday-menu/menu_item.rb', line 76
def self.def_presets
def_hide_preset
def_hide_others_preset
def_show_all_preset
def_quit_preset
def_close_preset
def_services_preset
end
|
.def_quit_preset ⇒ Object
108
109
110
111
112
|
# File 'lib/everyday-menu/menu_item.rb', line 108
def self.def_quit_preset
definePreset(:quit) { |item|
fill_preset(item, key_equivalent: 'q') { |_, _| NSApp.terminate(item) }
}
end
|
.def_services_preset ⇒ Object
120
121
122
123
124
125
|
# File 'lib/everyday-menu/menu_item.rb', line 120
def self.def_services_preset
definePreset(:services) { |item|
item[:submenu] = Menu.create(:services_menu, item[:title], services_menu: true)
item.registerOnBuild { NSApp. = item[:submenu] }
}
end
|
.def_show_all_preset ⇒ Object
102
103
104
105
106
|
# File 'lib/everyday-menu/menu_item.rb', line 102
def self.def_show_all_preset
definePreset(:show_all) { |item|
item.subscribe { |_, _| NSApp.unhideAllApplications(item) }
}
end
|
.definePreset(label, &block) ⇒ Object
71
72
73
74
|
# File 'lib/everyday-menu/menu_item.rb', line 71
def self.definePreset(label, &block)
@@presets ||= {}
@@presets[label] = block
end
|
.fill_preset(item, options = {}, &block) ⇒ Object
85
86
87
88
|
# File 'lib/everyday-menu/menu_item.rb', line 85
def self.fill_preset(item, options = {}, &block)
fill_options(item, options)
item.subscribe &block
end
|
.separator ⇒ Object
9
10
11
12
13
14
15
16
|
# File 'lib/everyday-menu/menu_item.rb', line 9
def self.separator
@@separatorId ||= 0
@@separatorId += 1
label = :"separator#{@@separatorId}"
new(NSMenuItem.separatorItem).tap do |item|
item.label = label
end
end
|
.separatorItem ⇒ Object
18
19
20
|
# File 'lib/everyday-menu/menu_item.rb', line 18
def self.separatorItem
self.separator
end
|
Instance Method Details
#commands ⇒ Object
150
151
152
|
# File 'lib/everyday-menu/menu_item.rb', line 150
def commands
@commands ||= EverydayMenu::CommandList.new(self, self.label)
end
|
#containedObject ⇒ Object
26
27
28
|
# File 'lib/everyday-menu/menu_item.rb', line 26
def containedObject
@menuItem
end
|
#execute ⇒ Object
146
147
148
|
# File 'lib/everyday-menu/menu_item.rb', line 146
def execute
@menuItem.runBlock(self)
end
|
#keyEquivalentModifierMask ⇒ Object
53
54
55
|
# File 'lib/everyday-menu/menu_item.rb', line 53
def keyEquivalentModifierMask
@menuItem.keyEquivalentModifierMask
end
|
#label ⇒ Object
37
38
39
|
# File 'lib/everyday-menu/menu_item.rb', line 37
def label
@label ||= nil
end
|
#onBuild ⇒ Object
133
134
135
|
# File 'lib/everyday-menu/menu_item.rb', line 133
def onBuild
@onBuild ||= []
end
|
#registerOnBuild(&block) ⇒ Object
137
138
139
140
|
# File 'lib/everyday-menu/menu_item.rb', line 137
def registerOnBuild(&block)
@onBuild ||= []
@onBuild << block
end
|
#runOnBuild ⇒ Object
129
130
131
|
# File 'lib/everyday-menu/menu_item.rb', line 129
def runOnBuild
onBuild.each { |block| block.call }
end
|
#setKeyEquivalentModifierMask(value) ⇒ Object
Also known as:
keyEquivalentModifierMask=, key_equivalent_modifier_mask=
57
58
59
|
# File 'lib/everyday-menu/menu_item.rb', line 57
def setKeyEquivalentModifierMask(value)
@menuItem.keyEquivalentModifierMask = value
end
|
#setPreset(action) ⇒ Object
64
65
66
67
68
69
|
# File 'lib/everyday-menu/menu_item.rb', line 64
def setPreset(action)
@@presets ||= {}
if @@presets.has_key?(action)
@@presets[action].call(self)
end
end
|
30
31
32
|
# File 'lib/everyday-menu/menu_item.rb', line 30
def ()
@menuItem. = .
end
|
#setTag(tag) ⇒ Object
Also known as:
tag=
47
48
49
|
# File 'lib/everyday-menu/menu_item.rb', line 47
def setTag(tag)
@menuItem.tag = tag
end
|
#subscribe(command_id = nil, &block) ⇒ Object
142
143
144
|
# File 'lib/everyday-menu/menu_item.rb', line 142
def subscribe(command_id = nil, &block)
@menuItem.subscribe(self, self.label, command_id, &block)
end
|
#tag ⇒ Object
43
44
45
|
# File 'lib/everyday-menu/menu_item.rb', line 43
def tag
@menuItem.tag
end
|