def main(): try: import objc from PyObjCTools import AppHelper from AppKit import NSApplication, NSApp, NSObject, NSApplicationActivationPolicyRegular # from Foundation import * class AppDelegate(NSObject): def init(self): self = objc.super(AppDelegate, self).init() if self is None: return None return self def runjava_(self, arg): runAwtStuff() # we need to terminate explicitly, or it'll hang when # the wrapped code exits NSApp().terminate_(self) def applicationDidFinishLaunching_(self, aNotification): self.performSelectorInBackground_withObject_("runjava:", 0) app = NSApplication.sharedApplication() delegate = AppDelegate.alloc().init() NSApp().setDelegate_(delegate) # this is necessary to have keyboard events sent to the UI; # basically this call makes the script act like an OS X application, # with Dock icon and everything NSApp.setActivationPolicy_(NSApplicationActivationPolicyRegular) AppHelper.runEventLoop() except ModuleNotFoundError: print("Skipping OSXAWTwrapper - module 'objc' is not installed")
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() self.statusitem = self.statusbar.statusItemWithLength_(NSVariableStatusItemLength) #NSSquareStatusItemLength #NSVariableStatusItemLength # Set initial image icon icon_path = os.path.join(current_path, "../trayicon.ico") image = NSImage.alloc().initByReferencingFile_(icon_path) image.setScalesWhenResized_(True) image.setSize_((20, 20)) self.statusitem.setImage_(image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) self.statusitem.setToolTip_("ZeroNet") # Build a very simple menu self.menu = NSMenu.alloc().init() self.menu.setAutoenablesItems_(False) #self.create_menu_item( 'ip_external', 'IP: %s' % INFO['ip_external'], 'info:') self.menu.addItem_( NSMenuItem.separatorItem() ) # Links self.create_menu_item( 'open_zeronet', 'Open ZeroNet', 'open:') self.create_menu_item( 'open_reddit', 'Zeronet Reddit Community', 'openreddit:') self.create_menu_item( 'open_gh', 'Report issues/feature requests', 'opengithub:') self.menu.addItem_( NSMenuItem.separatorItem() ) self.create_menu_item( 'quit_zeronet', 'Quit ZeroNet', 'windowWillClose:' ) # Bind it to the status item and hide dock icon self.statusitem.setMenu_(self.menu) NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)
def do_init(): for x in list(sys.argv): if x.startswith("-psn_"): sys.argv.remove(x) if os.environ.get("XPRA_HIDE_DOCK", "") == "1": from AppKit import NSApp #@UnresolvedImport #NSApplicationActivationPolicyAccessory = 1 NSApp.setActivationPolicy_(1)
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() # Create the statusbar item self.statusitem = self.statusbar.statusItemWithLength_(NSVariableStatusItemLength) # Set initial image raw_data = base64.b64decode(''.join(GOAGENT_ICON_DATA.strip().splitlines())) self.image_data = NSData.dataWithBytes_length_(raw_data, len(raw_data)) self.image = NSImage.alloc().initWithData_(self.image_data) self.statusitem.setImage_(self.image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) # Set a tooltip self.statusitem.setToolTip_(GOAGENT_TITLE) # Build a very simple menu self.menu = NSMenu.alloc().init() # Show Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Show', 'show:', '') self.menu.addItem_(menuitem) # Hide Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Hide', 'hide2:', '') self.menu.addItem_(menuitem) # Rest Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Reload', 'reset:', '') self.menu.addItem_(menuitem) # Default event menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_('Quit', 'exit:', '') self.menu.addItem_(menuitem) # Bind it to the status item self.statusitem.setMenu_(self.menu) # Console window frame = NSMakeRect(0,0,550,350) self.console_window = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_(frame, NSClosableWindowMask|NSTitledWindowMask, NSBackingStoreBuffered, False) self.console_window.setTitle_(GOAGENT_TITLE) self.console_window.setDelegate_(self) # Console view inside a scrollview self.scroll_view = NSScrollView.alloc().initWithFrame_(frame) self.scroll_view.setBorderType_(NSNoBorder) self.scroll_view.setHasVerticalScroller_(True) self.scroll_view.setHasHorizontalScroller_(False) self.scroll_view.setAutoresizingMask_(NSViewWidthSizable|NSViewHeightSizable) self.console_view = NSTextView.alloc().initWithFrame_(frame) self.console_view.setVerticallyResizable_(True) self.console_view.setHorizontallyResizable_(True) self.console_view.setAutoresizingMask_(NSViewWidthSizable) self.scroll_view.setDocumentView_(self.console_view) contentView = self.console_window.contentView() contentView.addSubview_(self.scroll_view) # Hide dock icon NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)
def displayAlert(self): alert = NSAlert.alloc().init() alert.setMessageText_(self.messageText) alert.setInformativeText_(self.informativeText) alert.setAlertStyle_(NSInformationalAlertStyle) for button in self.buttons: alert.addButtonWithTitle_(button) if os.path.exists(alertIconPath): icon = NSImage.alloc().initWithContentsOfFile_(alertIconPath) alert.setIcon_(icon) # Don't show the Python rocketship in the dock NSApp.setActivationPolicy_(1) NSApp.activateIgnoringOtherApps_(True) alert.runModal()
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() self.statusitem = self.statusbar.statusItemWithLength_( NSVariableStatusItemLength ) #NSSquareStatusItemLength #NSVariableStatusItemLength # Set initial image icon icon_path = os.path.join(current_path, "../trayicon.ico") image = NSImage.alloc().initByReferencingFile_(icon_path) image.setScalesWhenResized_(True) image.setSize_((20, 20)) self.statusitem.setImage_(image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) self.statusitem.setToolTip_("ZeroNet") # Build a very simple menu self.menu = NSMenu.alloc().init() self.menu.setAutoenablesItems_(False) #self.create_menu_item( 'ip_external', 'IP: %s' % INFO['ip_external'], 'info:') self.menu.addItem_(NSMenuItem.separatorItem()) # Links self.create_menu_item('open_zeronet', 'Open ZeroNet', 'open:') self.create_menu_item('open_reddit', 'Zeronet Reddit Community', 'openreddit:') self.create_menu_item('open_gh', 'Report issues/feature requests', 'opengithub:') self.menu.addItem_(NSMenuItem.separatorItem()) self.create_menu_item('quit_zeronet', 'Quit ZeroNet', 'windowWillClose:') # Bind it to the status item and hide dock icon self.statusitem.setMenu_(self.menu) NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)
def hide_rocket(): if not fbs_runtime.platform.is_mac(): return from AppKit import NSApp NSApp.setActivationPolicy_(NSApplicationActivationPolicyAccessory)
def setupUI(self): self.statusbar = NSStatusBar.systemStatusBar() # Create the statusbar item self.statusitem = self.statusbar.statusItemWithLength_( NSVariableStatusItemLength) # Set initial image raw_data = base64.b64decode(''.join( GOAGENT_ICON_DATA.strip().splitlines())) self.image_data = NSData.dataWithBytes_length_(raw_data, len(raw_data)) self.image = NSImage.alloc().initWithData_(self.image_data) self.statusitem.setImage_(self.image) # Let it highlight upon clicking self.statusitem.setHighlightMode_(1) # Set a tooltip self.statusitem.setToolTip_(GOAGENT_TITLE) # Build a very simple menu self.menu = NSMenu.alloc().init() # Show Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Show', 'show:', '') self.menu.addItem_(menuitem) # Hide Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Hide', 'hide2:', '') self.menu.addItem_(menuitem) # Rest Menu Item menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Reload', 'reset:', '') self.menu.addItem_(menuitem) # Default event menuitem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( 'Quit', 'exit:', '') self.menu.addItem_(menuitem) # Bind it to the status item self.statusitem.setMenu_(self.menu) # Console window frame = NSMakeRect(0, 0, 550, 350) self.console_window = NSWindow.alloc( ).initWithContentRect_styleMask_backing_defer_( frame, NSClosableWindowMask | NSTitledWindowMask, NSBackingStoreBuffered, False) self.console_window.setTitle_(GOAGENT_TITLE) self.console_window.setDelegate_(self) # Console view inside a scrollview self.scroll_view = NSScrollView.alloc().initWithFrame_(frame) self.scroll_view.setBorderType_(NSNoBorder) self.scroll_view.setHasVerticalScroller_(True) self.scroll_view.setHasHorizontalScroller_(False) self.scroll_view.setAutoresizingMask_(NSViewWidthSizable | NSViewHeightSizable) self.console_view = NSTextView.alloc().initWithFrame_(frame) self.console_view.setVerticallyResizable_(True) self.console_view.setHorizontallyResizable_(True) self.console_view.setAutoresizingMask_(NSViewWidthSizable) self.scroll_view.setDocumentView_(self.console_view) contentView = self.console_window.contentView() contentView.addSubview_(self.scroll_view) # Hide dock icon NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited)
try: iDashdash = sys.argv.index("--") except: usage() displaysInQuestion = sys.argv[1:iDashdash] attributesInQuestion = sys.argv[iDashdash+1:] # Hide Dock icon since it will interfere with what we're doing here # See: http://stackoverflow.com/a/9220911/390044 # See: https://developer.apple.com/library/mac/#documentation/AppKit/Reference/NSRunningApplication_Class/Reference/Reference.html NSApplicationActivationPolicyRegular = 0 NSApplicationActivationPolicyAccessory = 1 NSApplicationActivationPolicyProhibited = 2 NSApplication.sharedApplication() NSApp.setActivationPolicy_(NSApplicationActivationPolicyProhibited) # Get the mainScreen mf = NSScreen.mainScreen().frame() mY = mf.origin.y mH = mf.size.height # and all screens to process query screens = NSScreen.screens() def screenIdOf(screen): return str(screen.deviceDescription()["NSScreenNumber"]) def screenDimOf(screen): f = screen.frame() return "%dx%d" % (f.size.width, f.size.height) matchedScreens = [s for s in screens if screenIdOf(s) in displaysInQuestion]