Esempio n. 1
0
class MyPanel(wx.Panel):
    def __init__(self, parent, url):
        wx.Panel.__init__(self, parent, style=wx.TE_PROCESS_ENTER, size=parent.getSize())
        sizer = wx.BoxSizer(wx.VERTICAL)
        self.flash = Flash(self, url)
        sizer.Add(self.flash, proportion=1, flag=wx.EXPAND) #On Maximise, expand TFM
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        ######BINDS FOR EACH HOTKEY SHORTCUT#######
        self.Bind(wx.EVT_MENU, self.genericF1, id=220)
        self.Bind(wx.EVT_MENU, self.onKeyDownTest, id=221)
        self.Bind(wx.EVT_MENU, self.genericF2, id=222)
        self.Bind(wx.EVT_MENU, self.genericF3, id=223)
        self.Bind(wx.EVT_MENU, self.genericF4, id=224)
        self.Bind(wx.EVT_MENU, self.genericF5, id=225)
        self.Bind(wx.EVT_MENU, self.genericF6, id=226)
        self.Bind(wx.EVT_MENU, self.genericF7, id=227)
        self.Bind(wx.EVT_MENU, self.genericF8, id=228)
        self.Bind(wx.EVT_MENU, self.genericF9, id=229)
        self.Bind(wx.EVT_SIZE, self.onResizeResetPans)
        self.Bind(wx.EVT_MENU, self.panUp, id=240)
        self.Bind(wx.EVT_MENU, self.panDown, id=241)
        self.Bind(wx.EVT_MENU, self.panLeft, id=242)
        self.Bind(wx.EVT_MENU, self.panRight, id=243)
        self.Bind(wx.EVT_MENU, self.panReset, id=244)
        accel_tbl = wx.AcceleratorTable([(wx.ACCEL_NORMAL, wx.WXK_F1, 220),
                                         ((wx.ACCEL_NORMAL, ord('`'), 221)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F2, 222)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F3, 223)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F4, 224)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F5, 225)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F6, 226)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F7, 227)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F8, 228)),
                                         ((wx.ACCEL_NORMAL, wx.WXK_F9, 229)),
                                         ((wx.ACCEL_SHIFT, wx.WXK_UP, 240)),
                                         ((wx.ACCEL_SHIFT, wx.WXK_DOWN, 241)),
                                         ((wx.ACCEL_SHIFT, wx.WXK_LEFT, 242)),
                                         ((wx.ACCEL_SHIFT, wx.WXK_RIGHT, 243)),
                                         ((wx.ACCEL_CTRL, wx.WXK_SPACE, 244))
        ])
        self.Bind(wx.EVT_CHILD_FOCUS, self.focusTest)
        self.flash.SetAcceleratorTable(accel_tbl)
        #After Binds
        self.epoch = time.time()
        self.hotkeyId = 0
        self.isShaObj = False
        self.baseInitW = 0
        self.baseInitH = 0

        ###################################################
        #################Inherited Setting#################
        ###################################################
        self.getMSDelay = parent.proxyGetPictionaryDelay()
        self.getUsername = parent.proxyGetUsername()
        self.loadOffSetF1 = parent.proxyGetOffSetF1()
        self.loadOffSetF2 = parent.proxyGetOffSetF2()
        self.loadOffSetF3 = parent.proxyGetOffSetF3()
        self.loadOffSetF4 = parent.proxyGetOffSetF4()


    def sizeDeterminerAndSend(self, correctionx, correctiony):
        x_val = self.getCorrectedX() + correctionx
        y_val = self.getCorrectedY() + correctiony
        s = SendKeys("", True, dest=(x_val,y_val))
        s.voidStart()

    #Bloew two methods correct the Coord. retrieval for all screen sizes, and center it to access Game Items.
    def getCorrectedX(self):
        tupleSize = self.GetSize()
        tuplePos = self.GetScreenPosition()
        x_val = int(tuplePos[0] + (tupleSize[0]/2))
        return x_val #Origin at center.

    def getCorrectedY(self):
        tupleSize = self.GetSize()
        tuplePos = self.GetScreenPosition()
        y_val = int(tuplePos[1] + (tupleSize[1]/2))
        return y_val #Likewise as X getter.


    def genericF1(self, event):
        if(self.hotkeyId == 0):
            t1 = time.time() - self.epoch
            if(t1 > self.getMSDelay):
                self.epoch = time.time()
                s = SendKeys("1", True)
                s.voidStart()

        elif(self.hotkeyId == 1):
            s = SendKeys("{enter}{!}off "+ self.loadOffSetF1+"{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 2):
            s = SendKeys("9ccc", False)
            s.voidStart()

        elif(self.hotkeyId == 3):
            if not self.isShaObj:
                self.sizeDeterminerAndSend(350,125)
                self.isShaObj = True
            else:
                self.isShaObj = False
                self.sizeDeterminerAndSend(300,125)
                #Resets mouse from Item globally using F1

        elif(self.hotkeyId == 4):
            s = SendKeys("{enter}/ch " +self.getUsername +"{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 5):
            s = SendKeys("{enter}voulez vous danser avec moi ce soir{enter}", False)
            s.voidStart()

    def genericF2(self, event):
        if(self.hotkeyId == 0):
            t1 = time.time() - self.epoch
            if(t1 > self.getMSDelay):
                self.epoch = time.time()
                s = SendKeys("1", True)
                s.voidStart()

        elif(self.hotkeyId == 1):
            s = SendKeys("{enter}{!}off "+ self.loadOffSetF2+"{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 2):
            s = SendKeys("9vv", False)
            s.voidStart()

        elif(self.hotkeyId == 3):
            if not self.isShaObj:
                self.sizeDeterminerAndSend(350,175)
                self.isShaObj = True
            else:
                self.isShaObj = False
                self.sizeDeterminerAndSend(300,125)

        elif(self.hotkeyId == 4):
            s = SendKeys("{enter}/sy{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 5):
            s = SendKeys("{enter}vous habitez chez vos parents{enter}", False)
            s.voidStart()

    def genericF3(self, event):
        if(self.hotkeyId == 1):
            s = SendKeys("{enter}{!}off "+self.loadOffSetF3+"{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 2):
            s = SendKeys("9cxxxxxx ", False)
            s.voidStart()

        elif(self.hotkeyId == 3):
            if not self.isShaObj:
                self.sizeDeterminerAndSend(300,175)
                self.isShaObj = True
            else:
                self.isShaObj = False
                self.sizeDeterminerAndSend(300,125)
                #Resets mouse from Item globally using F1

        elif(self.hotkeyId == 4):
            s = SendKeys("{enter}/np ", False)
            s.voidStart()

        elif(self.hotkeyId == 5):
            s = SendKeys("{enter}tu as de beaux yeux{enter}", False)
            s.voidStart()

    def genericF4(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("9cccxxxxxx ", False)
            s.voidStart()

        elif(self.hotkeyId == 1):
            s = SendKeys("{enter}{!}off "+self.loadOffSetF4+"{enter}", False)
            s.voidStart()

        elif(self.hotkeyId == 3):
            if not self.isShaObj:
                self.sizeDeterminerAndSend(300,125)
                self.isShaObj = True
            else:
                self.isShaObj = False
                self.sizeDeterminerAndSend(300,125)
                #Resets mouse from Item globally using F1

        elif(self.hotkeyId == 5):
            s = SendKeys("{enter}veux tu m'epouser{enter}", False)
            s.voidStart()

    def genericF5(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("7cc ", False)
            s.voidStart()

        elif(self.hotkeyId == 3):
            if not self.isShaObj:
                self.sizeDeterminerAndSend(300,225)
                self.isShaObj = True
            else:
                self.isShaObj = False
                self.sizeDeterminerAndSend(300,125)
                #Resets mouse from Item globally using F1

        elif(self.hotkeyId == 5):
            s = SendKeys("{enter}fais moi un bisous{enter}", False)
            s.voidStart()

    def genericF6(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("7ccc ", False)
            s.voidStart()

    def genericF7(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("4c4cccxxxxxx ", False)
            s.voidStart()

    def genericF8(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("5ccxxxxxx", False)
            s.voidStart()

    def genericF9(self, event):
        if(self.hotkeyId == 2):
            s = SendKeys("6ccxxxxxx ", False)
            s.voidStart()

    def onKeyDownTest(self, event):
        if(self.hotkeyId == 0):
            s = SendKeys("{ENTER}! ", False)
            s.voidStart()
        elif(self.hotkeyId != 2 and self.hotkeyId != -1):
            s = SendKeys("{ENTER}!", False)
            s.voidStart()
        elif self.hotkeyId == 2:
            s = SendKeys("{enter}Shaman it appears that I have found myself in a rather bothersome predicament, if you would be so kind as to assist me here I would appreciate that generosity of yours.{enter}", False)
            s.voidStart()
        else:
            pass

    def panUp(self, event):
        if(self.isMovingAlongBothAxes()): self.panReset(event)
        self.baseInitH += SHIFTER
        if self.flash.getHeight() + self.baseInitH < self.flash.getHeight():
            self.flash.SetDimensions(self.baseInitW,self.baseInitH,self.flash.getWidth() + self.baseInitW, self.flash.getHeight() - self.baseInitH)
        else:
            self.flash.SetDimensions(0,0,self.flash.getWidth() + self.baseInitW, self.flash.getHeight() + self.baseInitH)

    def panDown(self, event):
        if(self.isMovingAlongBothAxes()): self.panReset(event)
        self.baseInitH -= SHIFTER
        if not self.flash.getHeight() + self.baseInitH < self.flash.getHeight():
            self.flash.SetDimensions(0,0,self.flash.getWidth() + self.baseInitW, self.flash.getHeight() + self.baseInitH)
        else:
            self.flash.SetDimensions(self.baseInitW,self.baseInitH,self.flash.getWidth(), self.flash.getHeight() - self.baseInitH)

    def panLeft(self, event):
        if(self.isMovingAlongBothAxes()): self.panReset(event)
        self.baseInitW += SHIFTER
        if self.flash.getWidth() + self.baseInitW < self.flash.getWidth():
            self.flash.SetDimensions(self.baseInitW,self.baseInitH,self.flash.getWidth() - self.baseInitW, self.flash.getHeight() - self.baseInitH)
        else:
            self.flash.SetDimensions(0,0,self.flash.getWidth() + self.baseInitW, self.flash.getHeight() + self.baseInitH)


    def panRight(self,event):
        if(self.isMovingAlongBothAxes()): self.panReset(event)
        self.baseInitW -= SHIFTER
        if not self.flash.getWidth() + self.baseInitW < self.flash.getWidth():
            self.flash.SetDimensions(0,0,self.flash.getWidth() + self.baseInitW, self.flash.getHeight() + self.baseInitH)
        else:
            self.flash.SetDimensions(self.baseInitW,self.baseInitH,self.flash.getWidth() - self.baseInitW, self.flash.getHeight() - self.baseInitH)

    def onResizeResetPans(self, event):
        event.Skip()
        self.baseInitH = 0
        self.baseInitW = 0

    def panReset(self, event):
        self.baseInitH = 0
        self.baseInitW = 0
        self.flash.SetDimensions(0,0,self.flash.getWidth(), self.flash.getHeight())


    ##############################################
    #Getters, setters and test methods are below.#
    ##############################################
    #ToDo Remove this method and actually fix the negative axes movement, in 2 Dimensions
    def isMovingAlongBothAxes(self):
        if(self.baseInitH != 0 and self.baseInitW != 0):
            return True

    def getAbsolutePosX(self):
        return self.flash.GetPositionTuple()[0]

    def getAbsolutePosY(self):
        return self.flash.GetPositionTuple()[1]

    def setHotKeyId(self, id):
        self.hotkeyId = id

    def focusTest(self, event):
        pass