| Index: ui/base/cocoa/touch_bar_forward_declarations.h
|
| diff --git a/ui/base/cocoa/touch_bar_forward_declarations.h b/ui/base/cocoa/touch_bar_forward_declarations.h
|
| index 54c68ae534ba473664f61d8cdc69de1982752224..5fd9b962ac5f08c931c7c35b37142e2851bc86d3 100644
|
| --- a/ui/base/cocoa/touch_bar_forward_declarations.h
|
| +++ b/ui/base/cocoa/touch_bar_forward_declarations.h
|
| @@ -5,54 +5,101 @@
|
| #ifndef UI_BASE_COCOA_TOUCH_BAR_FORWARD_DECLARATIONS_H_
|
| #define UI_BASE_COCOA_TOUCH_BAR_FORWARD_DECLARATIONS_H_
|
|
|
| -// Once Chrome no longer supports OSX 10.12.0, this file can be deleted.
|
| +// Once Chrome is built with the 10.12.1 SDK, the NSTouchBar… classes can be
|
| +// referred to normally (instead of with NSClassFromString(@"…")), and this
|
| +// file can be deleted.
|
|
|
| #import <Foundation/Foundation.h>
|
|
|
| #if !defined(MAC_OS_X_VERSION_10_12_1)
|
| +#define __NSi_10_12_1 introduced = 10.12.1
|
|
|
| -// The TouchBar classes do not exist at all without the 10.12.1 SDK. When
|
| -// compiling with older SDKs, pretend they are NSObject and add categories to
|
| -// NSObject to expose the methods.
|
| -// To alloc one of these classes, use -[NSClassFromString(@"..") alloc].
|
| +NS_ASSUME_NONNULL_BEGIN
|
|
|
| -// Incomplete. Add more as necessary.
|
| +@class NSTouchBar, NSTouchBarItem;
|
| +@protocol NSTouchBarDelegate;
|
| +
|
| +typedef float NSTouchBarItemPriority;
|
| +static const NSTouchBarItemPriority NSTouchBarItemPriorityHigh = 1000;
|
| +static const NSTouchBarItemPriority NSTouchBarItemPriorityNormal = 0;
|
| +static const NSTouchBarItemPriority NSTouchBarItemPriorityLow = -1000;
|
|
|
| -typedef NSObject NSCustomTouchBarItem;
|
| -typedef NSObject NSGroupTouchBarItem;
|
| -typedef NSObject NSTouchBar;
|
| -typedef NSObject NSTouchBarItem;
|
| typedef NSString* NSTouchBarItemIdentifier;
|
| +typedef NSString* NSTouchBarCustomizationIdentifier;
|
| +
|
| +NS_CLASS_AVAILABLE_MAC(10_12_1)
|
| +@interface NSTouchBar : NSObject<NSCoding>
|
| +
|
| +- (instancetype)init NS_DESIGNATED_INITIALIZER;
|
| +- (nullable instancetype)initWithCoder:(NSCoder*)aDecoder
|
| + NS_DESIGNATED_INITIALIZER;
|
| +
|
| +@property(copy, nullable)
|
| + NSTouchBarCustomizationIdentifier customizationIdentifier;
|
| +@property(copy) NSArray* customizationAllowedItemIdentifiers;
|
| +@property(copy) NSArray* customizationRequiredItemIdentifiers;
|
| +@property(copy) NSArray* defaultItemIdentifiers;
|
| +@property(copy, readonly) NSArray* itemIdentifiers;
|
| +@property(copy, nullable) NSTouchBarItemIdentifier principalItemIdentifier;
|
| +@property(copy) NSSet* templateItems;
|
| +@property(nullable, weak) id<NSTouchBarDelegate> delegate;
|
| +
|
| +- (nullable __kindof NSTouchBarItem*)itemForIdentifier:
|
| + (NSTouchBarItemIdentifier)identifier;
|
| +
|
| +@property(readonly, getter=isVisible) BOOL visible;
|
|
|
| -@protocol NSTouchBarDelegate<NSObject>
|
| @end
|
|
|
| -@interface NSObject (FakeNSCustomTouchBarItem)
|
| -@property(readwrite, strong) NSView* view;
|
| +NS_CLASS_AVAILABLE_MAC(10_12_1)
|
| +@interface NSTouchBarItem : NSObject<NSCoding>
|
| +
|
| +- (instancetype)initWithIdentifier:(NSTouchBarItemIdentifier)identifier
|
| + NS_DESIGNATED_INITIALIZER;
|
| +- (nullable instancetype)initWithCoder:(NSCoder*)coder
|
| + NS_DESIGNATED_INITIALIZER;
|
| +- (instancetype)init NS_UNAVAILABLE;
|
| +
|
| +@property(readonly, copy) NSTouchBarItemIdentifier identifier;
|
| +@property NSTouchBarItemPriority visibilityPriority;
|
| +@property(readonly, nullable) NSView* view;
|
| +@property(readonly, nullable) NSViewController* viewController;
|
| +@property(readonly, copy) NSString* customizationLabel;
|
| +@property(readonly, getter=isVisible) BOOL visible;
|
| +
|
| @end
|
|
|
| -@interface NSObject (FakeNSGroupTouchBarItem)
|
| +NS_CLASS_AVAILABLE_MAC(10_12_1)
|
| +@interface NSGroupTouchBarItem : NSTouchBarItem
|
| +
|
| + (NSGroupTouchBarItem*)groupItemWithIdentifier:
|
| (NSTouchBarItemIdentifier)identifier
|
| items:(NSArray*)items;
|
| +
|
| +@property(strong) NSTouchBar* groupTouchBar;
|
| +@property(readwrite, copy, null_resettable) NSString* customizationLabel;
|
| +
|
| @end
|
|
|
| -@interface NSObject (FakeNSTouchBar)
|
| -@property(copy) NSArray* defaultItemIdentifiers;
|
| -@property(copy) NSTouchBarItemIdentifier principalItemIdentifier;
|
| -@property(weak) id<NSTouchBarDelegate> delegate;
|
| +NS_CLASS_AVAILABLE_MAC(10_12_1)
|
| +@interface NSCustomTouchBarItem : NSTouchBarItem
|
| +
|
| +@property(readwrite, strong) __kindof NSView* view;
|
| +@property(readwrite, strong, nullable)
|
| + __kindof NSViewController* viewController;
|
| +@property(readwrite, copy, null_resettable) NSString* customizationLabel;
|
| +
|
| @end
|
|
|
| -#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1
|
| +@protocol NSTouchBarDelegate<NSObject>
|
|
|
| -// When compiling against the 10.12.1 SDK or later, just provide forward
|
| -// declarations to suppress the partial availability warnings.
|
| +@optional
|
| +- (nullable NSTouchBarItem*)touchBar:(NSTouchBar*)touchBar
|
| + makeItemForIdentifier:(NSTouchBarItemIdentifier)identifier
|
| + NS_AVAILABLE_MAC(10_12_1);
|
| +@end
|
|
|
| -@class NSCustomTouchBarItem;
|
| -@class NSGroupTouchBarItem;
|
| -@class NSTouchBar;
|
| -@protocol NSTouchBarDelegate;
|
| -@class NSTouchBarItem;
|
| +NS_ASSUME_NONNULL_END
|
|
|
| #endif // MAC_OS_X_VERSION_10_12_1
|
|
|
|
|