diff --git a/build/lib/pygwin/__init__.py b/build/lib/pygwin/__init__.py index 75a5dd3..2d0e236 100644 --- a/build/lib/pygwin/__init__.py +++ b/build/lib/pygwin/__init__.py @@ -1,4 +1,3 @@ -# try: from pygwin.surface import surface import pygwin.keyboard as keyboard from pygwin.console import console @@ -7,29 +6,10 @@ import pygwin.mouse as mouse from pygwin.rect import rect import pygwin.image as image import pygwin.mixer as mixer +from pygwin.tray import tray from pygame.locals import * import pygwin.font as font from pygwin._win import * from pygwin._pg import pg import pygwin.ui as ui gamepad = _gp.gamepad(pg) -# except ModuleNotFoundError as e: -# import pip,os,sys -# if 'imofpgw' in sys.argv: -# os.system('cls' if os.name in ('nt', 'dos') else 'clear') -# raise e -# def install(package): -# if hasattr(pip,'main'):pip.main(['install',package]) -# else:pip._internal.main(['install',package]) -# os.system('cls' if os.name in ('nt', 'dos') else 'clear') -# modules = ['datetime', -# 'tempfile', -# 'pywin32', -# 'pickle', -# 'pygame', -# 'inputs', -# 'pydub', -# 'ctypes'] -# for i in modules: -# install(i) -# os.execv(sys.executable, ['python']+sys.argv+['imofpgw']) diff --git a/build/lib/pygwin/_win.py b/build/lib/pygwin/_win.py index 2202f57..8c4cb1d 100644 --- a/build/lib/pygwin/_win.py +++ b/build/lib/pygwin/_win.py @@ -1,5 +1,5 @@ from pygwin.surface import surface as _surface -from pygwin._tray import tray as _tray +from pygwin.tray import tray as _tray from datetime import datetime as _dt from pygwin.image import save as _s from pygwin._pg import pg as _pg @@ -21,7 +21,7 @@ class win(_surface): self._clock = _pg.time.Clock() self._withfps = False self._iconpath = iconpath - self.tray = _tray(_pg.display.get_caption(),self._iconpath) + self.tray = _tray(self.title,iconpath) def update(self, fps=-1): if fps != -1: self._clock.tick(fps) @@ -108,6 +108,7 @@ def create(title=None, size=(0,0), icon=None, resizable=False, noframe=False): _pg.display.set_caption(title) if icon != None: _pg.display.set_icon(_pg.image.load(icon)) + return win(icon) else: surf = _img.fromBytes(_icon.iconbytes) try: @@ -115,7 +116,6 @@ def create(title=None, size=(0,0), icon=None, resizable=False, noframe=False): except: orig = surf._orig _pg.display.set_icon(orig) - return win(icon) return win() def ramLimit(memory_limit): diff --git a/build/lib/pygwin/tray.py b/build/lib/pygwin/tray.py new file mode 100644 index 0000000..802633d --- /dev/null +++ b/build/lib/pygwin/tray.py @@ -0,0 +1,53 @@ +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) diff --git a/dist/pygwin-0.1.0-py3.7.egg b/dist/pygwin-0.1.0-py3.7.egg index 2f8a614..74fe41f 100644 Binary files a/dist/pygwin-0.1.0-py3.7.egg and b/dist/pygwin-0.1.0-py3.7.egg differ diff --git a/pygwin.egg-info/SOURCES.txt b/pygwin.egg-info/SOURCES.txt index a6aeec8..7977bf6 100644 --- a/pygwin.egg-info/SOURCES.txt +++ b/pygwin.egg-info/SOURCES.txt @@ -2,7 +2,6 @@ setup.py pygwin/__init__.py pygwin/_icon.py pygwin/_pg.py -pygwin/_tray.py pygwin/_win.py pygwin/console.py pygwin/font.py @@ -13,6 +12,7 @@ pygwin/mixer.py pygwin/mouse.py pygwin/rect.py pygwin/surface.py +pygwin/tray.py pygwin/ui.py pygwin.egg-info/PKG-INFO pygwin.egg-info/SOURCES.txt diff --git a/pygwin/__init__.py b/pygwin/__init__.py index 75a5dd3..2d0e236 100644 --- a/pygwin/__init__.py +++ b/pygwin/__init__.py @@ -1,4 +1,3 @@ -# try: from pygwin.surface import surface import pygwin.keyboard as keyboard from pygwin.console import console @@ -7,29 +6,10 @@ import pygwin.mouse as mouse from pygwin.rect import rect import pygwin.image as image import pygwin.mixer as mixer +from pygwin.tray import tray from pygame.locals import * import pygwin.font as font from pygwin._win import * from pygwin._pg import pg import pygwin.ui as ui gamepad = _gp.gamepad(pg) -# except ModuleNotFoundError as e: -# import pip,os,sys -# if 'imofpgw' in sys.argv: -# os.system('cls' if os.name in ('nt', 'dos') else 'clear') -# raise e -# def install(package): -# if hasattr(pip,'main'):pip.main(['install',package]) -# else:pip._internal.main(['install',package]) -# os.system('cls' if os.name in ('nt', 'dos') else 'clear') -# modules = ['datetime', -# 'tempfile', -# 'pywin32', -# 'pickle', -# 'pygame', -# 'inputs', -# 'pydub', -# 'ctypes'] -# for i in modules: -# install(i) -# os.execv(sys.executable, ['python']+sys.argv+['imofpgw']) diff --git a/pygwin/_win.py b/pygwin/_win.py index 2202f57..8c4cb1d 100644 --- a/pygwin/_win.py +++ b/pygwin/_win.py @@ -1,5 +1,5 @@ from pygwin.surface import surface as _surface -from pygwin._tray import tray as _tray +from pygwin.tray import tray as _tray from datetime import datetime as _dt from pygwin.image import save as _s from pygwin._pg import pg as _pg @@ -21,7 +21,7 @@ class win(_surface): self._clock = _pg.time.Clock() self._withfps = False self._iconpath = iconpath - self.tray = _tray(_pg.display.get_caption(),self._iconpath) + self.tray = _tray(self.title,iconpath) def update(self, fps=-1): if fps != -1: self._clock.tick(fps) @@ -108,6 +108,7 @@ def create(title=None, size=(0,0), icon=None, resizable=False, noframe=False): _pg.display.set_caption(title) if icon != None: _pg.display.set_icon(_pg.image.load(icon)) + return win(icon) else: surf = _img.fromBytes(_icon.iconbytes) try: @@ -115,7 +116,6 @@ def create(title=None, size=(0,0), icon=None, resizable=False, noframe=False): except: orig = surf._orig _pg.display.set_icon(orig) - return win(icon) return win() def ramLimit(memory_limit): diff --git a/pygwin/tray.py b/pygwin/tray.py new file mode 100644 index 0000000..802633d --- /dev/null +++ b/pygwin/tray.py @@ -0,0 +1,53 @@ +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)