def awakeFromNib(self): self.toolbarItemCache = {} # create toolbar containing search field toolbar = NSToolbar.alloc().initWithIdentifier_(kToolbarIdentifier) toolbar.setDelegate_(self) toolbar.setAllowsUserCustomization_(True) toolbar.setAutosavesConfiguration_(True) searchFieldItem = NSToolbarItem.alloc().initWithItemIdentifier_(kSearchFieldItemIdentifier) self.searchFieldItem = searchFieldItem searchFieldItem.setLabel_("Search") searchFieldItem.setPaletteLabel_("Search Field") searchFieldItem.setToolTip_("Search") searchFieldItem.setView_(self.searchField) searchFieldItem.setMinSize_(self.searchField.bounds().size) maxSize = self.searchField.bounds().size maxSize.width = maxSize.width + 150 searchFieldItem.setMaxSize_(maxSize) self.toolbarItemCache[kSearchFieldItemIdentifier] = searchFieldItem self.window.setToolbar_(toolbar) cellMenu = NSMenu.alloc().initWithTitle_('Search Menu') # note, bottom up! for v in [kRegularExpressionSearch, kLiteralSearch]: item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(v, 'changeSearchType:', '') item.setRepresentedObject_(v) item.setTarget_(self) cellMenu.insertItem_atIndex_(item, 0) self.searchField.cell().setSearchMenuTemplate_(cellMenu) # this better be the kLiteralSearch menu item self.changeSearchType_(item)
def _MenuItem(label, action=None, key='', alt=False, cmd=True, ctrl=False, shift=False): '''New NS menu item with action and optional shortcut key. ''' # <http://Developer.Apple.com/documentation/appkit/nsmenuitem/1514858-initwithtitle> ns = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( NSStr(label), NSStr(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): # the VLC 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, see PyObjC Generated types ... # <https://PyObjC.ReadTheDocs.io/en/latest/core/type-wrapper.html> self.player.set_nsobject(view.__c_void_p__()) 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 awakeFromNib(self): self.toolbarItemCache = {} # create toolbar containing search field toolbar = NSToolbar.alloc().initWithIdentifier_(kToolbarIdentifier) toolbar.setDelegate_(self) toolbar.setAllowsUserCustomization_(True) toolbar.setAutosavesConfiguration_(True) searchFieldItem = NSToolbarItem.alloc().initWithItemIdentifier_( kSearchFieldItemIdentifier ) self.searchFieldItem = searchFieldItem searchFieldItem.setLabel_("Search") searchFieldItem.setPaletteLabel_("Search Field") searchFieldItem.setToolTip_("Search") searchFieldItem.setView_(self.searchField) searchFieldItem.setMinSize_(self.searchField.bounds().size) maxSize = self.searchField.bounds().size maxSize.width = maxSize.width + 150 searchFieldItem.setMaxSize_(maxSize) self.toolbarItemCache[kSearchFieldItemIdentifier] = searchFieldItem self.window.setToolbar_(toolbar) cellMenu = NSMenu.alloc().initWithTitle_("Search Menu") # note, bottom up! for v in [kRegularExpressionSearch, kLiteralSearch]: item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( v, "changeSearchType:", "" ) item.setRepresentedObject_(v) item.setTarget_(self) cellMenu.insertItem_atIndex_(item, 0) self.searchField.cell().setSearchMenuTemplate_(cellMenu) # this better be the kLiteralSearch menu item self.changeSearchType_(item)
def _MenuItemSeparator(): '''A menu separator item. ''' return NSMenuItem.separatorItem()