Fix OS X 10.11 (Xcode 7.1) build issues due to strongly typed enums
Apple changed some enums in the 10.11 SDK from being just:
enum { ... }; typedef uint64_t Foo;
to:
typedef CF_ENUM(uint64_t, Foo) { ... };
which in C++11 mode expands to:
typedef enum Foo : uint64_t Foo; enum Foo : uint64_t { ... };
The use of strongly typed enums means we need to explicitly cast from
int in the places where we know what we are doing.
Change-Id: I7c8cfdbc0549471a3292de14d8b766fe17133e25
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
bb10
parent
3d6975af4b
commit
2f9effeb64
|
|
@ -56,15 +56,15 @@ static Qt::KeyboardModifiers getModifiersFromQuartzEvent(CGEventRef inEvent)
|
|||
|
||||
static void setModifiersFromQNativeEvent(CGEventRef inEvent, const QNativeEvent &event)
|
||||
{
|
||||
CGEventFlags flags = 0;
|
||||
CGEventFlags flags = CGEventFlags(0);
|
||||
if (event.modifiers.testFlag(Qt::ShiftModifier))
|
||||
flags |= kCGEventFlagMaskShift;
|
||||
flags = CGEventFlags(flags | kCGEventFlagMaskShift);
|
||||
if (event.modifiers.testFlag(Qt::ControlModifier))
|
||||
flags |= kCGEventFlagMaskControl;
|
||||
flags = CGEventFlags(flags | kCGEventFlagMaskControl);
|
||||
if (event.modifiers.testFlag(Qt::AltModifier))
|
||||
flags |= kCGEventFlagMaskAlternate;
|
||||
flags = CGEventFlags(flags | kCGEventFlagMaskAlternate);
|
||||
if (event.modifiers.testFlag(Qt::MetaModifier))
|
||||
flags |= kCGEventFlagMaskCommand;
|
||||
flags = CGEventFlags(flags | kCGEventFlagMaskCommand);
|
||||
CGEventSetFlags(inEvent, flags);
|
||||
}
|
||||
|
||||
|
|
@ -240,7 +240,7 @@ Qt::Native::Status sendNativeMouseMoveEvent_Quartz(const QNativeMouseMoveEvent &
|
|||
pos.x = event.globalPos.x();
|
||||
pos.y = event.globalPos.y();
|
||||
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, 0);
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, kCGEventMouseMoved, pos, kCGMouseButtonLeft /* ignored */);
|
||||
setModifiersFromQNativeEvent(e, event);
|
||||
CGEventPost(kCGHIDEventTap, e);
|
||||
CFRelease(e);
|
||||
|
|
@ -253,7 +253,7 @@ Qt::Native::Status sendNativeMouseButtonEvent_Quartz(const QNativeMouseButtonEve
|
|||
pos.x = event.globalPos.x();
|
||||
pos.y = event.globalPos.y();
|
||||
|
||||
CGEventType type = 0;
|
||||
CGEventType type = kCGEventNull;
|
||||
if (event.button == Qt::LeftButton)
|
||||
type = (event.clickCount > 0) ? kCGEventLeftMouseDown : kCGEventLeftMouseUp;
|
||||
else if (event.button == Qt::RightButton)
|
||||
|
|
@ -261,7 +261,12 @@ Qt::Native::Status sendNativeMouseButtonEvent_Quartz(const QNativeMouseButtonEve
|
|||
else
|
||||
type = (event.clickCount > 0) ? kCGEventOtherMouseDown : kCGEventOtherMouseUp;
|
||||
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, type, pos, event.button);
|
||||
// The mouseButton argument to CGEventCreateMouseEvent() is ignored unless the type
|
||||
// is kCGEventOtherSomething, so defaulting to kCGMouseButtonLeft is fine.
|
||||
CGMouseButton mouseButton = (type == kCGEventOtherMouseDown || type == kCGEventOtherMouseUp) ?
|
||||
kCGMouseButtonCenter : kCGMouseButtonLeft;
|
||||
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, type, pos, mouseButton);
|
||||
setModifiersFromQNativeEvent(e, event);
|
||||
CGEventSetIntegerValueField(e, kCGMouseEventClickState, event.clickCount);
|
||||
CGEventPost(kCGHIDEventTap, e);
|
||||
|
|
@ -275,7 +280,7 @@ Qt::Native::Status sendNativeMouseDragEvent_Quartz(const QNativeMouseDragEvent &
|
|||
pos.x = event.globalPos.x();
|
||||
pos.y = event.globalPos.y();
|
||||
|
||||
CGEventType type = 0;
|
||||
CGEventType type = kCGEventNull;
|
||||
if (event.button == Qt::LeftButton)
|
||||
type = kCGEventLeftMouseDragged;
|
||||
else if (event.button == Qt::RightButton)
|
||||
|
|
@ -283,7 +288,11 @@ Qt::Native::Status sendNativeMouseDragEvent_Quartz(const QNativeMouseDragEvent &
|
|||
else
|
||||
type = kCGEventOtherMouseDragged;
|
||||
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, type, pos, event.button);
|
||||
// The mouseButton argument to CGEventCreateMouseEvent() is ignored unless the type
|
||||
// is kCGEventOtherSomething, so defaulting to kCGMouseButtonLeft is fine.
|
||||
CGMouseButton mouseButton = type == kCGEventOtherMouseDragged ? kCGMouseButtonCenter : kCGMouseButtonLeft;
|
||||
|
||||
CGEventRef e = CGEventCreateMouseEvent(0, type, pos, mouseButton);
|
||||
setModifiersFromQNativeEvent(e, event);
|
||||
CGEventPost(kCGHIDEventTap, e);
|
||||
CFRelease(e);
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
CFRange cfRange;
|
||||
NSRange range = NSMakeRange(0, 0);
|
||||
|
||||
if (!AXValueGetValue((AXValueRef)value, kAXValueCFRangeType, &cfRange))
|
||||
if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCFRangeType), &cfRange))
|
||||
qDebug() << "Could not get CFRange value out of AXValueRef";
|
||||
else if (cfRange.location < 0 || cfRange.length < 0)
|
||||
qDebug() << "Cannot convert CFRange with negative location or length to NSRange";
|
||||
|
|
@ -217,7 +217,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
+ (NSRect)_rectFromValue:(CFTypeRef)value
|
||||
{
|
||||
NSRect rect = NSMakeRect(0, 0, 0, 0);
|
||||
if (!AXValueGetValue((AXValueRef)value, kAXValueCGRectType, reinterpret_cast<CGRect*>(&rect)))
|
||||
if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGRectType), reinterpret_cast<CGRect*>(&rect)))
|
||||
{
|
||||
qDebug() << "Could not get CGRect value out of AXValueRef";
|
||||
}
|
||||
|
|
@ -227,7 +227,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
+ (NSPoint)_pointFromValue:(CFTypeRef)value
|
||||
{
|
||||
NSPoint point = NSMakePoint(0, 0);
|
||||
if (!AXValueGetValue((AXValueRef)value, kAXValueCGPointType, reinterpret_cast<CGPoint*>(&point)))
|
||||
if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGPointType), reinterpret_cast<CGPoint*>(&point)))
|
||||
{
|
||||
qDebug() << "Could not get CGPoint value out of AXValueRef";
|
||||
}
|
||||
|
|
@ -237,7 +237,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
+ (NSSize)_sizeFromValue:(CFTypeRef)value
|
||||
{
|
||||
NSSize size = NSMakeSize(0, 0);
|
||||
if (!AXValueGetValue((AXValueRef)value, kAXValueCGSizeType, reinterpret_cast<CGSize*>(&size)))
|
||||
if (!AXValueGetValue(AXValueRef(value), AXValueType(kAXValueCGSizeType), reinterpret_cast<CGSize*>(&size)))
|
||||
{
|
||||
qDebug() << "Could not get CGSize value out of AXValueRef";
|
||||
}
|
||||
|
|
@ -308,7 +308,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
- (CFTypeRef)_attributeValue:(CFStringRef)attribute forRange:(NSRange)aRange
|
||||
{
|
||||
CFRange cfRange = CFRangeMake(aRange.location, aRange.length);
|
||||
AXValueRef range = AXValueCreate(kAXValueCFRangeType, &cfRange);
|
||||
AXValueRef range = AXValueCreate(AXValueType(kAXValueCFRangeType), &cfRange);
|
||||
CFTypeRef value = [self _attributeValue:attribute forParameter:range];
|
||||
CFRelease(range);
|
||||
return value;
|
||||
|
|
@ -324,7 +324,7 @@ QDebug operator<<(QDebug dbg, AXErrorTag err)
|
|||
|
||||
- (CFTypeRef)_attributeValue:(CFStringRef)attribute forPoint:(CGPoint)aPoint
|
||||
{
|
||||
AXValueRef point = AXValueCreate(kAXValueCGPointType, &aPoint);
|
||||
AXValueRef point = AXValueCreate(AXValueType(kAXValueCGPointType), &aPoint);
|
||||
CFTypeRef value = [self _attributeValue:attribute forParameter:point];
|
||||
CFRelease(point);
|
||||
return value;
|
||||
|
|
|
|||
Loading…
Reference in New Issue