def _queueMouseButton(self, coord, mouseButton, modFlags, clickCount=<NUM_LIT:1>,<EOL>dest_coord=None):
<EOL>mouseButtons = {<EOL>Quartz.kCGMouseButtonLeft: '<STR_LIT>',<EOL>Quartz.kCGMouseButtonRight: '<STR_LIT>',<EOL>}<EOL>if mouseButton not in mouseButtons:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>eventButtonDown = getattr(Quartz,<EOL>'<STR_LIT>' % mouseButtons[mouseButton])<EOL>eventButtonUp = getattr(Quartz,<EOL>'<STR_LIT>' % mouseButtons[mouseButton])<EOL>eventButtonDragged = getattr(Quartz,<EOL>'<STR_LIT>' % mouseButtons[<EOL>mouseButton])<EOL>buttonDown = Quartz.CGEventCreateMouseEvent(None,<EOL>eventButtonDown,<EOL>coord,<EOL>mouseButton)<EOL>Quartz.CGEventSetFlags(buttonDown, modFlags)<EOL>Quartz.CGEventSetIntegerValueField(buttonDown,<EOL>Quartz.kCGMouseEventClickState,<EOL>int(clickCount))<EOL>if dest_coord:<EOL><INDENT>buttonDragged = Quartz.CGEventCreateMouseEvent(None,<EOL>eventButtonDragged,<EOL>dest_coord,<EOL>mouseButton)<EOL>Quartz.CGEventSetFlags(buttonDragged, modFlags)<EOL>buttonUp = Quartz.CGEventCreateMouseEvent(None,<EOL>eventButtonUp,<EOL>dest_coord,<EOL>mouseButton)<EOL><DEDENT>else:<EOL><INDENT>buttonUp = Quartz.CGEventCreateMouseEvent(None,<EOL>eventButtonUp,<EOL>coord,<EOL>mouseButton)<EOL><DEDENT>Quartz.CGEventSetFlags(buttonUp, modFlags)<EOL>Quartz.CGEventSetIntegerValueField(buttonUp,<EOL>Quartz.kCGMouseEventClickState,<EOL>int(clickCount))<EOL>self._queueEvent(Quartz.CGEventPost,<EOL>(Quartz.kCGSessionEventTap, buttonDown))<EOL>if dest_coord:<EOL><INDENT>self._queueEvent(Quartz.CGEventPost,<EOL>(Quartz.kCGHIDEventTap, buttonDragged))<EOL><DEDENT>self._queueEvent(Quartz.CGEventPost,<EOL>(Quartz.kCGSessionEventTap, buttonUp))<EOL>
Private method to handle generic mouse button clicking.

        Parameters: coord (x, y) to click, mouseButton (e.g.,
                    kCGMouseButtonLeft), modFlags set (int)
        Optional: clickCount (default 1; set to 2 for double-click; 3 for
                  triple-click on host)
        Returns: None