class MainFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Otter Share") panel = wx.Panel(self) nb = wx.Notebook(panel) tab1 = Tab(nb) tab2 = Tab(nb) tab3 = Tab(nb) tab4 = Tab(nb) nb.AddPage(tab1, "Tab1") nb.AddPage(tab2, "Tab2") nb.AddPage(tab3, "Tab3") nb.AddPage(tab4, "Tab4") # Set noteboook in a sizer to create the layout sizer = wx.BoxSizer() sizer.Add(nb, 1, wx.EXPAND) panel.SetSizer(sizer) self.tbIcon = TaskBarIcon(self) self.Bind(wx.EVT_ICONIZE, self.OnMinimize) self.Bind(wx.EVT_CLOSE, self.OnClose) self.Show() # Add some events to the keyboard #WinKeyboard.add_handler(print_event) #WinKeyboard.add_handler(screenshot_handler) #InputManager.add_hook(self.mouse.generate_hook()) # Start listening on input worker = None InputManager.add_input(WinMouse()) InputManager.add_input(WinKeyboard()) # Split the Message Pumping onto its own thread. if not worker: worker = threading.Thread(target=InputManager.listener()) worker.start() def OnClose(self, event): # Sends a stop pumping message InputManager.stop_pumping(threading.get_ident()) self.tbIcon.RemoveIcon() self.tbIcon.Destroy() self.Destroy() def OnMinimize(self, event): if self.IsIconized(): self.Hide()