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.
36
37
38
|
# File 'lib/everyday-menu/menu_item.rb', line 36
def initialize(=nil)
@menuItem = || NSMenuItem.alloc.init
end
|
Class Method Details
.create(label, title, options = {}) ⇒ Object
19
20
21
|
# File 'lib/everyday-menu/menu_item.rb', line 19
def self.create(label, title, options = {})
new.tap { |item| setup_obj(item, label, title, options) }
end
|
.def_close_preset ⇒ Object
128
129
130
131
132
|
# File 'lib/everyday-menu/menu_item.rb', line 128
def self.def_close_preset
definePreset(:close) { |item|
fill_preset(item, key_equivalent: 'w') { |_, _| NSApp.keyWindow.performClose(item) }
}
end
|
.def_hide_others_preset ⇒ Object
110
111
112
113
114
|
# File 'lib/everyday-menu/menu_item.rb', line 110
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
104
105
106
107
108
|
# File 'lib/everyday-menu/menu_item.rb', line 104
def self.def_hide_preset
definePreset(:hide) { |item|
fill_preset(item, key_equivalent: 'h') { |_, _| NSApp.hide(item) }
}
end
|
.def_presets ⇒ Object
90
91
92
93
94
95
96
97
|
# File 'lib/everyday-menu/menu_item.rb', line 90
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
122
123
124
125
126
|
# File 'lib/everyday-menu/menu_item.rb', line 122
def self.def_quit_preset
definePreset(:quit) { |item|
fill_preset(item, key_equivalent: 'q') { |_, _| NSApp.terminate(item) }
}
end
|
.def_services_preset ⇒ Object
134
135
136
137
138
139
|
# File 'lib/everyday-menu/menu_item.rb', line 134
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
116
117
118
119
120
|
# File 'lib/everyday-menu/menu_item.rb', line 116
def self.def_show_all_preset
definePreset(:show_all) { |item|
item.subscribe { |_, _| NSApp.unhideAllApplications(item) }
}
end
|
.definePreset(label, &block) ⇒ Object
85
86
87
88
|
# File 'lib/everyday-menu/menu_item.rb', line 85
def self.definePreset(label, &block)
@@presets ||= {}
@@presets[label] = block
end
|
.fill_preset(item, options = {}, &block) ⇒ Object
99
100
101
102
|
# File 'lib/everyday-menu/menu_item.rb', line 99
def self.fill_preset(item, options = {}, &block)
fill_options(item, options)
item.subscribe &block
end
|
.separator ⇒ Object
23
24
25
26
27
28
29
30
|
# File 'lib/everyday-menu/menu_item.rb', line 23
def self.separator
@@separatorId ||= 0
@@separatorId += 1
label = :"separator#{@@separatorId}"
new(NSMenuItem.separatorItem).tap do |item|
item.label = label
end
end
|
.separatorItem ⇒ Object
32
33
34
|
# File 'lib/everyday-menu/menu_item.rb', line 32
def self.separatorItem
self.separator
end
|
Instance Method Details
#commands ⇒ Object
179
180
181
|
# File 'lib/everyday-menu/menu_item.rb', line 179
def commands
@commands ||= EverydayMenu::CommandList.new(self, self.label)
end
|
#containedObject ⇒ Object
40
41
42
|
# File 'lib/everyday-menu/menu_item.rb', line 40
def containedObject
@menuItem
end
|
#execute ⇒ Object
175
176
177
|
# File 'lib/everyday-menu/menu_item.rb', line 175
def execute
@menuItem.runBlock(self)
end
|
#keyEquivalentModifierMask ⇒ Object
67
68
69
|
# File 'lib/everyday-menu/menu_item.rb', line 67
def keyEquivalentModifierMask
@menuItem.keyEquivalentModifierMask
end
|
#label ⇒ Object
51
52
53
|
# File 'lib/everyday-menu/menu_item.rb', line 51
def label
@label ||= nil
end
|
#onBuild ⇒ Object
162
163
164
|
# File 'lib/everyday-menu/menu_item.rb', line 162
def onBuild
@onBuild ||= []
end
|
#registerOnBuild(&block) ⇒ Object
166
167
168
169
|
# File 'lib/everyday-menu/menu_item.rb', line 166
def registerOnBuild(&block)
@onBuild ||= []
@onBuild << block
end
|
#runOnBuild ⇒ Object
158
159
160
|
# File 'lib/everyday-menu/menu_item.rb', line 158
def runOnBuild
onBuild.each { |block| block.call }
end
|
#setDynamicTitle(getter) ⇒ Object
Also known as:
dynamicTitle=, dynamic_title=
145
146
147
|
# File 'lib/everyday-menu/menu_item.rb', line 145
def setDynamicTitle(getter)
@dynamicTitle = EverydayMenu::DynamicTitle.new(getter, self, self.item, self[:title])
end
|
#setKeyEquivalentModifierMask(value) ⇒ Object
Also known as:
keyEquivalentModifierMask=, key_equivalent_modifier_mask=
71
72
73
|
# File 'lib/everyday-menu/menu_item.rb', line 71
def setKeyEquivalentModifierMask(value)
@menuItem.keyEquivalentModifierMask = value
end
|
#setPreset(action) ⇒ Object
78
79
80
81
82
83
|
# File 'lib/everyday-menu/menu_item.rb', line 78
def setPreset(action)
@@presets ||= {}
if @@presets.has_key?(action)
@@presets[action].call(self)
end
end
|
44
45
46
|
# File 'lib/everyday-menu/menu_item.rb', line 44
def ()
@menuItem. = .
end
|
#setTag(tag) ⇒ Object
Also known as:
tag=
61
62
63
|
# File 'lib/everyday-menu/menu_item.rb', line 61
def setTag(tag)
@menuItem.tag = tag
end
|
#subscribe(command_id = nil, &block) ⇒ Object
171
172
173
|
# File 'lib/everyday-menu/menu_item.rb', line 171
def subscribe(command_id = nil, &block)
@menuItem.subscribe(self, self.label, command_id, &block)
end
|
#tag ⇒ Object
57
58
59
|
# File 'lib/everyday-menu/menu_item.rb', line 57
def tag
@menuItem.tag
end
|
#updateDynamicTitle ⇒ Object
152
153
154
|
# File 'lib/everyday-menu/menu_item.rb', line 152
def updateDynamicTitle
@dynamicTitle.update if @dynamicTitle
end
|