| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_CHROME_BROWSER_UI_AUTHENTICATION_VIEWS_IDENTITY_BUTTON_CONTROL_H_ |
| #define IOS_CHROME_BROWSER_UI_AUTHENTICATION_VIEWS_IDENTITY_BUTTON_CONTROL_H_ |
| |
| #import <UIKit/UIKit.h> |
| |
| #import "ios/chrome/browser/ui/authentication/views/views_constants.h" |
| |
| // Enum to choose the arrow on the right of IdentityButtonControl. |
| typedef NS_ENUM(NSInteger, IdentityButtonControlArrowDirection) { |
| // Adds a down arrow on the right of the view. |
| IdentityButtonControlArrowDown, |
| // Adds a right arrow on the right of the view. |
| IdentityButtonControlArrowRight, |
| }; |
| |
| // Displays the name, email and avatar of a chrome identity, as a control. |
| // An down arrow is also displayed on the right of the control, to invite the |
| // user to tap and select another chrome identity. To get the tap event, see: |
| // -[UIControl addTarget:action:forControlEvents:]. |
| @interface IdentityButtonControl : UIControl |
| |
| // Arrow direction, default value is IdentityButtonControlArrowDown. |
| @property(nonatomic, assign) IdentityButtonControlArrowDirection arrowDirection; |
| |
| // Style for the IdentityView. |
| @property(nonatomic, assign) IdentityViewStyle identityViewStyle; |
| |
| // Initialises IdentityButtonControl. |
| - (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER; |
| |
| // See -[IdentityButtonControl initWithFrame:]. |
| - (instancetype)init NS_UNAVAILABLE; |
| - (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; |
| |
| // Set the identity avatar shown. |
| - (void)setIdentityAvatar:(UIImage*)identityAvatar; |
| |
| // Set the name and email shown. `name` can be nil. |
| - (void)setIdentityName:(NSString*)name email:(NSString*)email; |
| |
| @end |
| |
| #endif // IOS_CHROME_BROWSER_UI_AUTHENTICATION_VIEWS_IDENTITY_BUTTON_CONTROL_H_ |