python3-webengine-gtk3/usr/lib/python3/dist-packages/webengine/gtk3/_notify.py

56 lines
1.1 KiB
Python
Raw Permalink Normal View History

2023-08-31 16:57:55 +08:00
import gi
try:
gi.require_version('Notify', '0.7') # gir1.2-notify-0.7
from gi.repository import Notify
except:
Notify = None
class Notification():
notify = None
def __init__(self, webview):
self.webview = webview
if Notify:
Notify.init(Notify.get_app_name() or 'webapp')
self.notify = Notify.Notification()
def create(self, title, summary, icon, progress = 0, urgency = 0, callback = None):
if not self.notify:
raise ImportError('Notify module not found. Need to install gir1.2-notify-0.7 if you use debian.')
return
self.notify.clear_actions()
self.notify.clear_hints()
self.notify.update(title, summary, icon)
if progress:
self.notify.set_hint('value', progress)
self.notify.set_urgency(urgency)
if callback:
self.notify.add_action("click", "click", self.action_callback, callback)
self.notify.show()
def action_callback(self, instance, action, callback):
if callback:
self.webview.call_js(callback)
instance.close()
def create_notify():
def wrapper(app, extra = None):
Notification(app)
return wrapper