def run(self): self._syncer = Syncer() self._syncer.start() app = NSApplication.sharedApplication() app.setActivationPolicy_(2) # Hide from dock app.setApplicationIconImage_(create_icon('appicon.png')) self.traymenu = TrayMenu.alloc() self.traymenu.init() app.setDelegate_(self.traymenu) self._observer = setup_observer(self) self._cron = setup_syncing_cronjobs() AppHelper.runEventLoop()
from AppKit import NSDefaultRunLoopMode from AppKit import NSMenu from AppKit import NSMenuItem from AppKit import NSObject from AppKit import NSRunLoop from AppKit import NSStatusBar from AppKit import NSTimer from AppKit import NSVariableStatusItemLength from utray import interfaces from utray.utils import create_icon from utray.utils import app start_time = NSDate.date() ICONS = { 'inactive': create_icon('inactive.png'), 'idle': create_icon('idle.png'), 'syncing1': create_icon('active1.png'), 'syncing2': create_icon('active2.png'), 'syncing3': create_icon('active3.png'), 'conflict': create_icon('error.png') } STATUS_ICON_MAP = { interfaces.STATUS_INACTIVE: 'inactive', interfaces.STATUS_DISABLED: 'inactive', interfaces.STATUS_SYNCING: 'syncing', interfaces.STATUS_OK: 'idle', interfaces.STATUS_CONFLICT: 'conflict' }
from AppKit import NSMenu from AppKit import NSMenuItem from AppKit import NSObject from AppKit import NSRunLoop from AppKit import NSStatusBar from AppKit import NSTimer from AppKit import NSVariableStatusItemLength from utray import interfaces from utray.utils import create_icon from utray.utils import app start_time = NSDate.date() ICONS = {'inactive': create_icon('inactive.png'), 'idle': create_icon('idle.png'), 'syncing1': create_icon('active1.png'), 'syncing2': create_icon('active2.png'), 'syncing3': create_icon('active3.png'), 'conflict': create_icon('error.png')} STATUS_ICON_MAP = { interfaces.STATUS_INACTIVE: 'inactive', interfaces.STATUS_DISABLED: 'inactive', interfaces.STATUS_SYNCING: 'syncing', interfaces.STATUS_OK: 'idle', interfaces.STATUS_CONFLICT: 'conflict'} class TrayMenu(NSObject):