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
dynamicTitle=(getter)
Alias for: setDynamicTitle
dynamic_title=(getter)
Alias for: setDynamicTitle
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
keyEquivalentModifierMask=(value)
key_equivalent_modifier_mask=(value)
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
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
setSubmenu(menu) click to toggle source
# File lib/everyday-menu/menu_item.rb, line 44
def setSubmenu(menu)
  @menuItem.submenu = menu.menu
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
tag=(tag)
Alias for: setTag
updateDynamicTitle() click to toggle source
# File lib/everyday-menu/menu_item.rb, line 152
def updateDynamicTitle
  @dynamicTitle.update if @dynamicTitle
end