diff options
author | Martin Robinson <mrobinson@igalia.com> | 2023-04-10 14:46:08 +0200 |
---|---|---|
committer | Martin Robinson <mrobinson@igalia.com> | 2023-04-13 10:01:25 +0200 |
commit | 492091e5b0cfbee3d4e988d699bd910e2cd806fa (patch) | |
tree | 7cda5737ab680fe1d4c6ee6c92089fd62ed45cba /python/servo/win32_toast.py | |
parent | 53218621e934f5cb66681b22d3d91c3bbcb0d4bc (diff) | |
download | servo-492091e5b0cfbee3d4e988d699bd910e2cd806fa.tar.gz servo-492091e5b0cfbee3d4e988d699bd910e2cd806fa.zip |
Use notify-py to send notifications
- Use notify-py to send notifications, but use a custom notifier on
Linux since transient (ie non-sticky) notifications are not supported.
- Add an icon to the notification.
- Don't send a notification after doing `./mach check` because that
can trigger notifications when `rust-analyzer` is working.
Diffstat (limited to 'python/servo/win32_toast.py')
-rw-r--r-- | python/servo/win32_toast.py | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/python/servo/win32_toast.py b/python/servo/win32_toast.py deleted file mode 100644 index 22a7ccd917f..00000000000 --- a/python/servo/win32_toast.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2013 The Servo Project Developers. See the COPYRIGHT -# file at the top-level directory of this distribution. -# -# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -# option. This file may not be copied, modified, or distributed -# except according to those terms. - -from win32api import GetModuleHandle -from win32gui import WNDCLASS, RegisterClass, CreateWindow, UpdateWindow -from win32gui import DestroyWindow, LoadIcon, NIF_ICON, NIF_MESSAGE, NIF_TIP -from win32gui import Shell_NotifyIcon, NIM_ADD, NIM_MODIFY, NIF_INFO, NIIF_INFO -import win32con - - -class WindowsToast: - def __init__(self): - # Register window class; it's okay to do this multiple times - wc = WNDCLASS() - wc.lpszClassName = 'ServoTaskbarNotification' - wc.lpfnWndProc = {win32con.WM_DESTROY: self.OnDestroy, } - self.classAtom = RegisterClass(wc) - self.hinst = wc.hInstance = GetModuleHandle(None) - - def OnDestroy(self, hwnd, msg, wparam, lparam): - # We don't have to Shell_NotifyIcon to delete it, since - # we destroyed - pass - - def balloon_tip(self, title, msg): - style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU - hwnd = CreateWindow(self.classAtom, "Taskbar", style, 0, 0, - win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, - 0, 0, self.hinst, None) - UpdateWindow(hwnd) - - hicon = LoadIcon(0, win32con.IDI_APPLICATION) - - nid = (hwnd, 0, NIF_ICON | NIF_MESSAGE | NIF_TIP, win32con.WM_USER + 20, hicon, 'Tooltip') - Shell_NotifyIcon(NIM_ADD, nid) - nid = (hwnd, 0, NIF_INFO, win32con.WM_USER + 20, hicon, 'Balloon Tooltip', msg, 200, title, NIIF_INFO) - Shell_NotifyIcon(NIM_MODIFY, nid) - - DestroyWindow(hwnd) |