test modules
This commit is contained in:
		
							
								
								
									
										137
									
								
								helloWorld.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								helloWorld.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
import glob
 | 
			
		||||
import wx
 | 
			
		||||
import wx.adv
 | 
			
		||||
import os
 | 
			
		||||
from time import sleep
 | 
			
		||||
from multiprocessing import Process, Pipe
 | 
			
		||||
from sys import platform
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
TRAY_TOOLTIP = 'IP Pigeon' 
 | 
			
		||||
TRAY_ICON = 'icon.png' 
 | 
			
		||||
 | 
			
		||||
"""if platform == "linux" or platform == "linux2":
 | 
			
		||||
    # linux
 | 
			
		||||
elif platform == "darwin":
 | 
			
		||||
    # OS X
 | 
			
		||||
elif platform == "win32":
 | 
			
		||||
    # Windows...
 | 
			
		||||
"""
 | 
			
		||||
displaydata = None
 | 
			
		||||
settings = None
 | 
			
		||||
 | 
			
		||||
class ServerPanel(wx.Panel):    
 | 
			
		||||
    def __init__(self, parent):
 | 
			
		||||
        super().__init__(parent)
 | 
			
		||||
        main_sizer = wx.BoxSizer(wx.VERTICAL)
 | 
			
		||||
        self.row_obj_dict = {}
 | 
			
		||||
 | 
			
		||||
        self.list_ctrl = wx.ListCtrl(
 | 
			
		||||
            self, size=(-1, 100), 
 | 
			
		||||
            style=wx.LC_REPORT | wx.BORDER_SUNKEN
 | 
			
		||||
        )
 | 
			
		||||
        self.list_ctrl.InsertColumn(0, 'Server name', width=140)
 | 
			
		||||
        self.list_ctrl.InsertColumn(1, 'Port number', width=140)
 | 
			
		||||
        self.list_ctrl.InsertColumn(2, 'Status', width=200)
 | 
			
		||||
        main_sizer.Add(self.list_ctrl, 0, wx.ALL | wx.EXPAND, 5)        
 | 
			
		||||
        start_button = wx.Button(self, label='Start')
 | 
			
		||||
        start_button.Bind(wx.EVT_BUTTON, self.on_edit)
 | 
			
		||||
        stop_button = wx.Button(self, label='Stop')
 | 
			
		||||
        stop_button.Bind(wx.EVT_BUTTON, self.on_edit)
 | 
			
		||||
        main_sizer.Add(start_button, 0, wx.ALL | 100, 5)        
 | 
			
		||||
        main_sizer.Add(stop_button, 0, wx.ALL | 100, 5)
 | 
			
		||||
        self.SetSizer(main_sizer)
 | 
			
		||||
 | 
			
		||||
    def on_edit(self, event):
 | 
			
		||||
        print('in on_edit')
 | 
			
		||||
 | 
			
		||||
    def update_mp3_listing(self, folder_path):
 | 
			
		||||
        print(folder_path)
 | 
			
		||||
 | 
			
		||||
class ServerFrame(wx.Frame):    
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
        super().__init__(parent=None,
 | 
			
		||||
                         title='Server Dashboard')
 | 
			
		||||
        self.panel = ServerPanel(self)
 | 
			
		||||
        self.Show()
 | 
			
		||||
 | 
			
		||||
### Taskbar Icon
 | 
			
		||||
 | 
			
		||||
def create_menu_item(menu, label, func):
 | 
			
		||||
    item = wx.MenuItem(menu, -1, label)
 | 
			
		||||
    menu.Bind(wx.EVT_MENU, func, id=item.GetId())
 | 
			
		||||
    menu.Append(item)
 | 
			
		||||
    return item
 | 
			
		||||
 | 
			
		||||
class TaskBarIcon(wx.adv.TaskBarIcon):
 | 
			
		||||
    def __init__(self, frame):
 | 
			
		||||
        self.frame = frame
 | 
			
		||||
        super(TaskBarIcon, self).__init__()
 | 
			
		||||
        self.set_icon(TRAY_ICON)
 | 
			
		||||
        self.Bind(wx.adv.EVT_TASKBAR_LEFT_DOWN, self.on_left_down)
 | 
			
		||||
 | 
			
		||||
    def CreatePopupMenu(self):
 | 
			
		||||
        menu = wx.Menu()
 | 
			
		||||
        create_menu_item(menu, 'Control Panel', self.on_open)
 | 
			
		||||
        menu.AppendSeparator()
 | 
			
		||||
        create_menu_item(menu, 'Exit', self.on_exit)
 | 
			
		||||
        return menu
 | 
			
		||||
 | 
			
		||||
    def set_icon(self, path):
 | 
			
		||||
        icon = wx.Icon(path)
 | 
			
		||||
        self.SetIcon(icon, TRAY_TOOLTIP)
 | 
			
		||||
 | 
			
		||||
    def on_left_down(self, event):      
 | 
			
		||||
        print ('Tray icon was left-clicked.')
 | 
			
		||||
 | 
			
		||||
    def on_open(self, event):
 | 
			
		||||
        foreground()
 | 
			
		||||
        #self.close_popup()
 | 
			
		||||
 | 
			
		||||
    def on_exit(self, event):
 | 
			
		||||
        wx.CallAfter(self.Destroy)
 | 
			
		||||
        self.close_popup()
 | 
			
		||||
 | 
			
		||||
    def close_popup(self):
 | 
			
		||||
        self.frame.Close()
 | 
			
		||||
 | 
			
		||||
class TaskbarApp(wx.App):
 | 
			
		||||
    def OnInit(self):
 | 
			
		||||
        frame=wx.Frame(None)
 | 
			
		||||
        self.SetTopWindow(frame)
 | 
			
		||||
        TaskBarIcon(frame)
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
class FullApp(wx.App):
 | 
			
		||||
    def OnInit(self):
 | 
			
		||||
        fullframe=ServerFrame()
 | 
			
		||||
        return True
 | 
			
		||||
 | 
			
		||||
def background():
 | 
			
		||||
    app = TaskbarApp(False)
 | 
			
		||||
    with Manager() as manager:
 | 
			
		||||
        displaydata = manager.list()
 | 
			
		||||
        settings = manager.list()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        """rawdata = manager.list()
 | 
			
		||||
        logdata = manager.list()
 | 
			
		||||
        uploaddata = manager.list()
 | 
			
		||||
        downloaddata = manager.list()"""
 | 
			
		||||
        app.MainLoop()
 | 
			
		||||
 | 
			
		||||
def open_fg(outputdata, uisettings):
 | 
			
		||||
    app = FullApp(False)
 | 
			
		||||
    app.MainLoop()
 | 
			
		||||
 | 
			
		||||
def foreground():
 | 
			
		||||
    # Open the foreground in a separate process so that UI acts independently of the taskbar icon
 | 
			
		||||
    p = Process(target=open_fg, args=(displaydata, settings))
 | 
			
		||||
    p.start()
 | 
			
		||||
    #p.join()
 | 
			
		||||
    print("Launched foreground")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    background()
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								icon.png
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								icon.png
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 28 KiB  | 
							
								
								
									
										14
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
import core
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    # create manager to share data to me, background, foreground
 | 
			
		||||
 | 
			
		||||
    # launch background app as process
 | 
			
		||||
 | 
			
		||||
    # create worker pool
 | 
			
		||||
 | 
			
		||||
    # launch main, non-blocking, loop
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def mainloop():
 | 
			
		||||
    # worker pool: netstat, netstat cleanup, upload, download, ui tasks
 | 
			
		||||
		Reference in New Issue
	
	Block a user