Example #1
0
    def double_click(self, x, y, button_name=LEFT_BUTTON, click_interval=0.5):
        MacUtils.verify_xy_coordinates(x, y)
        MacUtils.verify_mouse_button_name(button_name,
                                          self._SUPPORTED_BUTTON_NAMES)

        if button_name == self.LEFT_BUTTON:
            button = CG.kCGMouseButtonLeft
            down = CG.kCGEventLeftMouseDown
            up = CG.kCGEventLeftMouseUp
        if button_name == self.RIGHT_BUTTON:
            button = CG.kCGMouseButtonRight
            down = CG.kCGEventRightMouseDown
            up = CG.kCGEventRightMouseUp

        # http://www.codeitive.com/0iJqgkejVj/performing-a-double-click-using-cgeventcreatemouseevent.html
        event = CG.CGEventCreateMouseEvent(None, down, (x, y), button)
        CG.CGEventPost(CG.kCGSessionEventTap, event)
        CG.CGEventSetType(event, up)
        CG.CGEventPost(CG.kCGSessionEventTap, event)

        CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2)
        # https://msdn.microsoft.com/en-us/library/windows/desktop/ms646263%28v=vs.85%29.aspx
        sleep(click_interval)

        CG.CGEventSetType(event, down)
        CG.CGEventPost(CG.kCGSessionEventTap, event)
        CG.CGEventSetType(event, up)
        CG.CGEventPost(CG.kCGSessionEventTap, event)
Example #2
0
    def double_click(self, x, y, button_name=LEFT_BUTTON):
        MacUtils.verify_xy_coordinates(x, y)
        MacUtils.verify_mouse_button_name(button_name,
                                          self._SUPPORTED_BUTTON_NAMES)

        if button_name == self.LEFT_BUTTON:
            button = CG.kCGMouseButtonLeft
            down = CG.kCGEventLeftMouseDown
            up = CG.kCGEventLeftMouseUp
        if button_name == self.RIGHT_BUTTON:
            button = CG.kCGMouseButtonRight
            down = CG.kCGEventRightMouseDown
            up = CG.kCGEventRightMouseUp

        # http://www.codeitive.com/0iJqgkejVj/performing-a-double-click-using-cgeventcreatemouseevent.html
        event = CG.CGEventCreateMouseEvent(None, down, (x, y), button)
        CG.CGEventPost(CG.kCGHIDEventTap, event)
        CG.CGEventSetType(event, up)
        CG.CGEventPost(CG.kCGHIDEventTap, event)

        CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2)

        CG.CGEventSetType(event, down)
        CG.CGEventPost(CG.kCGHIDEventTap, event)
        CG.CGEventSetType(event, up)
        CG.CGEventPost(CG.kCGHIDEventTap, event)
Example #3
0
    def double_click(self, x, y, delay=DELAY_IN_MOUSE_CLICK):
        event = self._mouse_event(self.buttons['left']['down_event'], x, y,
                                  self.buttons['left']['button'])
        CG.CGEventSetType(event, self.buttons['left']['up_event'])
        CG.CGEventPost(CG.kCGHIDEventTap, event)

        CG.CGEventSetIntegerValueField(event, CG.kCGMouseEventClickState, 2)

        CG.CGEventSetType(event, self.buttons['left']['down_event'])
        CG.CGEventPost(CG.kCGHIDEventTap, event)
        CG.CGEventSetType(event, self.buttons['left']['up_event'])
        CG.CGEventPost(CG.kCGHIDEventTap, event)