@@ -34,7 +34,8 @@ | |||||
// The AudioHardwareService stuff was deprecated in 10.11 but there's no replacement yet, | // The AudioHardwareService stuff was deprecated in 10.11 but there's no replacement yet, | ||||
// so we'll have to silence the warnings here and revisit it in a future OS version.. | // so we'll have to silence the warnings here and revisit it in a future OS version.. | ||||
#if defined (MAC_OS_X_VERSION_10_11) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_11 | |||||
#if ((defined (MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_12) \ | |||||
|| (defined (MAC_OS_X_VERSION_10_11) && MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_11)) | |||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations" | #pragma clang diagnostic ignored "-Wdeprecated-declarations" | ||||
#endif | #endif | ||||
#endif | #endif | ||||
@@ -42,6 +42,46 @@ | |||||
#include <sys/fcntl.h> | #include <sys/fcntl.h> | ||||
#else | #else | ||||
#import <Cocoa/Cocoa.h> | #import <Cocoa/Cocoa.h> | ||||
#if (! defined MAC_OS_X_VERSION_10_12) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12 | |||||
#define NSEventModifierFlagCommand NSCommandKeyMask | |||||
#define NSEventModifierFlagControl NSControlKeyMask | |||||
#define NSEventModifierFlagHelp NSHelpKeyMask | |||||
#define NSEventModifierFlagNumericPad NSNumericPadKeyMask | |||||
#define NSEventModifierFlagOption NSAlternateKeyMask | |||||
#define NSEventModifierFlagShift NSShiftKeyMask | |||||
#define NSCompositingOperationSourceOver NSCompositeSourceOver | |||||
#define NSEventMaskApplicationDefined NSApplicationDefinedMask | |||||
#define NSEventTypeApplicationDefined NSApplicationDefined | |||||
#define NSEventTypeCursorUpdate NSCursorUpdate | |||||
#define NSEventTypeMouseMoved NSMouseMoved | |||||
#define NSEventTypeLeftMouseDown NSLeftMouseDown | |||||
#define NSEventTypeRightMouseDown NSRightMouseDown | |||||
#define NSEventTypeOtherMouseDown NSOtherMouseDown | |||||
#define NSEventTypeLeftMouseUp NSLeftMouseUp | |||||
#define NSEventTypeRightMouseUp NSRightMouseUp | |||||
#define NSEventTypeOtherMouseUp NSOtherMouseUp | |||||
#define NSEventTypeLeftMouseDragged NSLeftMouseDragged | |||||
#define NSEventTypeRightMouseDragged NSRightMouseDragged | |||||
#define NSEventTypeOtherMouseDragged NSOtherMouseDragged | |||||
#define NSEventTypeScrollWheel NSScrollWheel | |||||
#define NSEventTypeKeyDown NSKeyDown | |||||
#define NSEventTypeKeyUp NSKeyUp | |||||
#define NSEventTypeFlagsChanged NSFlagsChanged | |||||
#define NSEventMaskAny NSAnyEventMask | |||||
#define NSWindowStyleMaskBorderless NSBorderlessWindowMask | |||||
#define NSWindowStyleMaskClosable NSClosableWindowMask | |||||
#define NSWindowStyleMaskFullScreen NSFullScreenWindowMask | |||||
#define NSWindowStyleMaskMiniaturizable NSMiniaturizableWindowMask | |||||
#define NSWindowStyleMaskResizable NSResizableWindowMask | |||||
#define NSWindowStyleMaskTitled NSTitledWindowMask | |||||
#define NSAlertStyleCritical NSCriticalAlertStyle | |||||
#define NSControlSizeRegular NSRegularControlSize | |||||
#define NSEventTypeMouseEntered NSMouseEntered | |||||
#define NSEventTypeMouseExited NSMouseExited | |||||
#define NSAlertStyleInformational NSInformationalAlertStyle | |||||
#define NSEventTypeTabletPoint NSTabletPoint | |||||
#define NSEventTypeTabletProximity NSTabletProximity | |||||
#endif | |||||
#import <CoreAudio/HostTime.h> | #import <CoreAudio/HostTime.h> | ||||
#include <sys/dir.h> | #include <sys/dir.h> | ||||
#endif | #endif | ||||
@@ -297,7 +297,7 @@ bool MessageManager::runDispatchLoopUntil (int millisecondsToRunFor) | |||||
{ | { | ||||
CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); | CFRunLoopRunInMode (kCFRunLoopDefaultMode, 0.001, true); | ||||
NSEvent* e = [NSApp nextEventMatchingMask: NSAnyEventMask | |||||
NSEvent* e = [NSApp nextEventMatchingMask: NSEventMaskAny | |||||
untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001] | untilDate: [NSDate dateWithTimeIntervalSinceNow: 0.001] | ||||
inMode: NSDefaultRunLoopMode | inMode: NSDefaultRunLoopMode | ||||
dequeue: YES]; | dequeue: YES]; | ||||
@@ -389,9 +389,9 @@ private: | |||||
if ([menu indexOfItem: item] >= 0) | if ([menu indexOfItem: item] >= 0) | ||||
{ | { | ||||
NSEvent* f35Event = [NSEvent keyEventWithType: NSKeyDown | |||||
NSEvent* f35Event = [NSEvent keyEventWithType: NSEventTypeKeyDown | |||||
location: NSZeroPoint | location: NSZeroPoint | ||||
modifierFlags: NSCommandKeyMask | |||||
modifierFlags: NSEventModifierFlagCommand | |||||
timestamp: 0 | timestamp: 0 | ||||
windowNumber: 0 | windowNumber: 0 | ||||
context: [NSGraphicsContext currentContext] | context: [NSGraphicsContext currentContext] | ||||
@@ -412,10 +412,10 @@ private: | |||||
static unsigned int juceModsToNSMods (const ModifierKeys mods) | static unsigned int juceModsToNSMods (const ModifierKeys mods) | ||||
{ | { | ||||
unsigned int m = 0; | unsigned int m = 0; | ||||
if (mods.isShiftDown()) m |= NSShiftKeyMask; | |||||
if (mods.isCtrlDown()) m |= NSControlKeyMask; | |||||
if (mods.isAltDown()) m |= NSAlternateKeyMask; | |||||
if (mods.isCommandDown()) m |= NSCommandKeyMask; | |||||
if (mods.isShiftDown()) m |= NSEventModifierFlagShift; | |||||
if (mods.isCtrlDown()) m |= NSEventModifierFlagControl; | |||||
if (mods.isAltDown()) m |= NSEventModifierFlagOption; | |||||
if (mods.isCommandDown()) m |= NSEventModifierFlagCommand; | |||||
return m; | return m; | ||||
} | } | ||||
@@ -481,13 +481,13 @@ private: | |||||
// our own components, which may have wanted to intercept it. So, rather than dispatching directly, we'll feed it back | // our own components, which may have wanted to intercept it. So, rather than dispatching directly, we'll feed it back | ||||
// into the focused component and let it trigger the menu item indirectly. | // into the focused component and let it trigger the menu item indirectly. | ||||
NSEvent* e = [NSApp currentEvent]; | NSEvent* e = [NSApp currentEvent]; | ||||
if ([e type] == NSKeyDown || [e type] == NSKeyUp) | |||||
if ([e type] == NSEventTypeKeyDown || [e type] == NSEventTypeKeyUp) | |||||
{ | { | ||||
if (juce::Component* focused = juce::Component::getCurrentlyFocusedComponent()) | if (juce::Component* focused = juce::Component::getCurrentlyFocusedComponent()) | ||||
{ | { | ||||
if (juce::NSViewComponentPeer* peer = dynamic_cast<juce::NSViewComponentPeer*> (focused->getPeer())) | if (juce::NSViewComponentPeer* peer = dynamic_cast<juce::NSViewComponentPeer*> (focused->getPeer())) | ||||
{ | { | ||||
if ([e type] == NSKeyDown) | |||||
if ([e type] == NSEventTypeKeyDown) | |||||
peer->redirectKeyDown (e); | peer->redirectKeyDown (e); | ||||
else | else | ||||
peer->redirectKeyUp (e); | peer->redirectKeyUp (e); | ||||
@@ -624,7 +624,7 @@ namespace MainMenuHelpers | |||||
createMenuItem (menu, "Hide " + appName, @selector (hide:), nsStringLiteral ("h")); | createMenuItem (menu, "Hide " + appName, @selector (hide:), nsStringLiteral ("h")); | ||||
[createMenuItem (menu, "Hide Others", @selector (hideOtherApplications:), nsStringLiteral ("h")) | [createMenuItem (menu, "Hide Others", @selector (hideOtherApplications:), nsStringLiteral ("h")) | ||||
setKeyEquivalentModifierMask: NSCommandKeyMask | NSAlternateKeyMask]; | |||||
setKeyEquivalentModifierMask: NSEventModifierFlagCommand | NSEventModifierFlagOption]; | |||||
createMenuItem (menu, "Show All", @selector (unhideAllApplications:), nsEmptyString()); | createMenuItem (menu, "Show All", @selector (unhideAllApplications:), nsEmptyString()); | ||||
@@ -375,7 +375,7 @@ public: | |||||
bool isKioskMode() const override | bool isKioskMode() const override | ||||
{ | { | ||||
#if defined (MAC_OS_X_VERSION_10_7) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 | #if defined (MAC_OS_X_VERSION_10_7) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 | ||||
if (hasNativeTitleBar() && ([window styleMask] & NSFullScreenWindowMask) != 0) | |||||
if (hasNativeTitleBar() && ([window styleMask] & NSWindowStyleMaskFullScreen) != 0) | |||||
return true; | return true; | ||||
#endif | #endif | ||||
@@ -729,7 +729,7 @@ public: | |||||
break; // (these all seem to generate unwanted garbage unicode strings) | break; // (these all seem to generate unwanted garbage unicode strings) | ||||
default: | default: | ||||
if (([ev modifierFlags] & NSCommandKeyMask) != 0 | |||||
if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0 | |||||
|| (keyCode >= NSF1FunctionKey && keyCode <= NSF35FunctionKey)) | || (keyCode >= NSF1FunctionKey && keyCode <= NSF35FunctionKey)) | ||||
textCharacter = 0; | textCharacter = 0; | ||||
break; | break; | ||||
@@ -758,7 +758,7 @@ public: | |||||
updateKeysDown (ev, true); | updateKeysDown (ev, true); | ||||
bool used = handleKeyEvent (ev, true); | bool used = handleKeyEvent (ev, true); | ||||
if (([ev modifierFlags] & NSCommandKeyMask) != 0) | |||||
if (([ev modifierFlags] & NSEventModifierFlagCommand) != 0) | |||||
{ | { | ||||
// for command keys, the key-up event is thrown away, so simulate one.. | // for command keys, the key-up event is thrown away, so simulate one.. | ||||
updateKeysDown (ev, false); | updateKeysDown (ev, false); | ||||
@@ -1098,10 +1098,10 @@ public: | |||||
{ | { | ||||
int m = 0; | int m = 0; | ||||
if ((flags & NSShiftKeyMask) != 0) m |= ModifierKeys::shiftModifier; | |||||
if ((flags & NSControlKeyMask) != 0) m |= ModifierKeys::ctrlModifier; | |||||
if ((flags & NSAlternateKeyMask) != 0) m |= ModifierKeys::altModifier; | |||||
if ((flags & NSCommandKeyMask) != 0) m |= ModifierKeys::commandModifier; | |||||
if ((flags & NSEventModifierFlagShift) != 0) m |= ModifierKeys::shiftModifier; | |||||
if ((flags & NSEventModifierFlagControl) != 0) m |= ModifierKeys::ctrlModifier; | |||||
if ((flags & NSEventModifierFlagOption) != 0) m |= ModifierKeys::altModifier; | |||||
if ((flags & NSEventModifierFlagCommand) != 0) m |= ModifierKeys::commandModifier; | |||||
currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (m); | currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (m); | ||||
} | } | ||||
@@ -1174,7 +1174,7 @@ public: | |||||
else | else | ||||
keyCode = (int) CharacterFunctions::toUpperCase ((juce_wchar) keyCode); | keyCode = (int) CharacterFunctions::toUpperCase ((juce_wchar) keyCode); | ||||
if (([ev modifierFlags] & NSNumericPadKeyMask) != 0) | |||||
if (([ev modifierFlags] & NSEventModifierFlagNumericPad) != 0) | |||||
{ | { | ||||
const int numPadConversions[] = { '0', KeyPress::numberPad0, '1', KeyPress::numberPad1, | const int numPadConversions[] = { '0', KeyPress::numberPad0, '1', KeyPress::numberPad1, | ||||
'2', KeyPress::numberPad2, '3', KeyPress::numberPad3, | '2', KeyPress::numberPad2, '3', KeyPress::numberPad3, | ||||
@@ -1205,7 +1205,7 @@ public: | |||||
{ | { | ||||
@try | @try | ||||
{ | { | ||||
if (e.type != NSMouseEntered && e.type != NSMouseExited) | |||||
if (e.type != NSEventTypeMouseEntered && e.type != NSEventTypeMouseExited) | |||||
return (float) e.pressure; | return (float) e.pressure; | ||||
} | } | ||||
@catch (NSException* e) {} | @catch (NSException* e) {} | ||||
@@ -1229,12 +1229,12 @@ public: | |||||
static unsigned int getNSWindowStyleMask (const int flags) noexcept | static unsigned int getNSWindowStyleMask (const int flags) noexcept | ||||
{ | { | ||||
unsigned int style = (flags & windowHasTitleBar) != 0 ? NSTitledWindowMask | |||||
: NSBorderlessWindowMask; | |||||
unsigned int style = (flags & windowHasTitleBar) != 0 ? NSWindowStyleMaskTitled | |||||
: NSWindowStyleMaskBorderless; | |||||
if ((flags & windowHasMinimiseButton) != 0) style |= NSMiniaturizableWindowMask; | |||||
if ((flags & windowHasCloseButton) != 0) style |= NSClosableWindowMask; | |||||
if ((flags & windowIsResizable) != 0) style |= NSResizableWindowMask; | |||||
if ((flags & windowHasMinimiseButton) != 0) style |= NSWindowStyleMaskMiniaturizable; | |||||
if ((flags & windowHasCloseButton) != 0) style |= NSWindowStyleMaskClosable; | |||||
if ((flags & windowIsResizable) != 0) style |= NSWindowStyleMaskResizable; | |||||
return style; | return style; | ||||
} | } | ||||
@@ -1433,34 +1433,34 @@ private: | |||||
switch ([e type]) | switch ([e type]) | ||||
{ | { | ||||
case NSKeyDown: | |||||
case NSKeyUp: | |||||
case NSEventTypeKeyDown: | |||||
case NSEventTypeKeyUp: | |||||
isKey = isInputAttempt = true; | isKey = isInputAttempt = true; | ||||
break; | break; | ||||
case NSLeftMouseDown: | |||||
case NSRightMouseDown: | |||||
case NSOtherMouseDown: | |||||
case NSEventTypeLeftMouseDown: | |||||
case NSEventTypeRightMouseDown: | |||||
case NSEventTypeOtherMouseDown: | |||||
isInputAttempt = true; | isInputAttempt = true; | ||||
break; | break; | ||||
case NSLeftMouseDragged: | |||||
case NSRightMouseDragged: | |||||
case NSLeftMouseUp: | |||||
case NSRightMouseUp: | |||||
case NSOtherMouseUp: | |||||
case NSOtherMouseDragged: | |||||
case NSEventTypeLeftMouseDragged: | |||||
case NSEventTypeRightMouseDragged: | |||||
case NSEventTypeLeftMouseUp: | |||||
case NSEventTypeRightMouseUp: | |||||
case NSEventTypeOtherMouseUp: | |||||
case NSEventTypeOtherMouseDragged: | |||||
if (Desktop::getInstance().getDraggingMouseSource(0) != nullptr) | if (Desktop::getInstance().getDraggingMouseSource(0) != nullptr) | ||||
return false; | return false; | ||||
break; | break; | ||||
case NSMouseMoved: | |||||
case NSMouseEntered: | |||||
case NSMouseExited: | |||||
case NSCursorUpdate: | |||||
case NSScrollWheel: | |||||
case NSTabletPoint: | |||||
case NSTabletProximity: | |||||
case NSEventTypeMouseMoved: | |||||
case NSEventTypeMouseEntered: | |||||
case NSEventTypeMouseExited: | |||||
case NSEventTypeCursorUpdate: | |||||
case NSEventTypeScrollWheel: | |||||
case NSEventTypeTabletPoint: | |||||
case NSEventTypeTabletProximity: | |||||
break; | break; | ||||
default: | default: | ||||
@@ -2079,7 +2079,7 @@ void Desktop::setKioskComponent (Component* kioskComp, bool shouldBeEnabled, boo | |||||
if (shouldBeEnabled) | if (shouldBeEnabled) | ||||
{ | { | ||||
if (peer->hasNativeTitleBar()) | if (peer->hasNativeTitleBar()) | ||||
[peer->window setStyleMask: NSBorderlessWindowMask]; | |||||
[peer->window setStyleMask: NSWindowStyleMaskBorderless]; | |||||
[NSApp setPresentationOptions: (allowMenusAndBars ? (NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar) | [NSApp setPresentationOptions: (allowMenusAndBars ? (NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar) | ||||
: (NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar))]; | : (NSApplicationPresentationHideDock | NSApplicationPresentationHideMenuBar))]; | ||||
@@ -89,8 +89,8 @@ private: | |||||
[alert setMessageText: juceStringToNS (title)]; | [alert setMessageText: juceStringToNS (title)]; | ||||
[alert setInformativeText: juceStringToNS (message)]; | [alert setInformativeText: juceStringToNS (message)]; | ||||
[alert setAlertStyle: iconType == AlertWindow::WarningIcon ? NSCriticalAlertStyle | |||||
: NSInformationalAlertStyle]; | |||||
[alert setAlertStyle: iconType == AlertWindow::WarningIcon ? NSAlertStyleCritical | |||||
: NSAlertStyleInformational]; | |||||
addButton (alert, button1); | addButton (alert, button1); | ||||
addButton (alert, button2); | addButton (alert, button2); | ||||
addButton (alert, button3); | addButton (alert, button3); | ||||
@@ -419,7 +419,7 @@ Image juce_createIconForFile (const File& file) | |||||
selectImageForDrawing (result); | selectImageForDrawing (result); | ||||
[image drawAtPoint: NSMakePoint (0, 0) | [image drawAtPoint: NSMakePoint (0, 0) | ||||
fromRect: NSMakeRect (0, 0, [image size].width, [image size].height) | fromRect: NSMakeRect (0, 0, [image size].width, [image size].height) | ||||
operation: NSCompositeSourceOver fraction: 1.0f]; | |||||
operation: NSCompositingOperationSourceOver fraction: 1.0f]; | |||||
releaseImageAfterDrawing(); | releaseImageAfterDrawing(); | ||||
return result; | return result; | ||||
@@ -85,8 +85,8 @@ public: | |||||
{ | { | ||||
NSEventType type = [e type]; | NSEventType type = [e type]; | ||||
const bool isLeft = (type == NSLeftMouseDown || type == NSLeftMouseUp); | |||||
const bool isRight = (type == NSRightMouseDown || type == NSRightMouseUp); | |||||
const bool isLeft = (type == NSEventTypeLeftMouseDown || type == NSEventTypeLeftMouseUp); | |||||
const bool isRight = (type == NSEventTypeRightMouseDown || type == NSEventTypeRightMouseUp); | |||||
if (owner.isCurrentlyBlockedByAnotherModalComponent()) | if (owner.isCurrentlyBlockedByAnotherModalComponent()) | ||||
{ | { | ||||
@@ -98,7 +98,7 @@ public: | |||||
{ | { | ||||
ModifierKeys eventMods (ModifierKeys::getCurrentModifiersRealtime()); | ModifierKeys eventMods (ModifierKeys::getCurrentModifiersRealtime()); | ||||
if (([e modifierFlags] & NSCommandKeyMask) != 0) | |||||
if (([e modifierFlags] & NSEventModifierFlagCommand) != 0) | |||||
eventMods = eventMods.withFlags (ModifierKeys::commandModifier); | eventMods = eventMods.withFlags (ModifierKeys::commandModifier); | ||||
const Time now (Time::getCurrentTime()); | const Time now (Time::getCurrentTime()); | ||||
@@ -121,7 +121,7 @@ public: | |||||
pressure, &owner, &owner, now, | pressure, &owner, &owner, now, | ||||
Point<float>(), now, 1, false)); | Point<float>(), now, 1, false)); | ||||
} | } | ||||
else if (type == NSMouseMoved) | |||||
else if (type == NSEventTypeMouseMoved) | |||||
{ | { | ||||
owner.mouseMove (MouseEvent (mouseSource, Point<float>(), eventMods, | owner.mouseMove (MouseEvent (mouseSource, Point<float>(), eventMods, | ||||
pressure, &owner, &owner, now, | pressure, &owner, &owner, now, | ||||
@@ -214,7 +214,7 @@ private: | |||||
bounds.origin.y + ((bounds.size.height - imageSize.height) / 2.0f), | bounds.origin.y + ((bounds.size.height - imageSize.height) / 2.0f), | ||||
imageSize.width, imageSize.height) | imageSize.width, imageSize.height) | ||||
fromRect: NSZeroRect | fromRect: NSZeroRect | ||||
operation: NSCompositeSourceOver | |||||
operation: NSCompositingOperationSourceOver | |||||
fraction: 1.0f]; | fraction: 1.0f]; | ||||
} | } | ||||
} | } | ||||