class EverydayMenu::Menu
Public Class Methods
create(label, title, options = {}, &block)
click to toggle source
# File lib/everyday-menu/menu.rb, line 15 def self.create(label, title, options = {}, &block) new(label, &block).tap { |menu| setup_obj(menu, label, title, options) } end
def_accessors()
click to toggle source
# File lib/everyday-menu/menu.rb, line 5 def self.def_accessors my_attr_writer :label my_attr_accessor_bool :servicesMenu, :windowsMenu, :helpMenu, :mainMenu my_attr_reader_bool :statusMenu my_attr_reader :statusItemTitle, :statusItemIcon, :statusItemViewClass, :statusItemLength, :statusItem attr_reader :menu, :builder end
def_aliases()
click to toggle source
# File lib/everyday-menu/menu.rb, line 145 def self.def_aliases alias :statusItemTitle= :setStatusItemTitle alias :status_item_title= :setStatusItemTitle alias :statusItemIcon= :setStatusItemIcon alias :status_item_icon= :setStatusItemIcon alias :statusItemViewClass= :setStatusItemViewClass alias :status_item_view_class= :setStatusItemViewClass end
def_build_blocks()
click to toggle source
# File lib/everyday-menu/menu.rb, line 80 def self.def_build_blocks registerBuildBlock(:services_menu) { |menu| NSApp.servicesMenu = menu.menu } registerBuildBlock(:windows_menu) { |menu| NSApp.windowsMenu = menu.menu } registerBuildBlock(:help_menu) { |menu| NSApp.helpMenu = menu.menu } registerBuildBlock(:status_menu) { |menu| menu.createStatusItem! } end
new(label, &block)
click to toggle source
# File lib/everyday-menu/menu.rb, line 19 def initialize(label, &block) @label = label @builder = block @menu = NSMenu.alloc.init @menu.delegate = self @menuItems = MenuItemList.new(@menu) @mainMenu = false @statusMenu = false @servicesMenu = false @windowsMenu = false @helpMenu = false @statusItemTitle = nil @statusItemIcon = nil @statusItemViewClass = nil @statusItemLength = nil end
registerBuildBlock(field, &block)
click to toggle source
# File lib/everyday-menu/menu.rb, line 75 def self.registerBuildBlock(field, &block) @@buildBlocks ||= {} @@buildBlocks[field] = block end
Public Instance Methods
<<(item)
click to toggle source
# File lib/everyday-menu/menu.rb, line 61 def <<(item) @menuItems << item end
containedObject()
click to toggle source
# File lib/everyday-menu/menu.rb, line 65 def containedObject @menu end
createStatusItem!()
click to toggle source
# File lib/everyday-menu/menu.rb, line 117 def createStatusItem! statusBar = NSStatusBar.systemStatusBar @statusItem = statusBar.statusItemWithLength(@statusItemLength || NSSquareStatusItemLength) @statusItem.highlightMode = true @statusItem.menu = self.menu unless @statusItemViewClass.nil? statusItemView = @statusItemViewClass.viewWithStatusItem(@statusItem) @statusItem.menu.delegate = @statusItemView @statusItem.view = statusItemView end @statusItem.title = @statusItemTitle @statusItem.image = @statusItemIcon @statusItem end
items()
click to toggle source
# File lib/everyday-menu/menu.rb, line 136 def items @menuItems end
label()
click to toggle source
# File lib/everyday-menu/menu.rb, line 89 def label @label ||= nil end
runOnBuild()
click to toggle source
# File lib/everyday-menu/menu.rb, line 69 def runOnBuild @@buildBlocks ||= {} @@buildBlocks.each { |block| block[1].call(self) if self.is(block[0]) } @menuItems.each { |item| item.runOnBuild } end
selectItem(label)
click to toggle source
# File lib/everyday-menu/menu.rb, line 140 def selectItem(label) item = self.items[label] item.execute end
setStatusItemIcon(icon)
click to toggle source
# File lib/everyday-menu/menu.rb, line 99 def setStatusItemIcon(icon) @mainMenu = false unless icon.nil? @statusItemIcon = icon @statusMenu = true unless icon.nil? end
setStatusItemLength(length)
click to toggle source
# File lib/everyday-menu/menu.rb, line 111 def setStatusItemLength(length) @mainMenu = false unless length.nil? @statusItemLength = length @statusMenu = true unless length.nil? end
setStatusItemTitle(title)
click to toggle source
# File lib/everyday-menu/menu.rb, line 93 def setStatusItemTitle(title) @mainMenu = false unless title.nil? @statusItemTitle = title @statusMenu = true unless title.nil? end
setStatusItemViewClass(viewClass)
click to toggle source
# File lib/everyday-menu/menu.rb, line 105 def setStatusItemViewClass(viewClass) @mainMenu = false unless viewClass.nil? @statusItemViewClass = viewClass @statusMenu = true unless viewClass.nil? end
subscribe(label, command_id = nil, &block)
click to toggle source
# File lib/everyday-menu/menu.rb, line 57 def subscribe(label, command_id = nil, &block) self.items[label].subscribe(command_id, &block) end