aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/win32_toast.py
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2023-04-10 14:46:08 +0200
committerMartin Robinson <mrobinson@igalia.com>2023-04-13 10:01:25 +0200
commit492091e5b0cfbee3d4e988d699bd910e2cd806fa (patch)
tree7cda5737ab680fe1d4c6ee6c92089fd62ed45cba /python/servo/win32_toast.py
parent53218621e934f5cb66681b22d3d91c3bbcb0d4bc (diff)
downloadservo-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.py45
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)