53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import threading
|
|
import wx
|
|
import wx.adv
|
|
from pygwin._pg import pg
|
|
|
|
class tray(wx.adv.TaskBarIcon):
|
|
def __init__(self, tooltip, iconpath):
|
|
class App(wx.App):
|
|
def OnInit(self):
|
|
self.frame = wx.Frame(None)
|
|
self.SetTopWindow(self.frame)
|
|
return True
|
|
self._app = App(False)
|
|
self.frame = self._app.frame
|
|
super().__init__()
|
|
self._tooltip = tooltip
|
|
self.setIcon(iconpath)
|
|
self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN,
|
|
lambda x:self.onLeftMouseButton())
|
|
self._menu = wx.Menu()
|
|
|
|
def CreatePopupMenu(self):
|
|
return self._menu
|
|
|
|
def setIcon(self, path):
|
|
self._bicon = wx.Icon(wx.Bitmap(path))
|
|
self.SetIcon(self._bicon, self._tooltip)
|
|
|
|
def setTooltip(self, tooltip):
|
|
self.SetIcon(self._bicon, tooltip)
|
|
self._tooltip = tooltip
|
|
|
|
def onLeftMouseButton(self):
|
|
pass
|
|
|
|
def addSeparator(self):
|
|
self._menu.AppendSeparator()
|
|
|
|
def addCommand(self,text,func=lambda:None):
|
|
item = wx.MenuItem(self._menu,-1,text)
|
|
self._menu.Bind(wx.EVT_MENU,
|
|
lambda x:func(),
|
|
id=item.GetId())
|
|
self._menu.Append(item)
|
|
|
|
def start(self, thread=True):
|
|
if thread:threading.Thread(
|
|
target=self._app.MainLoop,
|
|
daemon=1).start()
|
|
else:self._app.MainLoop()
|
|
|
|
def stop(self):
|
|
wx.CallAfter(self._app.frame.Close)
|