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