chromium/ios/chrome/browser/ui/toolbar/buttons/toolbar_configuration.h

// 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_UI_TOOLBAR_BUTTONS_TOOLBAR_CONFIGURATION_H_
#define IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLBAR_CONFIGURATION_H_

#import <UIKit/UIKit.h>

#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_style.h"

// Toolbar configuration object giving access to styling elements.
@interface ToolbarConfiguration : NSObject

// Init the toolbar configuration with the desired `style`.
- (instancetype)initWithStyle:(ToolbarStyle)style NS_DESIGNATED_INITIALIZER;
- (instancetype)init NS_UNAVAILABLE;

// Style of this configuration.
@property(nonatomic, assign) ToolbarStyle style;

// Background color of the NTP. Used to do as if the toolbar was transparent and
// the NTP is visible behind it.
@property(nonatomic, readonly) UIColor* NTPBackgroundColor;

// Background color of the toolbar.
@property(nonatomic, readonly) UIColor* backgroundColor;

// Focused background color of the toolbar.
// Used only in Updated Popup treatment 2.
@property(nonatomic, readonly) UIColor* focusedBackgroundColor;

// Tint color of the buttons.
@property(nonatomic, readonly) UIColor* buttonsTintColor;

// Tint color of the buttons in the highlighted state. This is only to be used
// if the button has a custom style.
@property(nonatomic, readonly) UIColor* buttonsTintColorHighlighted;

// Tint color of the buttons when they are highlighted for an IPH;
@property(nonatomic, readonly) UIColor* buttonsTintColorIPHHighlighted;

// Color for the background view when the button is highlighted for an IPH.
@property(nonatomic, readonly) UIColor* buttonsIPHHighlightColor;

// Used as Omnibox background color when focused.
// Used only in Updated Popup treatment 2.
// See locationBarBackgroundColorWithVisibility: below for defocused.
@property(nonatomic, readonly) UIColor* focusedLocationBarBackgroundColor;

// Returns the background color of the location bar, with a `visibilityFactor`.
// The `visibilityFactor` is here to alter the alpha value of the background
// color. Even with a `visibilityFactor` of 1, the final color could is
// translucent.
- (UIColor*)locationBarBackgroundColorWithVisibility:(CGFloat)visibilityFactor;

@end

#endif  // IOS_CHROME_BROWSER_UI_TOOLBAR_BUTTONS_TOOLBAR_CONFIGURATION_H_