def __init__(self, shell): self.shell = shell self.ind = appindicator.Indicator.new( "EAvatar-indicator", resource_path(os.path.join(base.AVARES_PATH, "icon.png")), appindicator.IndicatorCategory.APPLICATION_STATUS) self.ind.set_icon_theme_path(resource_path(base.AVARES_PATH)) self.ind.set_status(appindicator.IndicatorStatus.ACTIVE) self.ind.set_attention_icon("icon.png") self.notices_menu = None self.status_menu = None self.old_status_item = None self.menu_setup() self.ind.set_menu(self.menu) self.notification = None Notify.init("EAvatar")
def notify(self, msg, title="Ava Message"): if self.notification is None: self.notification = Notify.Notification.new( title, msg, resource_path("res/icon.png")) self.notification.set_app_name("EAvatar") else: self.notification.update(title, msg) self.notification.set_timeout(3) self.notification.show()
def applicationDidFinishLaunching_(self, sender): logger.debug("Application did finish launching.") statusbar = NSStatusBar.systemStatusBar() self.statusicon = statusbar.statusItemWithLength_( NSVariableStatusItemLength) self.icon = NSImage.alloc().initByReferencingFile_( resource_path(base.AVARES_PATH + '/icon.png')) self.icon.setScalesWhenResized_(True) self.icon.setSize_((20, 20)) self.statusicon.setImage_(self.icon) self.statusicon.setHighlightMode_(True) self.statusicon.setEnabled_(True) # make the menu self.menubarMenu = NSMenu.alloc().init() self.openItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( base.STR_OPEN_WEBFRONT, 'openWebfront:', '') self.menubarMenu.addItem_(self.openItem) self.openItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( base.STR_OPEN_FOLDER, 'openFolder:', '') self.menubarMenu.addItem_(self.openItem) self.menubarMenu.addItem_(NSMenuItem.separatorItem()) mi = self.menubarMenu.addItemWithTitle_action_keyEquivalent_( base.STR_STATUS_MENU, None, "") self.create_status_menu() self.menubarMenu.setSubmenu_forItem_(self.status_menu, mi) self.menubarMenu.addItem_(NSMenuItem.separatorItem()) mi = self.menubarMenu.addItemWithTitle_action_keyEquivalent_( base.STR_NOTICES_MENU, None, "") self.notices_menu = self.create_notices_menu() self.menubarMenu.setSubmenu_forItem_(self.notices_menu, mi) self.menubarMenu.addItem_(NSMenuItem.separatorItem()) self.quit = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_( base.STR_EXIT, 'quitApp:', '') self.menubarMenu.addItem_(self.quit) # add menu to statusitem self.statusicon.setMenu_(self.menubarMenu) self.statusicon.setToolTip_(base.STR_STATUS)
def __init__(self, s): self.shell = s self.icons = itertools.cycle(glob.glob( resource_path(base.AVARES_PATH + '/*.ico'))) self.hover_text = base.STR_STATUS self.icon = self.icons.next() self.default_menu_index = 0 self.notify_id = None self.hicon = None self.refresh_icon() self.notices_menu = win32gui.CreateMenu() self.status_menu = self._create_status_menu() self.notice_index = -1
def test_resource_path(self): rv = resource_path("path1") print(rv) self.assertTrue(rv.endswith("path1"))
# -*- coding: utf-8 -*- from __future__ import print_function, division, absolute_import import logging import hashlib try: from urllib2 import parse_http_list as _parse_list_header except ImportError: # pragma: no cover from urllib.request import parse_http_list as _parse_list_header from ava.util import resource_path static_folder = resource_path('static') logger = logging.getLogger(__name__) _ext_to_media_type = { '.jpg': 'image/jpeg', '.png': 'image/png', '.ico': 'image/vnd.microsoft.icon', '.svg': 'image/svg+xml', '.txt': 'text/plain', '.html': 'text/html; charset=utf-8', '.css': 'text/css', '.js': 'application/javascript', '.json': 'application/json', } _default_media_type = 'application/octet-stream' def calc_etag(content):
# -*- coding: utf-8 -*- from __future__ import absolute_import, division, print_function, unicode_literals """ Imports utility functions from Bottle for exposing web resource. """ import os from ava.util import resource_path from bottle import route, get, post, delete, put, request, response from bottle import static_file as _static_file from ava.core.webfront import dispatcher static_folder = os.path.join(resource_path('home'), 'static') def static_file(filepath, root=static_folder, mimetype='auto', download=False, charset='utf-8'): return _static_file(filepath, root=root, mimetype=mimetype, download=download, charset=charset) __all__ = [route, get, post, delete, put, request, response, static_file, static_folder, dispatcher, ]
# -*- coding: utf-8 -*- from __future__ import print_function, division, absolute_import import os import logging import hashlib try: from urllib2 import parse_http_list as _parse_list_header except ImportError: # pragma: no cover from urllib.request import parse_http_list as _parse_list_header from ava.util import resource_path static_folder = resource_path('static') logger = logging.getLogger(__name__) _ext_to_media_type = { '.jpg': 'image/jpeg', '.png': 'image/png', '.ico': 'image/vnd.microsoft.icon', '.svg': 'image/svg+xml', '.txt': 'text/plain', '.html': 'text/html; charset=utf-8', '.css': 'text/css', '.js': 'application/javascript', '.json': 'application/json', } _default_media_type = 'application/octet-stream'