blob: 2d6ad52ffe83523afdfb16c1b41398aeb0361926 [file] [log] [blame]
// Copyright 2017 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_OMNIBOX_UI_OMNIBOX_CONTAINER_VIEW_H_
#define IOS_CHROME_BROWSER_OMNIBOX_UI_OMNIBOX_CONTAINER_VIEW_H_
#import <UIKit/UIKit.h>
#import "ios/chrome/browser/omnibox/public/omnibox_presentation_context.h"
#import "ios/chrome/browser/omnibox/ui/text_field_view_containing.h"
@class LayoutGuideCenter;
@protocol OmniboxTextInput;
@class OmniboxMetricsRecorder;
/// The omnibox container view is the view that is shown in the location bar's
/// edit state. It contains the omnibox textfield and the buttons on the left
/// and right of it.
@interface OmniboxContainerView : UIView <TextFieldViewContaining>
/// The contained omnibox textfield.
@property(nonatomic, strong, readonly) id<OmniboxTextInput> textInput;
/// The metrics recorder.
@property(nonatomic, weak) OmniboxMetricsRecorder* metricsRecorder;
/// The contained clear button. Hide with `setClearButtonHidden`.
@property(nonatomic, strong, readonly) UIButton* clearButton;
/// The contained thumbnail button.
@property(nonatomic, strong, readonly) UIButton* thumbnailButton;
/// The layout guide center to use to refer to the omnibox leading image.
@property(nonatomic, strong) LayoutGuideCenter* layoutGuideCenter;
/// Sets the thumbnail image used for image search. Set to`nil` to hide the
/// thumbnail.
@property(nonatomic, strong) UIImage* thumbnailImage;
/// Initialize the container view with the given frame, text color, tint
/// color and presentation context for the omnibox.
- (instancetype)initWithFrame:(CGRect)frame
textColor:(UIColor*)textColor
textInputTint:(UIColor*)textInputTint
iconTint:(UIColor*)iconTint
presentationContext:(OmniboxPresentationContext)presentationContext
NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
/// Sets the leading button's image and sets its accessibility identifier.
- (void)setLeadingImage:(UIImage*)image
withAccessibilityIdentifier:(NSString*)accessibilityIdentifier;
/// Sets the scale of the leading image view.
- (void)setLeadingImageScale:(CGFloat)scaleValue;
/// Hides or shows the clear button.
- (void)setClearButtonHidden:(BOOL)isHidden;
/// Updates the height of the text view.
- (void)updateTextViewHeight;
@end
#endif // IOS_CHROME_BROWSER_OMNIBOX_UI_OMNIBOX_CONTAINER_VIEW_H_