| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This file contains forward declarations for items in later SDKs than the |
| // default one with which Chromium is built (currently 10.6). |
| // If you call any function from this header, be sure to check at runtime for |
| // respondsToSelector: before calling these functions (else your code will crash |
| // on older OS X versions that chrome still supports). |
| |
| #ifndef BASE_MAC_SDK_FORWARD_DECLARATIONS_H_ |
| #define BASE_MAC_SDK_FORWARD_DECLARATIONS_H_ |
| |
| #import <AppKit/AppKit.h> |
| #import <CoreWLAN/CoreWLAN.h> |
| #import <ImageCaptureCore/ImageCaptureCore.h> |
| #import <IOBluetooth/IOBluetooth.h> |
| |
| #include "base/base_export.h" |
| |
| #if !defined(MAC_OS_X_VERSION_10_7) || \ |
| MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 |
| |
| enum { |
| NSEventPhaseNone = 0, // event not associated with a phase. |
| NSEventPhaseBegan = 0x1 << 0, |
| NSEventPhaseStationary = 0x1 << 1, |
| NSEventPhaseChanged = 0x1 << 2, |
| NSEventPhaseEnded = 0x1 << 3, |
| NSEventPhaseCancelled = 0x1 << 4 |
| }; |
| typedef NSUInteger NSEventPhase; |
| |
| enum { |
| NSFullScreenWindowMask = 1 << 14, |
| }; |
| |
| enum { |
| NSApplicationPresentationFullScreen = 1 << 10, |
| }; |
| |
| enum { |
| NSWindowCollectionBehaviorFullScreenPrimary = 1 << 7, |
| NSWindowCollectionBehaviorFullScreenAuxiliary = 1 << 8, |
| }; |
| |
| enum { |
| NSEventSwipeTrackingLockDirection = 0x1 << 0, |
| NSEventSwipeTrackingClampGestureAmount = 0x1 << 1, |
| }; |
| typedef NSUInteger NSEventSwipeTrackingOptions; |
| |
| enum { |
| NSWindowAnimationBehaviorDefault = 0, |
| NSWindowAnimationBehaviorNone = 2, |
| NSWindowAnimationBehaviorDocumentWindow = 3, |
| NSWindowAnimationBehaviorUtilityWindow = 4, |
| NSWindowAnimationBehaviorAlertPanel = 5 |
| }; |
| typedef NSInteger NSWindowAnimationBehavior; |
| |
| enum { |
| NSWindowDocumentVersionsButton = 6, |
| NSWindowFullScreenButton, |
| }; |
| typedef NSUInteger NSWindowButton; |
| |
| @interface NSEvent (LionSDK) |
| + (BOOL)isSwipeTrackingFromScrollEventsEnabled; |
| |
| - (NSEventPhase)momentumPhase; |
| - (NSEventPhase)phase; |
| - (BOOL)hasPreciseScrollingDeltas; |
| - (CGFloat)scrollingDeltaX; |
| - (CGFloat)scrollingDeltaY; |
| - (void)trackSwipeEventWithOptions:(NSEventSwipeTrackingOptions)options |
| dampenAmountThresholdMin:(CGFloat)minDampenThreshold |
| max:(CGFloat)maxDampenThreshold |
| usingHandler:(void (^)(CGFloat gestureAmount, |
| NSEventPhase phase, |
| BOOL isComplete, |
| BOOL *stop))trackingHandler; |
| |
| - (BOOL)isDirectionInvertedFromDevice; |
| |
| @end |
| |
| @interface NSApplication (LionSDK) |
| - (void)disableRelaunchOnLogin; |
| @end |
| |
| @interface CALayer (LionSDK) |
| - (CGFloat)contentsScale; |
| - (void)setContentsScale:(CGFloat)contentsScale; |
| @end |
| |
| @interface NSScreen (LionSDK) |
| - (CGFloat)backingScaleFactor; |
| - (NSRect)convertRectToBacking:(NSRect)aRect; |
| @end |
| |
| @interface NSWindow (LionSDK) |
| - (CGFloat)backingScaleFactor; |
| - (NSWindowAnimationBehavior)animationBehavior; |
| - (void)setAnimationBehavior:(NSWindowAnimationBehavior)newAnimationBehavior; |
| - (void)toggleFullScreen:(id)sender; |
| - (void)setRestorable:(BOOL)flag; |
| @end |
| |
| @interface NSCursor (LionSDKDeclarations) |
| + (NSCursor*)IBeamCursorForVerticalLayout; |
| @end |
| |
| @interface NSAnimationContext (LionSDK) |
| + (void)runAnimationGroup:(void (^)(NSAnimationContext *context))changes |
| completionHandler:(void (^)(void))completionHandler; |
| @property(copy) void(^completionHandler)(void); |
| @end |
| |
| @interface NSView (LionSDK) |
| - (NSSize)convertSizeFromBacking:(NSSize)size; |
| - (void)setWantsBestResolutionOpenGLSurface:(BOOL)flag; |
| @end |
| |
| @interface NSObject (ICCameraDeviceDelegateLionSDK) |
| - (void)deviceDidBecomeReadyWithCompleteContentCatalog:(ICDevice*)device; |
| - (void)didDownloadFile:(ICCameraFile*)file |
| error:(NSError*)error |
| options:(NSDictionary*)options |
| contextInfo:(void*)contextInfo; |
| @end |
| |
| @interface NSScroller (LionSDK) |
| + (NSInteger)preferredScrollerStyle; |
| @end |
| |
| @interface CWInterface (LionSDK) |
| - (BOOL)associateToNetwork:(CWNetwork*)network |
| password:(NSString*)password |
| error:(NSError**)error; |
| - (NSSet*)scanForNetworksWithName:(NSString*)networkName |
| error:(NSError**)error; |
| @end |
| |
| enum CWChannelBand { |
| kCWChannelBandUnknown = 0, |
| kCWChannelBand2GHz = 1, |
| kCWChannelBand5GHz = 2, |
| }; |
| |
| @interface CWChannel : NSObject |
| @property(readonly) CWChannelBand channelBand; |
| @end |
| |
| enum { |
| kCWSecurityNone = 0, |
| kCWSecurityWEP = 1, |
| kCWSecurityWPAPersonal = 2, |
| kCWSecurityWPAPersonalMixed = 3, |
| kCWSecurityWPA2Personal = 4, |
| kCWSecurityPersonal = 5, |
| kCWSecurityDynamicWEP = 6, |
| kCWSecurityWPAEnterprise = 7, |
| kCWSecurityWPAEnterpriseMixed = 8, |
| kCWSecurityWPA2Enterprise = 9, |
| kCWSecurityEnterprise = 10, |
| kCWSecurityUnknown = NSIntegerMax, |
| }; |
| |
| typedef NSInteger CWSecurity; |
| |
| @interface CWNetwork (LionSDK) |
| @property(readonly) CWChannel* wlanChannel; |
| @property(readonly) NSInteger rssiValue; |
| - (BOOL)supportsSecurity:(CWSecurity)security; |
| @end |
| |
| @interface IOBluetoothHostController (LionSDK) |
| - (NSString*)nameAsString; |
| - (BluetoothHCIPowerState)powerState; |
| @end |
| |
| enum { |
| kBluetoothFeatureLESupportedController = (1 << 6L), |
| }; |
| |
| @protocol IOBluetoothDeviceInquiryDelegate |
| - (void)deviceInquiryStarted:(IOBluetoothDeviceInquiry*)sender; |
| - (void)deviceInquiryDeviceFound:(IOBluetoothDeviceInquiry*)sender |
| device:(IOBluetoothDevice*)device; |
| - (void)deviceInquiryComplete:(IOBluetoothDeviceInquiry*)sender |
| error:(IOReturn)error |
| aborted:(BOOL)aborted; |
| @end |
| |
| @interface IOBluetoothL2CAPChannel (LionSDK) |
| @property(readonly) BluetoothL2CAPMTU outgoingMTU; |
| @end |
| |
| @interface IOBluetoothDevice (LionSDK) |
| - (NSString*)addressString; |
| - (unsigned int)classOfDevice; |
| - (BluetoothConnectionHandle)connectionHandle; |
| - (BluetoothHCIRSSIValue)rawRSSI; |
| - (NSArray*)services; |
| - (IOReturn)performSDPQuery:(id)target uuids:(NSArray*)uuids; |
| @end |
| |
| BASE_EXPORT extern "C" NSString* const NSWindowWillEnterFullScreenNotification; |
| BASE_EXPORT extern "C" NSString* const NSWindowWillExitFullScreenNotification; |
| BASE_EXPORT extern "C" NSString* const NSWindowDidEnterFullScreenNotification; |
| BASE_EXPORT extern "C" NSString* const NSWindowDidExitFullScreenNotification; |
| |
| BASE_EXPORT extern "C" NSString* const |
| NSWindowDidFailToEnterFullScreenNotification; |
| |
| BASE_EXPORT extern "C" NSString* const |
| NSWindowDidFailToExitFullScreenNotification; |
| |
| #endif // MAC_OS_X_VERSION_10_7 |
| |
| #if !defined(MAC_OS_X_VERSION_10_8) || \ |
| MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8 |
| |
| enum { |
| NSEventPhaseMayBegin = 0x1 << 5 |
| }; |
| |
| @interface NSColor (MountainLionSDK) |
| - (CGColorRef)CGColor; |
| @end |
| |
| #endif // MAC_OS_X_VERSION_10_8 |
| |
| |
| #if !defined(MAC_OS_X_VERSION_10_9) || \ |
| MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9 |
| |
| // NSProgress is public API in 10.9, but a version of it exists and is usable |
| // in 10.8. |
| |
| @interface NSProgress : NSObject |
| |
| - (instancetype)initWithParent:(NSProgress*)parentProgressOrNil |
| userInfo:(NSDictionary*)userInfoOrNil; |
| @property (copy) NSString* kind; |
| |
| @property int64_t totalUnitCount; |
| @property int64_t completedUnitCount; |
| |
| @property (getter=isCancellable) BOOL cancellable; |
| @property (getter=isPausable) BOOL pausable; |
| @property (readonly, getter=isCancelled) BOOL cancelled; |
| @property (readonly, getter=isPaused) BOOL paused; |
| @property (copy) void (^cancellationHandler)(void); |
| @property (copy) void (^pausingHandler)(void); |
| - (void)cancel; |
| - (void)pause; |
| |
| - (void)setUserInfoObject:(id)objectOrNil forKey:(NSString*)key; |
| - (NSDictionary*)userInfo; |
| |
| @property (readonly, getter=isIndeterminate) BOOL indeterminate; |
| @property (readonly) double fractionCompleted; |
| |
| - (void)publish; |
| - (void)unpublish; |
| |
| @end |
| |
| @interface NSScreen (MavericksSDK) |
| + (BOOL)screensHaveSeparateSpaces; |
| @end |
| |
| // NSAppearance is a new class in the 10.9 SDK. New classes cannot be |
| // forward-declared because they also require an @implementation, which would |
| // produce conflicting linkage. Instead, just declare the necessary pieces of |
| // the interface as a protocol, and treat objects of this type as id. |
| @protocol CrNSAppearance<NSObject> |
| + (id<NSObject>)appearanceNamed:(NSString*)name; |
| @end |
| |
| @interface NSView (MavericksSDK) |
| - (void)setCanDrawSubviewsIntoLayer:(BOOL)flag; |
| - (id<CrNSAppearance>)effectiveAppearance; |
| @end |
| |
| enum { |
| NSWindowOcclusionStateVisible = 1UL << 1, |
| }; |
| typedef NSUInteger NSWindowOcclusionState; |
| |
| @interface NSWindow (MavericksSDK) |
| - (NSWindowOcclusionState)occlusionState; |
| @end |
| |
| enum { |
| NSWorkspaceLaunchWithErrorPresentation = 0x00000040 |
| }; |
| |
| #else // !MAC_OS_X_VERSION_10_9 |
| |
| typedef enum { |
| kCWSecurityModeOpen = 0, |
| kCWSecurityModeWEP, |
| kCWSecurityModeWPA_PSK, |
| kCWSecurityModeWPA2_PSK, |
| kCWSecurityModeWPA_Enterprise, |
| kCWSecurityModeWPA2_Enterprise, |
| kCWSecurityModeWPS, |
| kCWSecurityModeDynamicWEP |
| } CWSecurityMode; |
| |
| @interface CWNetwork (SnowLeopardSDK) |
| @property(readonly) NSNumber* rssi; |
| @property(readonly) NSNumber* securityMode; |
| @end |
| |
| BASE_EXPORT extern "C" NSString* const kCWSSIDDidChangeNotification; |
| |
| #endif // MAC_OS_X_VERSION_10_9 |
| |
| #if !defined(MAC_OS_X_VERSION_10_10) || \ |
| MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10 |
| |
| @interface NSUserActivity : NSObject |
| |
| @property (readonly, copy) NSString* activityType; |
| @property (copy) NSURL* webPageURL; |
| |
| @end |
| |
| BASE_EXPORT extern "C" NSString* const NSUserActivityTypeBrowsingWeb; |
| |
| BASE_EXPORT extern "C" NSString* const NSAppearanceNameVibrantDark; |
| |
| #endif // MAC_OS_X_VERSION_10_10 |
| |
| #endif // BASE_MAC_SDK_FORWARD_DECLARATIONS_H_ |