chromium/ios/chrome/browser/alert_view/ui_bundled/alert_consumer.h

// Copyright 2019 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_ALERT_VIEW_UI_BUNDLED_ALERT_CONSUMER_H_
#define IOS_CHROME_BROWSER_ALERT_VIEW_UI_BUNDLED_ALERT_CONSUMER_H_

#import <Foundation/Foundation.h>

@class AlertAction;
@class TextFieldConfiguration;

// AlertConsumer defines methods to set the contents of an alert.
@protocol AlertConsumer <NSObject>

// Sets the title of the alert.
- (void)setTitle:(NSString*)title;

// Sets the message of the alert.
- (void)setMessage:(NSString*)message;

// Sets the text field configurations for this alert. One text field will be
// created for each `TextFieldConfiguration`.
- (void)setTextFieldConfigurations:
    (NSArray<TextFieldConfiguration*>*)textFieldConfigurations;

// Sets the actions for this alert. The double array of actions would be
// represented visually with each sub-array being a row of buttons, unless the
// sum of the button text widths cannot fit into a single row.
- (void)setActions:(NSArray<NSArray<AlertAction*>*>*)actions;

// Sets the accessibility identifier for the alert view.
- (void)setAlertAccessibilityIdentifier:(NSString*)identifier;

// Sets whether the activity indicator should be visible in the alert view.
- (void)setShouldShowActivityIndicator:(BOOL)shouldShowActivityIndicator;

// Sets whether the action buttons should initially be disabled.
- (void)setActionButtonsAreInitiallyDisabled:
    (BOOL)actionButtonsAreInitiallyDisabled;
@end

#endif  // IOS_CHROME_BROWSER_ALERT_VIEW_UI_BUNDLED_ALERT_CONSUMER_H_