-
Notifications
You must be signed in to change notification settings - Fork 11
/
notification.py
37 lines (29 loc) · 1.26 KB
/
notification.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import threading
import objc
from Foundation import *
from AppKit import *
from PyObjCTools import AppHelper
import platform
import alp.core as core
NSUserNotificationActivationTypeNone = 0
NSUserNotificationActivationTypeContentsClicked = 1
NSUserNotificationActivationTypeActionButtonClicked = 2
class Notification(object):
def notify(self, title, subtitle, text, info=None):
v, _, _ = platform.mac_ver()
v = float('.'.join(v.split('.')[:2]))
if v < 10.8:
core.log("Notification failed: OS version %s < 10.8." % v)
return
app = NSApplication.sharedApplication()
NSUserNotification = objc.lookUpClass("NSUserNotification")
NSUserNotificationCenter = objc.lookUpClass("NSUserNotificationCenter")
notification = NSUserNotification.alloc().init()
notification.setTitle_(title)
notification.setSubtitle_(subtitle)
notification.setInformativeText_(text)
notification.setSoundName_("NSUserNotificationDefaultSoundName")
notification.setUserInfo_(info)
app.setDelegate_(self)
NSUserNotificationCenter.defaultUserNotificationCenter().setDelegate_(self)
NSUserNotificationCenter.defaultUserNotificationCenter().scheduleNotification_(notification)