chromium/ios/chrome/browser/ui/toolbar/fullscreen/toolbar_ui.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_FULLSCREEN_TOOLBAR_UI_H_
#define IOS_CHROME_BROWSER_UI_TOOLBAR_FULLSCREEN_TOOLBAR_UI_H_

#import <UIKit/UIKit.h>

// Protocol for the UI displaying the toolbar.
@protocol ToolbarUI<NSObject>

// The minimum height of the toolbar relative to the browser content area.
// This should be broadcast using `-broadcastCollapsedTopToolbarHeight:`.
@property(nonatomic, readonly) CGFloat collapsedTopToolbarHeight;

// The minimum height of the toolbar relative to the browser content area.
// This should be broadcast using `-broadcastExpandedTopToolbarHeight:`.
@property(nonatomic, readonly) CGFloat expandedTopToolbarHeight;

// The height of the bottom toolbar relative to the browser content area.
// This should be broadcast using `-broadcastExpandedBottomToolbarHeight:`.
@property(nonatomic, readonly) CGFloat expandedBottomToolbarHeight;

@property(nonatomic, readonly) CGFloat collapsedBottomToolbarHeight;

@end

// Simple implementation of ToolbarUI that allows readwrite access to broadcast
// properties.
@interface ToolbarUIState : NSObject<ToolbarUI>

// Redefine properties as readwrite.
@property(nonatomic, assign) CGFloat collapsedTopToolbarHeight;
@property(nonatomic, assign) CGFloat expandedTopToolbarHeight;
@property(nonatomic, assign) CGFloat expandedBottomToolbarHeight;
@property(nonatomic, assign) CGFloat collapsedBottomToolbarHeight;

@end

#endif  // IOS_CHROME_BROWSER_UI_TOOLBAR_FULLSCREEN_TOOLBAR_UI_H_