class EverydayMenu::MenuItem
Public Class Methods
create(label, title, options = {})
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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.servicesMenu = item[:submenu] } } end
def_show_all_preset()
click to toggle source
# 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)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 85 def self.definePreset(label, &block) @@presets ||= {} @@presets[label] = block end
fill_preset(item, options = {}, &block)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 99 def self.fill_preset(item, options = {}, &block) fill_options(item, options) item.subscribe &block end
new(menuItem=nil)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 36 def initialize(menuItem=nil) @menuItem = menuItem || NSMenuItem.alloc.init end
separator()
click to toggle source
# 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()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 32 def self.separatorItem self.separator end
Public Instance Methods
commands()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 179 def commands @commands ||= EverydayMenu::CommandList.new(self, self.label) end
containedObject()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 40 def containedObject @menuItem end
execute()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 175 def execute @menuItem.runBlock(self) end
keyEquivalentModifierMask()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 67 def keyEquivalentModifierMask @menuItem.keyEquivalentModifierMask end
label()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 51 def label @label ||= nil end
onBuild()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 162 def onBuild @onBuild ||= [] end
registerOnBuild(&block)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 166 def registerOnBuild(&block) @onBuild ||= [] @onBuild << block end
runOnBuild()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 158 def runOnBuild onBuild.each { |block| block.call } end
setDynamicTitle(getter)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 145 def setDynamicTitle(getter) @dynamicTitle = EverydayMenu::DynamicTitle.new(getter, self, self.item, self[:title]) end
Also aliased as: dynamicTitle=, dynamic_title=
setKeyEquivalentModifierMask(value)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 71 def setKeyEquivalentModifierMask(value) @menuItem.keyEquivalentModifierMask = value end
Also aliased as: keyEquivalentModifierMask=, key_equivalent_modifier_mask=
setPreset(action)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 78 def setPreset(action) @@presets ||= {} if @@presets.has_key?(action) @@presets[action].call(self) end end
setTag(tag)
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 61 def setTag(tag) @menuItem.tag = tag end
Also aliased as: tag=
subscribe(command_id = nil, &block)
click to toggle source
# 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()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 57 def tag @menuItem.tag end
updateDynamicTitle()
click to toggle source
# File lib/everyday-menu/menu_item.rb, line 152 def updateDynamicTitle @dynamicTitle.update if @dynamicTitle end