Ejemplo n.º 1
0
Qt::Native::Status sendNativeMouseWheelEvent_Quartz(const QNativeMouseWheelEvent &event)
{
    CGPoint pos;
    pos.x = event.globalPos.x();
    pos.y = event.globalPos.y();

    CGEventRef e = CGEventCreateScrollWheelEvent(0, kCGScrollEventUnitPixel, 1, 0);
    CGEventSetIntegerValueField(e, kCGScrollWheelEventDeltaAxis1, event.delta);
    CGEventSetLocation(e, pos);
    setModifiersFromQNativeEvent(e, event);
    CGEventPost(kCGHIDEventTap, e);
    CFRelease(e);

    return Qt::Native::Success;
}
Ejemplo n.º 2
0
bool wxUIActionSimulator::MouseDragDrop(long x1, long y1, long x2, long y2,
                                        int button)
{
    CGPoint pos1,pos2;
    pos1.x = x1;
    pos1.y = y1;
    pos2.x = x2;
    pos2.y = y2;

    CGEventType downtype = CGEventTypeForMouseButton(button, true);
    CGEventType uptype = CGEventTypeForMouseButton(button, false);
    CGEventType dragtype = CGEventTypeForMouseDrag(button) ;

    wxCFRef<CGEventRef> event(
                              CGEventCreateMouseEvent(NULL, kCGEventMouseMoved, pos1, CGButtonForMouseButton(button)));
    
    if ( !event )
        return false;
    
    CGEventSetType(event,kCGEventMouseMoved);
    CGEventPost(tap, event);
    
    CGEventSetType(event,downtype);
    CGEventPost(tap, event);
    
    
    CGEventSetType(event, dragtype);
    CGEventSetLocation(event,pos2);
    CGEventPost(tap, event);
    
    CGEventSetType(event, uptype);
    CGEventPost(tap, event);
    wxCFEventLoop* loop = dynamic_cast<wxCFEventLoop*>(wxEventLoop::GetActive());
    if (loop)
        loop->SetShouldWaitForEvent(true);
    
    return true;
}