mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
350 lines
12 KiB
C
350 lines
12 KiB
C
|
// 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.10).
|
||
|
// 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 <CoreBluetooth/CoreBluetooth.h>
|
||
|
#import <CoreWLAN/CoreWLAN.h>
|
||
|
#import <IOBluetooth/IOBluetooth.h>
|
||
|
#import <ImageCaptureCore/ImageCaptureCore.h>
|
||
|
#import <QuartzCore/QuartzCore.h>
|
||
|
#include <stdint.h>
|
||
|
|
||
|
#include "base/base_export.h"
|
||
|
#include "base/mac/availability.h"
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// Define typedefs, enums, and protocols not available in the version of the
|
||
|
// OSX SDK being compiled against.
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
#if !defined(MAC_OS_X_VERSION_10_11) || \
|
||
|
MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11
|
||
|
|
||
|
enum {
|
||
|
NSPressureBehaviorUnknown = -1,
|
||
|
NSPressureBehaviorPrimaryDefault = 0,
|
||
|
NSPressureBehaviorPrimaryClick = 1,
|
||
|
NSPressureBehaviorPrimaryGeneric = 2,
|
||
|
NSPressureBehaviorPrimaryAccelerator = 3,
|
||
|
NSPressureBehaviorPrimaryDeepClick = 5,
|
||
|
NSPressureBehaviorPrimaryDeepDrag = 6
|
||
|
};
|
||
|
typedef NSInteger NSPressureBehavior;
|
||
|
|
||
|
@interface NSPressureConfiguration : NSObject
|
||
|
- (instancetype)initWithPressureBehavior:(NSPressureBehavior)pressureBehavior;
|
||
|
@end
|
||
|
|
||
|
enum {
|
||
|
NSSpringLoadingHighlightNone = 0,
|
||
|
NSSpringLoadingHighlightStandard,
|
||
|
NSSpringLoadingHighlightEmphasized
|
||
|
};
|
||
|
typedef NSUInteger NSSpringLoadingHighlight;
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_11
|
||
|
|
||
|
#if !defined(MAC_OS_X_VERSION_10_12) || \
|
||
|
MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12
|
||
|
|
||
|
// The protocol was formalized by the 10.12 SDK, but it was informally used
|
||
|
// before.
|
||
|
@protocol CAAnimationDelegate
|
||
|
- (void)animationDidStart:(CAAnimation*)animation;
|
||
|
- (void)animationDidStop:(CAAnimation*)animation finished:(BOOL)finished;
|
||
|
@end
|
||
|
|
||
|
@protocol CALayerDelegate
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_12
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// Define NSStrings only available in newer versions of the OSX SDK to force
|
||
|
// them to be statically linked.
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
extern "C" {
|
||
|
#if !defined(MAC_OS_X_VERSION_10_10) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
|
||
|
BASE_EXPORT extern NSString* const CIDetectorTypeQRCode;
|
||
|
BASE_EXPORT extern NSString* const NSUserActivityTypeBrowsingWeb;
|
||
|
BASE_EXPORT extern NSString* const NSAppearanceNameVibrantDark;
|
||
|
BASE_EXPORT extern NSString* const NSAppearanceNameVibrantLight;
|
||
|
#endif // MAC_OS_X_VERSION_10_10
|
||
|
} // extern "C"
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// If compiling against an older version of the OSX SDK, declare classes and
|
||
|
// functions that are available in newer versions of the OSX SDK. If compiling
|
||
|
// against a newer version of the OSX SDK, redeclare those same classes and
|
||
|
// functions to suppress -Wpartial-availability warnings.
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.9, everything within this preprocessor
|
||
|
// block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_10) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10
|
||
|
|
||
|
@interface NSUserActivity (YosemiteSDK)
|
||
|
@property(readonly, copy) NSString* activityType;
|
||
|
@property(copy) NSDictionary* userInfo;
|
||
|
@property(copy) NSURL* webpageURL;
|
||
|
@property(copy) NSString* title;
|
||
|
- (instancetype)initWithActivityType:(NSString*)activityType;
|
||
|
- (void)becomeCurrent;
|
||
|
- (void)invalidate;
|
||
|
@end
|
||
|
|
||
|
@interface CBUUID (YosemiteSDK)
|
||
|
- (NSString*)UUIDString;
|
||
|
@end
|
||
|
|
||
|
@interface NSViewController (YosemiteSDK)
|
||
|
- (void)viewDidLoad;
|
||
|
@end
|
||
|
|
||
|
@interface NSWindow (YosemiteSDK)
|
||
|
- (void)setTitlebarAppearsTransparent:(BOOL)flag;
|
||
|
@end
|
||
|
|
||
|
@interface NSProcessInfo (YosemiteSDK)
|
||
|
@property(readonly) NSOperatingSystemVersion operatingSystemVersion;
|
||
|
@end
|
||
|
|
||
|
@interface NSLayoutConstraint (YosemiteSDK)
|
||
|
@property(getter=isActive) BOOL active;
|
||
|
+ (void)activateConstraints:(NSArray*)constraints;
|
||
|
@end
|
||
|
|
||
|
@interface NSVisualEffectView (YosemiteSDK)
|
||
|
- (void)setState:(NSVisualEffectState)state;
|
||
|
@end
|
||
|
|
||
|
@class NSVisualEffectView;
|
||
|
|
||
|
@interface CIQRCodeFeature (YosemiteSDK)
|
||
|
@property(readonly) CGRect bounds;
|
||
|
@property(readonly) CGPoint topLeft;
|
||
|
@property(readonly) CGPoint topRight;
|
||
|
@property(readonly) CGPoint bottomLeft;
|
||
|
@property(readonly) CGPoint bottomRight;
|
||
|
@property(readonly, copy) NSString* messageString;
|
||
|
@end
|
||
|
|
||
|
@class CIQRCodeFeature;
|
||
|
|
||
|
@interface NSView (YosemiteSDK)
|
||
|
- (BOOL)isAccessibilitySelectorAllowed:(SEL)selector;
|
||
|
@property(copy) NSString* accessibilityLabel;
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_10
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.10.2, everything within this
|
||
|
// preprocessor block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_10_3) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_3
|
||
|
|
||
|
@interface NSEvent (Yosemite_3_SDK)
|
||
|
@property(readonly) NSInteger stage;
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_10
|
||
|
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// Define NSStrings only available in newer versions of the OSX SDK to force
|
||
|
// them to be statically linked.
|
||
|
// ----------------------------------------------------------------------------
|
||
|
|
||
|
extern "C" {
|
||
|
#if !defined(MAC_OS_X_VERSION_10_11) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11
|
||
|
BASE_EXPORT extern NSString* const CIDetectorTypeText;
|
||
|
#endif // MAC_OS_X_VERSION_10_11
|
||
|
} // extern "C"
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.10, everything within this
|
||
|
// preprocessor block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_11) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11
|
||
|
|
||
|
@class NSLayoutDimension;
|
||
|
@class NSLayoutXAxisAnchor;
|
||
|
@class NSLayoutYAxisAnchor;
|
||
|
|
||
|
@interface NSObject (ElCapitanSDK)
|
||
|
- (NSLayoutConstraint*)constraintEqualToConstant:(CGFloat)c;
|
||
|
- (NSLayoutConstraint*)constraintGreaterThanOrEqualToConstant:(CGFloat)c;
|
||
|
@end
|
||
|
|
||
|
@interface NSView (ElCapitanSDK)
|
||
|
- (void)setPressureConfiguration:(NSPressureConfiguration*)aConfiguration
|
||
|
API_AVAILABLE(macos(10.11));
|
||
|
@property(readonly, strong)
|
||
|
NSLayoutXAxisAnchor* leftAnchor API_AVAILABLE(macos(10.11));
|
||
|
@property(readonly, strong)
|
||
|
NSLayoutXAxisAnchor* rightAnchor API_AVAILABLE(macos(10.11));
|
||
|
@property(readonly, strong)
|
||
|
NSLayoutYAxisAnchor* bottomAnchor API_AVAILABLE(macos(10.11));
|
||
|
@property(readonly, strong)
|
||
|
NSLayoutDimension* widthAnchor API_AVAILABLE(macos(10.11));
|
||
|
@end
|
||
|
|
||
|
@interface NSWindow (ElCapitanSDK)
|
||
|
- (void)performWindowDragWithEvent:(NSEvent*)event;
|
||
|
@end
|
||
|
|
||
|
@interface CIRectangleFeature (ElCapitanSDK)
|
||
|
@property(readonly) CGRect bounds;
|
||
|
@end
|
||
|
|
||
|
@class CIRectangleFeature;
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_11
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.11, everything within this
|
||
|
// preprocessor block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_12) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
|
||
|
|
||
|
@interface NSWindow (SierraSDK)
|
||
|
@property(class) BOOL allowsAutomaticWindowTabbing;
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_12
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.12.0, everything within this
|
||
|
// preprocessor block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_12_1) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1
|
||
|
|
||
|
@interface NSButton (SierraPointOneSDK)
|
||
|
@property(copy) NSColor* bezelColor;
|
||
|
@property BOOL imageHugsTitle;
|
||
|
+ (instancetype)buttonWithTitle:(NSString*)title
|
||
|
target:(id)target
|
||
|
action:(SEL)action;
|
||
|
+ (instancetype)buttonWithImage:(NSImage*)image
|
||
|
target:(id)target
|
||
|
action:(SEL)action;
|
||
|
+ (instancetype)buttonWithTitle:(NSString*)title
|
||
|
image:(NSImage*)image
|
||
|
target:(id)target
|
||
|
action:(SEL)action;
|
||
|
@end
|
||
|
|
||
|
@interface NSSegmentedControl (SierraPointOneSDK)
|
||
|
+ (instancetype)segmentedControlWithImages:(NSArray*)images
|
||
|
trackingMode:(NSSegmentSwitchTracking)trackingMode
|
||
|
target:(id)target
|
||
|
action:(SEL)action;
|
||
|
@end
|
||
|
|
||
|
@interface NSTextField (SierraPointOneSDK)
|
||
|
+ (instancetype)labelWithAttributedString:
|
||
|
(NSAttributedString*)attributedStringValue;
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_12_1
|
||
|
|
||
|
// Once Chrome no longer supports OSX 10.12, everything within this
|
||
|
// preprocessor block can be removed.
|
||
|
#if !defined(MAC_OS_X_VERSION_10_13) || \
|
||
|
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_13
|
||
|
|
||
|
// VNRequest forward declarations.
|
||
|
@class VNRequest;
|
||
|
typedef void (^VNRequestCompletionHandler)(VNRequest* request, NSError* error);
|
||
|
|
||
|
@interface VNRequest : NSObject<NSCopying>
|
||
|
- (instancetype)initWithCompletionHandler:
|
||
|
(VNRequestCompletionHandler)completionHandler NS_DESIGNATED_INITIALIZER;
|
||
|
@property(readonly, nonatomic, copy) NSArray* results;
|
||
|
@end
|
||
|
|
||
|
// VNDetectFaceLandmarksRequest forward declarations.
|
||
|
@interface VNImageBasedRequest : VNRequest
|
||
|
@end
|
||
|
|
||
|
@protocol VNFaceObservationAccepting<NSObject>
|
||
|
@end
|
||
|
|
||
|
@interface VNDetectFaceLandmarksRequest
|
||
|
: VNImageBasedRequest<VNFaceObservationAccepting>
|
||
|
@end
|
||
|
|
||
|
// VNImageRequestHandler forward declarations.
|
||
|
typedef NSString* VNImageOption NS_STRING_ENUM;
|
||
|
|
||
|
@interface VNImageRequestHandler : NSObject
|
||
|
- (instancetype)initWithCIImage:(CIImage*)image
|
||
|
options:(NSDictionary<VNImageOption, id>*)options;
|
||
|
- (BOOL)performRequests:(NSArray<VNRequest*>*)requests error:(NSError**)error;
|
||
|
@end
|
||
|
|
||
|
// VNFaceLandmarks2D forward declarations.
|
||
|
@interface VNFaceLandmarkRegion : NSObject
|
||
|
@property(readonly) NSUInteger pointCount;
|
||
|
@end
|
||
|
|
||
|
@interface VNFaceLandmarkRegion2D : VNFaceLandmarkRegion
|
||
|
@property(readonly, assign)
|
||
|
const CGPoint* normalizedPoints NS_RETURNS_INNER_POINTER;
|
||
|
@end
|
||
|
|
||
|
@interface VNFaceLandmarks2D : NSObject
|
||
|
@property(readonly) VNFaceLandmarkRegion2D* leftEye;
|
||
|
@property(readonly) VNFaceLandmarkRegion2D* rightEye;
|
||
|
@property(readonly) VNFaceLandmarkRegion2D* outerLips;
|
||
|
@property(readonly) VNFaceLandmarkRegion2D* nose;
|
||
|
@end
|
||
|
|
||
|
// VNFaceObservation forward declarations.
|
||
|
@interface VNObservation : NSObject<NSCopying, NSSecureCoding>
|
||
|
@end
|
||
|
|
||
|
@interface VNDetectedObjectObservation : VNObservation
|
||
|
@property(readonly, nonatomic, assign) CGRect boundingBox;
|
||
|
@end
|
||
|
|
||
|
@interface VNFaceObservation : VNDetectedObjectObservation
|
||
|
@property(readonly, nonatomic, strong) VNFaceLandmarks2D* landmarks;
|
||
|
@end
|
||
|
|
||
|
// VNDetectBarcodesRequest forward declarations.
|
||
|
typedef NSString* VNBarcodeSymbology NS_STRING_ENUM;
|
||
|
|
||
|
@interface VNDetectBarcodesRequest : VNImageBasedRequest
|
||
|
@property(readwrite, nonatomic, copy) NSArray<VNBarcodeSymbology>* symbologies;
|
||
|
@end
|
||
|
|
||
|
// VNBarcodeObservation forward declarations.
|
||
|
@interface VNRectangleObservation : VNDetectedObjectObservation
|
||
|
@end
|
||
|
|
||
|
@interface VNBarcodeObservation : VNRectangleObservation
|
||
|
@property(readonly, nonatomic, copy) NSString* payloadStringValue;
|
||
|
@end
|
||
|
|
||
|
#endif // MAC_OS_X_VERSION_10_13
|
||
|
// ----------------------------------------------------------------------------
|
||
|
// The symbol for kCWSSIDDidChangeNotification is available in the
|
||
|
// CoreWLAN.framework for OSX versions 10.6 through 10.10. The symbol is not
|
||
|
// declared in the OSX 10.9+ SDK, so when compiling against an OSX 10.9+ SDK,
|
||
|
// declare the symbol.
|
||
|
// ----------------------------------------------------------------------------
|
||
|
BASE_EXPORT extern "C" NSString* const kCWSSIDDidChangeNotification;
|
||
|
|
||
|
#endif // BASE_MAC_SDK_FORWARD_DECLARATIONS_H_
|