blob: 863c9057778c6518ceed69f35706ddd2a8efd74d [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 IOS_CHROME_COMMON_FAVICON_FAVICON_ATTRIBUTES_H_
#define IOS_CHROME_COMMON_FAVICON_FAVICON_ATTRIBUTES_H_
#import <UIKit/UIKit.h>
// Attributes of a favicon. A favicon is represented either with an image or
// with a fallback monogram of a given color and background color.
@interface FaviconAttributes : NSObject
// Favicon image. Can be nil. If it is nil, monogram string and color are
// guaranteed to be not nil.
@property(nonatomic, readonly, strong, nullable) UIImage* faviconImage;
// Favicon monogram. Only available when there is no image.
@property(nonatomic, readonly, copy, nullable) NSString* monogramString;
// Favicon monogram color. Only available when there is no image.
@property(nonatomic, readonly, strong, nullable) UIColor* textColor;
// Favicon monogram background color. Only available when there is no image.
@property(nonatomic, readonly, strong, nullable) UIColor* backgroundColor;
// Whether the background color is the default one.Only available when there is
// no image.
@property(nonatomic, readonly, assign, getter=isDefaultBackgroundColor)
BOOL defaultBackgroundColor;
+ (nullable instancetype)attributesWithImage:(nonnull UIImage*)image;
+ (nullable instancetype)attributesWithMonogram:(nonnull NSString*)monogram
textColor:(nonnull UIColor*)textColor
backgroundColor:
(nonnull UIColor*)backgroundColor
defaultBackgroundColor:(BOOL)defaultBackgroundColor;
- (nullable instancetype)init NS_UNAVAILABLE;
@end
#endif // IOS_CHROME_COMMON_FAVICON_FAVICON_ATTRIBUTES_H_