blob: 54c68ae534ba473664f61d8cdc69de1982752224 [file] [log] [blame]
// Copyright 2016 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.
#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.
#import <Foundation/Foundation.h>
#if !defined(MAC_OS_X_VERSION_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].
// Incomplete. Add more as necessary.
typedef NSObject NSCustomTouchBarItem;
typedef NSObject NSGroupTouchBarItem;
typedef NSObject NSTouchBar;
typedef NSObject NSTouchBarItem;
typedef NSString* NSTouchBarItemIdentifier;
@protocol NSTouchBarDelegate<NSObject>
@end
@interface NSObject (FakeNSCustomTouchBarItem)
@property(readwrite, strong) NSView* view;
@end
@interface NSObject (FakeNSGroupTouchBarItem)
+ (NSGroupTouchBarItem*)groupItemWithIdentifier:
(NSTouchBarItemIdentifier)identifier
items:(NSArray*)items;
@end
@interface NSObject (FakeNSTouchBar)
@property(copy) NSArray* defaultItemIdentifiers;
@property(copy) NSTouchBarItemIdentifier principalItemIdentifier;
@property(weak) id<NSTouchBarDelegate> delegate;
@end
#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1
// When compiling against the 10.12.1 SDK or later, just provide forward
// declarations to suppress the partial availability warnings.
@class NSCustomTouchBarItem;
@class NSGroupTouchBarItem;
@class NSTouchBar;
@protocol NSTouchBarDelegate;
@class NSTouchBarItem;
#endif // MAC_OS_X_VERSION_10_12_1
#endif // UI_BASE_COCOA_TOUCH_BAR_FORWARD_DECLARATIONS_H_