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

Unified Diff: ios/chrome/browser/ui/contextual_search/contextual_search_panel_protocols.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_protocols.h
diff --git a/ios/chrome/browser/ui/contextual_search/contextual_search_panel_protocols.h b/ios/chrome/browser/ui/contextual_search/contextual_search_panel_protocols.h
new file mode 100644
index 0000000000000000000000000000000000000000..daac76f89abdb4dcf663331e172a16340e9cc842
--- /dev/null
+++ b/ios/chrome/browser/ui/contextual_search/contextual_search_panel_protocols.h
@@ -0,0 +1,82 @@
+// Copyright 2016 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_PROTOCOLS_H_
+#define IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_CONTEXTUAL_SEARCH_PANEL_PROTOCOLS_H_
+
+#import <UIKit/UIKit.h>
+
+#import "ios/chrome/browser/ui/contextual_search/panel_configuration.h"
+
+namespace ContextualSearch {
+
+typedef struct {
+ PanelState state; // state when the panel started moving, or current state if
+ // static.
+ PanelState nextState; // state panel is moving towards.
+ CGFloat position; // y-origin of top of panel in superview.
+ CGFloat gradation; // fractional progress to next state.
+} PanelMotion;
+}
+
+@class ContextualSearchPanelView;
+
+@protocol ContextualSearchPanelMotionObserver<NSObject>
+@optional
+
+// Called repeatedly as |panel| is moved. If |panel| is being animated,
+// it will be called once from inside the animation block (so any view changes
+// the observers make will also be animated).
+// Use this call to handle any updates that must be made continuously as
+// |panel| moves.
+- (void)panel:(ContextualSearchPanelView*)panel
+ didMoveWithMotion:(ContextualSearch::PanelMotion)motion;
+
+// Called when a source of motion stops |panel| from moving. If |panel| was
+// animated, this is called as part of the animation completion.
+- (void)panel:(ContextualSearchPanelView*)panel
+ didStopMovingWithMotion:(ContextualSearch::PanelMotion)motion;
+
+// Called when |panel| has stopped moving and has changed state. If |panel|
+// is animating to the new state, this is called *outside* of the animation
+// block.
+// |toState| will never be the same as |fromState|.
+- (void)panel:(ContextualSearchPanelView*)panel
+ didChangeToState:(ContextualSearch::PanelState)toState
+ fromState:(ContextualSearch::PanelState)fromState;
+
+// Called before |panel| will be used to animate a transition into a new tab.
+// Observers who don't want to be notified of further panel motion activity
+// should remove thmeselves at this point.
+- (void)panelWillPromote:(ContextualSearchPanelView*)panel;
+
+// Called as |panel| is animating into the position used for a new tab.
+// Observers who need to make animated changes for this transition should do
+// that in this method. |panel| will be destroyed shortly after this call is
+// made; observers should expect no further calls after this.
+- (void)panelIsPromoting:(ContextualSearchPanelView*)panel;
+
+@end
+
+// Protocol for a subview of a panel that has scrolling behavior that needs to
+// interoperate with the panel's drag behavior.
+@protocol ContextualSearchPanelScrollSynchronizer
+// YES if the receiver has scrolled (e.g., its scroll offset is not {0,0}).
+@property(nonatomic, readonly) BOOL scrolled;
+// Gesture recognizer used by the receiver to detect scrolling.
+@property(nonatomic, readonly) UIGestureRecognizer* scrollRecognizer;
+
+@end
+
+// Protocol for a an object that panel subview can forward panel-affecting
+// events to.
+@protocol ContextualSearchPanelTapHandler
+// A panel subview was tapped with |gesture|; suitable for a gestrure
+// recognizer's action method.
+- (void)panelWasTapped:(UIGestureRecognizer*)gesture;
+// A subview wants the panel to close.
+- (void)closePanel;
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_CONTEXTUAL_SEARCH_CONTEXTUAL_SEARCH_PANEL_PROTOCOLS_H_

Powered by Google App Engine
This is Rietveld 408576698