Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1677)

Unified Diff: ios/chrome/browser/ui/contextual_search/contextual_search_panel_view.h

Issue 2588713002: Upstream Chrome on iOS source code [4/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/contextual_search/contextual_search_panel_view.h
diff --git a/ios/chrome/browser/ui/contextual_search/contextual_search_panel_view.h b/ios/chrome/browser/ui/contextual_search/contextual_search_panel_view.h
new file mode 100644
index 0000000000000000000000000000000000000000..5299df07a38f4394951d9c1511aea5151f0b25d8
--- /dev/null
+++ b/ios/chrome/browser/ui/contextual_search/contextual_search_panel_view.h
@@ -0,0 +1,55 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// 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_CONTEXTUAL_SEARCH_CONTEXTUAL_SEARCH_PANEL_VIEW_H_
+#define IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_CONTEXTUAL_SEARCH_PANEL_VIEW_H_
+
+#import <UIKit/UIKit.h>
+#import "ios/chrome/browser/ui/contextual_search/panel_configuration.h"
+
+@protocol ContextualSearchPanelMotionObserver;
+@protocol ContextualSearchPanelTapHandler;
+
+// A view designed to sit "on top" of the frontmost tab in a range of positions,
+// with content can position controlled by a ContextualSearchPanelController.
+// Generally speaking each BrowserViewController will own both the panel view
+// and panel controller object.
+@interface ContextualSearchPanelView : UIView
+
+// Current state.
+@property(nonatomic, assign) ContextualSearch::PanelState state;
+// Panel configuration, for motion observers that want to do different
+// computations around panel state and position.
+@property(nonatomic, readonly) PanelConfiguration* configuration;
+
+// Create a panel view. It will need to have a delegate and controller assigned
+// to do anything useful.
+- (instancetype)initWithConfiguration:(PanelConfiguration*)configuration
+ NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
+
+- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE;
+
+// Add panel content views. Views in |contentViews| will be arranged vertically
+// in the panel according to their intrinsic sizes, and will fill its width.
+// If a view in |contentViews| conforms to the panel motion observer protocol,
+// it will be automatically added as an observer.
+// If a view in |contentViews| conforms to the panel scroll synchronizer
+// protocol, its scrolling will be synchronized with panel dragging.
+- (void)addContentViews:(NSArray*)contentViews;
+
+// Add or remove observers.
+- (void)addMotionObserver:(id<ContextualSearchPanelMotionObserver>)observer;
+- (void)removeMotionObserver:(id<ContextualSearchPanelMotionObserver>)observer;
+
+// Inform the receiver it is about to promote to be tab-sized; it will inform
+// any obsevers.
+- (void)prepareForPromotion;
+// Have the receiver adjust its frame to match its superview's bounds,
+// vertically offset by |offset| points from the y-origin.
+- (void)promoteToMatchSuperviewWithVerticalOffset:(CGFloat)offset;
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_CONTEXTUAL_SEARCH_PANEL_VIEW_H_

Powered by Google App Engine
This is Rietveld 408576698