| // Copyright 2021-present the Material Components for iOS authors. All Rights Reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| #import <UIKit/UIKit.h> |
| |
| #import "MDCMinimumOS.h" // IWYU pragma: keep |
| |
| NS_ASSUME_NONNULL_BEGIN |
| |
| /** An object for customizing the appearance of a badge. */ |
| __attribute__((objc_subclassing_restricted)) |
| @interface MDCBadgeAppearance : NSObject<NSCopying> |
| |
| /** Returns a configuration initialized with empty defaults. */ |
| - (nonnull instancetype)init; |
| |
| #pragma mark - Configuring the badge's visual appearance |
| |
| /** |
| The background color of the badge. |
| |
| A value of nil uses the view's tint color; use `clearColor` for no color (transparent). |
| */ |
| @property(nonatomic, strong, nullable) UIColor *backgroundColor; |
| |
| /** The color of the text representing the value. */ |
| @property(nonatomic, strong, nullable) UIColor *textColor; |
| |
| /** The font that will be used to display the value. */ |
| @property(nonatomic, strong, nullable) UIFont *font; |
| |
| /** |
| The radius of the filled portion of the dot badge. Only used if `dotBadgeEnabled` is YES. |
| |
| The width and height of the dot badge's frame will be equal to |
| (dotBadgeInnerRadius + borderWidth) * 2. |
| */ |
| @property(nonatomic) CGFloat dotBadgeInnerRadius; |
| |
| /** |
| Whether the badge should be a dot badge. |
| |
| Dot badges do not display any text. Enabling this flag will cause the badge to ignore any text |
| set on the badge. |
| */ |
| @property(nonatomic) BOOL dotBadgeEnabled; |
| |
| /** |
| The color of the border surrounding the badge. |
| |
| Use this property instead of self.layer.borderColor. This property allows the badge to support |
| a border color that responds to trait collection changes. |
| */ |
| @property(nonatomic, strong, nullable) UIColor *borderColor; |
| |
| /** |
| The width of the border surrounding the badge. |
| |
| Use this property instead of self.layer.borderWidth. Setting this property will cause the badge's |
| intrinsic size and layout to be invalidated. |
| */ |
| @property(nonatomic) CGFloat borderWidth; |
| |
| @end |
| |
| NS_ASSUME_NONNULL_END |