def _MenuItem(label, action=None, key='', alt=False, cmd=True, ctrl=False, shift=False): '''New NS menu item with action and optional shortcut key. ''' # <https://Developer.Apple.com/documentation/appkit/nsmenuitem/1514858-initwithtitle> ns = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr(label), get_selector(action), NSStr(key)) if key: mask = 0 if alt: mask |= NSAlternateKeyMask if cmd: mask |= NSCommandKeyMask if ctrl: mask |= NSControlKeyMask if shift: mask |= NSShiftKeyMask # NSAlphaShiftKeyMask if mask: ns.setKeyEquivalentModifierMask_(mask) return ns
def applicationDidFinishLaunching_(self, notification): statusbar = NSStatusBar.systemStatusBar() statusitem = statusbar.statusItemWithLength_(NSVariableStatusItemLength) # statusitem.setHighlightMode_(1) # statusitem.setToolTip_(NSStr('Example')) # statusitem.setTitle_(NSStr('Example')) menu = NSMenu.alloc().init() menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Quit'), get_selector('terminate:'), NSStr('')) menu.addItem_(menuitem) statusitem.setMenu_(menu)
def applicationDidFinishLaunching_(self, notification): # the player needs an NSView object self.window, view = _Window2(title=self.video or self.title) # set the window's delegate to the app's to # make method .windowWillClose_ work, see # <https://Gist.GitHub.com/kaloprominat/6105220> self.window.setDelegate_(self) # pass viewable to VLC player self.player.set_nsobject(view) menu = NSMenu.alloc().init() # create main menu menu.addItem_( _MenuItem('Full ' + 'Screen', 'enterFullScreenMode:', 'f', ctrl=True)) # Ctrl-Cmd-F, Esc to exit menu.addItem_(_MenuItem('Info', 'info:', 'i')) menu.addItem_(_MenuItemSeparator()) self.NSitem = _MenuItem('Pause', 'toggle:', 'p', ctrl=True) # Ctrl-Cmd-P menu.addItem_(self.NSitem) menu.addItem_(_MenuItem('Rewind', 'rewind:', 'r', ctrl=True)) # Ctrl-Cmd-R menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Hide ' + self.title, 'hide:', 'h')) # Cmd-H, implied menu.addItem_( _MenuItem('Hide Others', 'hideOtherApplications:', 'h', alt=True)) # Alt-Cmd-H menu.addItem_(_MenuItem('Show All', 'unhideAllApplications:')) # no key menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Quit ' + self.title, 'terminate:', 'q')) # Cmd-Q subMenu = NSMenuItem.alloc().init() subMenu.setSubmenu_(menu) menuBar = NSMenu.alloc().init() menuBar.addItem_(subMenu) self.app.setMainMenu_(menuBar) self.player.play() # adjust the contents' aspect ratio self.windowDidResize_(None)
def applicationDidFinishLaunching_(self, notification): # the player needs an NSView object self.window, view = _Window2(title=self.video or self.title) # set the window's delegate to the app's to # make method .windowWillClose_ work, see # <http://Gist.GitHub.com/kaloprominat/6105220> self.window.setDelegate_(self) # Create the main menu. menu = NSMenu.alloc().init() menu.addItem_(_MenuItem('Full ' + 'Screen', 'enterFullScreenMode:', 'f', ctrl=True)) # Ctrl-Cmd-F, Esc to exit if self.player: # setup player view and menu self.player.set_nsobject(view) menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Play', 'play:', 'p')) menu.addItem_(_MenuItem('Pause', 'pause:', 's')) menu.addItem_(_MenuItem('Rewind', 'rewind:', 'r')) menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Faster', 'faster:', '>', shift=True)) menu.addItem_(_MenuItem('Slower', 'slower:', '<', shift=True)) menu.addItem_(_MenuItem('Zoom In', 'zoomIn:', '+')) menu.addItem_(_MenuItem('Zoom Out', 'zoomOut:', '-')) menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Info', 'info:', 'i')) menu.addItem_(_MenuItem('Close Windows', 'windowWillClose:', 'w')) menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Hide ' + self.title, 'hide:', 'h')) # Cmd-H, implied menu.addItem_(_MenuItem('Hide Others', 'hideOtherApplications:', 'h', alt=True)) # Alt-Cmd-H menu.addItem_(_MenuItem('Show All', 'unhideAllApplications:')) # no key menu.addItem_(_MenuItemSeparator()) menu.addItem_(_MenuItem('Quit ' + self.title, 'terminate:', 'q')) # Cmd-Q subMenu = NSMenuItem.alloc().init() subMenu.setSubmenu_(menu) menuBar = NSMenu.alloc().init() menuBar.addItem_(subMenu) self.app.setMainMenu_(menuBar) self.play_(None) # adjust the contents' aspect ratio self.windowDidResize_(None)
def applicationDidFinishLaunching_(self, notification): self.window, view = new_window(title=self.title) self.window.setDelegate_(self) self.player.set_nsobject(view) # Create the main menu. menu = NSMenu.alloc().init() menu.addItem_( new_menu_item( 'Full Screen', 'enterFullScreenMode:', 'f', ctrl=True ) ) menu.addItem_(new_menu_seperator()) menu.addItem_(new_menu_item('Play', 'play:', 'p')) menu.addItem_(new_menu_item('Pause', 'pause:', 's')) menu.addItem_(new_menu_seperator()) menu.addItem_(new_menu_item('Faster', 'faster:', '>', shift=True)) menu.addItem_(new_menu_item('Slower', 'slower:', '<', shift=True)) menu.addItem_(new_menu_item('Zoom In', 'zoomIn:', '+')) menu.addItem_(new_menu_item('Zoom Out', 'zoomOut:', '-')) menu.addItem_(new_menu_seperator()) menu.addItem_(new_menu_item('Close Window', 'windowWillClose:', 'w')) menu.addItem_(new_menu_seperator()) menu.addItem_(new_menu_item('Hide Window', 'hide:', 'h')) menu.addItem_( new_menu_item( 'Hide Others', 'hideOtherApplications:', 'h', alt=True ) ) menu.addItem_(new_menu_item('Show All', 'unhideAllApplications:')) menu.addItem_(new_menu_seperator()) menu.addItem_(new_menu_item('Quit ' + self.title, 'terminate:', 'q')) subMenu = NSMenuItem.alloc().init() subMenu.setSubmenu_(menu) menuBar = NSMenu.alloc().init() menuBar.addItem_(subMenu) self.app.setMainMenu_(menuBar) self.play_(None)
def new_menu_item(label, action=None, key='', alt=False, cmd=True, ctrl=False, shift=False): # <http://developer.apple.com/documentation/appkit/nsmenuitem/1514858-initwithtitle> item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr(label), get_selector(action), NSStr(key)) if key: mask = 0 if alt: mask |= NSAlternateKeyMask if cmd: mask |= NSCommandKeyMask if ctrl: mask |= NSControlKeyMask if shift: mask |= NSShiftKeyMask # NSAlphaShiftKeyMask if mask: item.setKeyEquivalentModifierMask_(mask) return item
def create_menu(name='', app=None): menubar = NSMenu.alloc().init() appMenuItem = NSMenuItem.alloc().init() menubar.addItem_(appMenuItem) appMenu = NSMenu.alloc().init() fullItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Full Screen'), get_selector('enterFullScreenMode:'), NSStr('f')) fullItem.setKeyEquivalentModifierMask_(NSControlKeyMask) # Ctrl-Cmd-F appMenu.addItem_(fullItem) appMenu.addItem_(NSMenuItem.separatorItem()) hideItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Hide ' + name), get_selector('hide:'), NSStr('h')) appMenu.addItem_(hideItem) otherItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Hide Others'), get_selector('hideOtherApplications:'), NSStr('h')) otherItem.setKeyEquivalentModifierMask_(NSAlternateKeyMask) # Alt-Cmd-H appMenu.addItem_(otherItem) showItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Show All'), get_selector('unhideAllApplications:'), NSStr('')) appMenu.addItem_(showItem) appMenu.addItem_(NSMenuItem.separatorItem()) quitItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr('Quit ' + name), get_selector('terminate:'), NSStr('q')) appMenu.addItem_(quitItem) appMenuItem.setSubmenu_(appMenu) if app: app.setMainMenu_(menubar) return menubar
def _MenuItemSeparator(): '''A menu separator item. ''' return NSMenuItem.separatorItem()
def new_menu_seperator(): return NSMenuItem.separatorItem()