1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef IOS_CHROME_BROWSER_UI_ORCHESTRATOR_OMNIBOX_FOCUS_ORCHESTRATOR_H_
6 #define IOS_CHROME_BROWSER_UI_ORCHESTRATOR_OMNIBOX_FOCUS_ORCHESTRATOR_H_
7 
8 #import <UIKit/UIKit.h>
9 
10 @protocol EditViewAnimatee;
11 @protocol LocationBarAnimatee;
12 @protocol ToolbarAnimatee;
13 
14 // Orchestrator for the animation occuring when the omnibox is
15 // focused/unfocused.
16 @interface OmniboxFocusOrchestrator : NSObject
17 
18 // Toolbar animatee, orchestrated by this object.
19 @property(nonatomic, weak) id<ToolbarAnimatee> toolbarAnimatee;
20 
21 @property(nonatomic, weak) id<LocationBarAnimatee> locationBarAnimatee;
22 
23 @property(nonatomic, weak) id<EditViewAnimatee> editViewAnimatee;
24 
25 // Updates the UI elements orchestrated by this object to reflect the
26 // |omniboxFocused| state, and the |toolbarExpanded| state, |animated| or not.
27 - (void)transitionToStateOmniboxFocused:(BOOL)omniboxFocused
28                         toolbarExpanded:(BOOL)toolbarExpanded
29                                animated:(BOOL)animated;
30 
31 @end
32 
33 #endif  // IOS_CHROME_BROWSER_UI_ORCHESTRATOR_OMNIBOX_FOCUS_ORCHESTRATOR_H_
34