コード例 #1
0
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()